From 440b3ca36461c170e67a99de906c848ef52a66f5 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 14 Dec 2022 12:30:46 +0100 Subject: [PATCH] build client dist files --- fittrackee/dist/index.html | 2 +- fittrackee/dist/service-worker.js | 2 +- fittrackee/dist/service-worker.js.map | 2 +- .../dist/static/js/{admin.4d1d1ecc.js => admin.443044dd.js} | 2 +- .../js/{admin.4d1d1ecc.js.map => admin.443044dd.js.map} | 2 +- fittrackee/dist/static/js/app.226b5cbf.js | 2 ++ fittrackee/dist/static/js/app.226b5cbf.js.map | 1 + fittrackee/dist/static/js/app.f6f0ca0c.js | 2 -- fittrackee/dist/static/js/app.f6f0ca0c.js.map | 1 - fittrackee/dist/static/js/chunk-vendors.b65fdc2f.js.map | 1 - .../{chunk-vendors.b65fdc2f.js => chunk-vendors.cea3a5ee.js} | 4 ++-- fittrackee/dist/static/js/chunk-vendors.cea3a5ee.js.map | 1 + .../static/js/{profile.24318810.js => profile.d9355913.js} | 4 ++-- .../js/{profile.24318810.js.map => profile.d9355913.js.map} | 2 +- .../dist/static/js/{reset.5ae157f1.js => reset.433bb75d.js} | 2 +- .../js/{reset.5ae157f1.js.map => reset.433bb75d.js.map} | 2 +- .../js/{statistics.560b3502.js => statistics.31ee4368.js} | 2 +- ...{statistics.560b3502.js.map => statistics.31ee4368.js.map} | 2 +- .../static/js/{workouts.da9513e1.js => workouts.ac9db1a8.js} | 2 +- .../js/{workouts.da9513e1.js.map => workouts.ac9db1a8.js.map} | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) rename fittrackee/dist/static/js/{admin.4d1d1ecc.js => admin.443044dd.js} (96%) rename fittrackee/dist/static/js/{admin.4d1d1ecc.js.map => admin.443044dd.js.map} (98%) create mode 100644 fittrackee/dist/static/js/app.226b5cbf.js create mode 100644 fittrackee/dist/static/js/app.226b5cbf.js.map delete mode 100644 fittrackee/dist/static/js/app.f6f0ca0c.js delete mode 100644 fittrackee/dist/static/js/app.f6f0ca0c.js.map delete mode 100644 fittrackee/dist/static/js/chunk-vendors.b65fdc2f.js.map rename fittrackee/dist/static/js/{chunk-vendors.b65fdc2f.js => chunk-vendors.cea3a5ee.js} (86%) create mode 100644 fittrackee/dist/static/js/chunk-vendors.cea3a5ee.js.map rename fittrackee/dist/static/js/{profile.24318810.js => profile.d9355913.js} (97%) rename fittrackee/dist/static/js/{profile.24318810.js.map => profile.d9355913.js.map} (99%) rename fittrackee/dist/static/js/{reset.5ae157f1.js => reset.433bb75d.js} (99%) rename fittrackee/dist/static/js/{reset.5ae157f1.js.map => reset.433bb75d.js.map} (99%) rename fittrackee/dist/static/js/{statistics.560b3502.js => statistics.31ee4368.js} (98%) rename fittrackee/dist/static/js/{statistics.560b3502.js.map => statistics.31ee4368.js.map} (99%) rename fittrackee/dist/static/js/{workouts.da9513e1.js => workouts.ac9db1a8.js} (99%) rename fittrackee/dist/static/js/{workouts.da9513e1.js.map => workouts.ac9db1a8.js.map} (99%) diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index 11b6a4ea..4839b4de 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 ccabf0b2..5d9027ab 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:"f496bbe2f75d1a8c712e3393fe3c1afc"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.7cddaab1.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.e034bc01.js",revision:null},{url:"/static/js/431.6f0a9946.js",revision:null},{url:"/static/js/633.3c9401e6.js",revision:null},{url:"/static/js/858.5db37332.js",revision:null},{url:"/static/js/93.7582eaa7.js",revision:null},{url:"/static/js/admin.4d1d1ecc.js",revision:null},{url:"/static/js/app.f6f0ca0c.js",revision:null},{url:"/static/js/chunk-vendors.b65fdc2f.js",revision:null},{url:"/static/js/profile.24318810.js",revision:null},{url:"/static/js/reset.5ae157f1.js",revision:null},{url:"/static/js/statistics.560b3502.js",revision:null},{url:"/static/js/workouts.da9513e1.js",revision:null}],{})})); +if(!self.define){let s,e={};const i=(i,t)=>(i=new URL(i+".js",t).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(e[a])return;let n={};const l=s=>i(s,a),c={module:{uri:a},exports:n,require:l};e[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:"bafeeab75d2464bde3a5f18300d53098"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.7cddaab1.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.e034bc01.js",revision:null},{url:"/static/js/431.6f0a9946.js",revision:null},{url:"/static/js/633.3c9401e6.js",revision:null},{url:"/static/js/858.5db37332.js",revision:null},{url:"/static/js/93.7582eaa7.js",revision:null},{url:"/static/js/admin.443044dd.js",revision:null},{url:"/static/js/app.226b5cbf.js",revision:null},{url:"/static/js/chunk-vendors.cea3a5ee.js",revision:null},{url:"/static/js/profile.d9355913.js",revision:null},{url:"/static/js/reset.433bb75d.js",revision:null},{url:"/static/js/statistics.31ee4368.js",revision:null},{url:"/static/js/workouts.ac9db1a8.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 112001dc..301f33eb 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/6e03a01d06fbecb7e7ecb885af9335ea/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\": \"f496bbe2f75d1a8c712e3393fe3c1afc\"\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.7cddaab1.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.e034bc01.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.6f0a9946.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.3c9401e6.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.5db37332.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.7582eaa7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.4d1d1ecc.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.f6f0ca0c.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.b65fdc2f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.24318810.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.5ae157f1.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.560b3502.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.da9513e1.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/b5cbf70db225cceebcf16af2edb12b04/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\": \"bafeeab75d2464bde3a5f18300d53098\"\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.7cddaab1.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.e034bc01.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.6f0a9946.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.3c9401e6.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.5db37332.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.7582eaa7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.443044dd.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.226b5cbf.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.cea3a5ee.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.d9355913.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.433bb75d.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.31ee4368.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.ac9db1a8.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/js/admin.4d1d1ecc.js b/fittrackee/dist/static/js/admin.443044dd.js similarity index 96% rename from fittrackee/dist/static/js/admin.4d1d1ecc.js rename to fittrackee/dist/static/js/admin.443044dd.js index e8d9f361..ad9ab2d4 100644 --- a/fittrackee/dist/static/js/admin.4d1d1ecc.js +++ b/fittrackee/dist/static/js/admin.443044dd.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[328],{6e3:function(t,e,i){i.r(e),i.d(e,{default:function(){return _}});var a=i(6252),n=i(2262),s=i(8273),c=i(5801),r=i(9917);const S=t=>((0,a.dD)("data-v-64629971"),t=t(),(0,a.Cn)(),t),l={id:"admin",class:"view"},p={key:0,class:"container"},u=S((()=>(0,a._)("div",{id:"bottom"},null,-1)));var T=(0,a.aZ)({__name:"AdminView",setup(t){const e=(0,r.o)(),i=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_STATS])),T=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.IS_ADMIN])),d=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.USER_LOADING]));return(0,a.wF)((()=>e.dispatch(c.SY.ACTIONS.GET_APPLICATION_STATS))),(t,e)=>{const c=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",l,[(0,n.SU)(d)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",p,[(0,n.SU)(T)?((0,a.wg)(),(0,a.j4)(c,{key:0,appConfig:(0,n.SU)(i),appStatistics:(0,n.SU)(S)},null,8,["appConfig","appStatistics"])):((0,a.wg)(),(0,a.j4)(s.Z,{key:1})),u]))])}}}),d=i(3744);const o=(0,d.Z)(T,[["__scopeId","data-v-64629971"]]);var _=o}}]); -//# sourceMappingURL=admin.4d1d1ecc.js.map \ No newline at end of file +//# sourceMappingURL=admin.443044dd.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/admin.4d1d1ecc.js.map b/fittrackee/dist/static/js/admin.443044dd.js.map similarity index 98% rename from fittrackee/dist/static/js/admin.4d1d1ecc.js.map rename to fittrackee/dist/static/js/admin.443044dd.js.map index 8daddb14..c8737752 100644 --- a/fittrackee/dist/static/js/admin.4d1d1ecc.js.map +++ b/fittrackee/dist/static/js/admin.443044dd.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/admin.4d1d1ecc.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, 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-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\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 appStatistics: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&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-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/admin.443044dd.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, 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-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\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 appStatistics: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&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-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.226b5cbf.js b/fittrackee/dist/static/js/app.226b5cbf.js new file mode 100644 index 00000000..7af11914 --- /dev/null +++ b/fittrackee/dist/static/js/app.226b5cbf.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),i=n(5801),s=n(2024);const l=r.Z.create({baseURL:(0,s.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[i.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 _}});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:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},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_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},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"])},USERS:{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"])}}},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"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},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 file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"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."])},"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."])},"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."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut 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."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"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."])},"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"])}}},i={"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"])}},s={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:{ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])},LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},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={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"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])}},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"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff 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"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},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:"])},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."])}},m={"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)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Bergsteigen"])}},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"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["Monat"])},week:e=>{const{normalize:t}=e;return t(["Woche"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},E={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"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},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_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},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:{AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},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."])},l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},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."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])}},WEAK:e=>{const{normalize:t}=e;return t(["schwach"])}},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_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},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_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},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"])},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"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},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."])},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"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["E-Mail zur Kontobestätigung erneut senden"])},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."])},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."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])}},S={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"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},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"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["Die Distanz muss größer als 0 sein"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["Die Dauer muss größer als 0 Sekunden sein"])},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"])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},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."])},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:{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"])}},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:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .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"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});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:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},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_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},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"])])},USERS:{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"])}}},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"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Network 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 file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"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."])},"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."])},"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."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"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."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"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."])},"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:{NEXT:e=>{const{normalize:t}=e;return t(["next"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])}}},i={"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"])}},s={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:{ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])},LABEL:e=>{const{normalize:t}=e;return t(["sort"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},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={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"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])}},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"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},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:"])},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."])}},m={"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)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Mountaineering"])}},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"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["month"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},E={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"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},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_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},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:{AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},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."])},l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},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."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])}},WEAK:e=>{const{normalize:t}=e;return t(["weak"])}},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_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},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_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update 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"])},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"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},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."])},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"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},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."])},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.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])}},S={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"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. 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"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},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."])},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:{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"])}},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:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .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"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});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:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},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_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},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"])])},USERS:{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"])}}},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"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},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 file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"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."])},"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"])},"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é."])},"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."])},"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é."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"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:{NEXT:e=>{const{normalize:t}=e;return t(["suivant"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])}}},i={"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"])}},s={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:{ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])},LABEL:e=>{const{normalize:t}=e;return t(["tri"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},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={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"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])}},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"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},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 :"])},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."])}},m={"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)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinisme"])}},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"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["mois"])},week:e=>{const{normalize:t}=e;return t(["semaine"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},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"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},LOG_IN:e=>{const{normalize:t}=e;return t(["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_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},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:{AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},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)."])},l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},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."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])}},WEAK:e=>{const{normalize:t}=e;return t(["faible"])}},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_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},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"])},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"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},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."])},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"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}}},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."])},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."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])}},S={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"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},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."])},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:{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"])}},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:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un 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"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},4334:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contatta l'amministratore"])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Codice sorgente"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee è un tracker self-hosted per attività outdoor."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sotto licenza ",n(r(0))," "])}},a={ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ACTION:e=>{const{normalize:t}=e;return t(["Azione"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Attivo"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicazione"])},APP_CONFIG:{MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Se settato a 0, non ci sono limiti per le registrazioni."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Numero massimo di utenti attivi"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Dimensione massima dei file caricabili (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Configurazione applicazione"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["nessuna mail di contatto"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Numero massimo di files zip"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Dimensione massima dell'archivio zip (in Mb)"])},ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email di contatto dell'amministratore"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Ritorna ad amministrazione"])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sei sicuro di voler resettare ",n(r(0))," password?"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Attiva/Disattiva sports."])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["La password è stata reimpostata."])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Attivo"])},IMAGE:e=>{const{normalize:t}=e;return t(["Immagine"])},LABEL:e=>{const{normalize:t}=e;return t(["Etichetta"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workout esistono"])}},TITLE:e=>{const{normalize:t}=e;return t(["Amministrazione sport"])}},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["stato admin"])},USERNAME:e=>{const{normalize:t}=e;return t(["nome utente"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["numero di workout"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["data di registrazione"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["stato account"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Aggiungi permessi di amministratore"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Rimuovi permessi di amministratore"])}}},DELETE_USER:e=>{const{normalize:t}=e;return t(["Elimina utente"])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nuova email"])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["La registrazione è al momento abilitata."])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'invio di email è disabilitato."])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aggiungi/rimuovi permessi, elimina account utente."])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Attiva account"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Amministrazione"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Sei sicuro di voler eliminare ",n(r(0))," account? Tutti i dati verranno persi, quest'azione non può essere annullata."])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Email corrente"])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["La registrazione è al momento disabilitata."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aggiorna email"])},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aggiorna configurazione applicazione (numero massimo di utenti registrati, dimensione massima dei files)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utente"]),t(["utenti"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'indirizzo email è stato aggiornato."])}},o={ERROR:{"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: dev'essere inserita un'email valida."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File con estensione non permessa."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Credenziali errate."])},"invalid payload":e=>{const{normalize:t}=e;return t(["I dati inseriti non sono validi."])},"no selected file":e=>{const{normalize:t}=e;return t(["Nessun file scelto."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Insersci un token di autenticazione valido."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Token scaduto. Per favore ripeti il log in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Mi dispiace, quell'username è già esistente."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Dev'essere inserita un'email valida"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore."])},"Network Error":e=>{const{normalize:t}=e;return t(["Errore di rete."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Errore, la registrazione è disabilitata."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Errore. Per favore riprova o contatta l'amminstratore."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Errore nella lettura del file gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Errore nella lettura della configurazione."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Errore nell'elaborazione del file gpx."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La dimensione del file è maggiore di quella massima permessa."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Errore nell'aggiornamento della configurazione"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Errore, per favore riprova o contatta l'amministratore."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Token scaduto, per favore ripeti il log in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Token scaduto, per favore ripeti il log in."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrato con successo."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utente non esiste."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nuova email dev'essere diversa dalla vecchia mail"])},"no file part":e=>{const{normalize:t}=e;return t(["Nessun file scelto."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Non hai i permessi necessari."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: la password inserita e la conferma non combaciano."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Questo sport non esiste."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Il numero di files nell'archivio supera il limite massimo permesso."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["precedente"])},NEXT:e=>{const{normalize:t}=e;return t(["avanti"])}}},i={CANCEL:e=>{const{normalize:t}=e;return t(["Annulla"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Elimina il mio account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disattiva"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtra"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registra"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Invia"])},YES:e=>{const{normalize:t}=e;return t(["Si"])},"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Re-invia email di conferma"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorizza"])},ENABLE:e=>{const{normalize:t}=e;return t(["Attiva"])},BACK:e=>{const{normalize:t}=e;return t(["Indietro"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Resetta filtri"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifica"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])}},s={SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["Dal più basso al più alto"])},LABEL:e=>{const{normalize:t}=e;return t(["ordina"])},DESC:e=>{const{normalize:t}=e;return t(["Dal più alto al più basso"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["ordina per"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totale"])},ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONTACT:e=>{const{normalize:t}=e;return t(["contatto"])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Mostrato"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentazione"])},HERE:e=>{const{normalize:t}=e;return t(["qui"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Nascosto"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Conferma"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["giorno"]),t(["giorni"])])},HOME:e=>{const{normalize:t}=e;return t(["Home"])}},l={THIS_MONTH:e=>{const{normalize:t}=e;return t(["Questo mese"])},DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])}},c={NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina non trovata"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout non trovato"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Qualcosa è andato storto"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Errore. Per favore riprova o contatta l'amministratore."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'applicazione ha riscontrato dei problemi.
Per favore riprova più tardi o contatta l'amministratore."])}},u={APP:{ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL redirect"])},SCOPE:{"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura alla configurazioen dell'applicazione."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a workouts endpoints."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di lettura a auth endpoints."])},LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["da permessi di scrittura a usersendpoints."])}},CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},URL:e=>{const{normalize:t}=e;return t(["URL applicazione"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Descrizione applicazione"])},NAME:e=>{const{normalize:t}=e;return t(["Nome applicazione"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applicazioni OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più."])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autorizzi ",n(r(0))," ad utilizzare il tuo account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copia nella clipboard"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["nessuna descrizione"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Rimuovi tutti i tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler rimuovere tutti i token?"])},ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Aggiungi una nuova applicazione OAuth2"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'applicazione ",n(r(0))," sta chiedendo:"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Elimina applicazione"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Aggiungi applicazione"])},NO_APP:e=>{const{normalize:t}=e;return t(["Applicazione non trovata!"])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare quest'app?"])},NO_APPS:e=>{const{normalize:t}=e;return t(["nessuna applicazione"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tutti i token esistenti associati sono stati rimossi."])}},m={Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Canottaggio"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Corsa"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Sci (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Sci (Cross Country)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinismo"])}},"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Ciclismo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Ciclismo (Trasporto)"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cicliscmo (Virtuale)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Escursioni"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Racchette da neve"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Elettrica)"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Sentieri"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Camminata"])}}},d={TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["mese"])},week:e=>{const{normalize:t}=e;return t(["settimana"])},year:e=>{const{normalize:t}=e;return t(["anno"])}},STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiche"])}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Non hai ricevuto istruzioni?"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hai già un account?"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Password corrente"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Inserisci un indirizzo email valido."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Inserisci una password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtra per username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["nascondi password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Token invalido, per favore richiedi un nuovo reset della password."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Lingua"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nuova password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Nessun utente trovato."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Password dimenticata?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Inserisci almeno 8 caratteri."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Reset password"])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["media"])},GOOD:e=>{const{normalize:t}=e;return t(["buona"])},LABEL:e=>{const{normalize:t}=e;return t(["sicurezza password"])},SUGGESTIONS:{anotherWord:e=>{const{normalize:t}=e;return t(["Aggiungi più parole che sono meno comuni."])},associatedYears:e=>{const{normalize:t}=e;return t(["Evita date che possono essere associate a te."])},pwned:e=>{const{normalize:t}=e;return t(["È consigliabile cambiare questa password se è utilizzata per altro."])},recentYears:e=>{const{normalize:t}=e;return t(["Evita date recenti."])},repeated:e=>{const{normalize:t}=e;return t(["Evita di ripetere lettere e parole."])},reverseWords:e=>{const{normalize:t}=e;return t(["Evita di scrivere parole al contrario."])},sequences:e=>{const{normalize:t}=e;return t(["Evita sequenze di caratteri comuni."])},useWords:e=>{const{normalize:t}=e;return t(["Usa più parole, ma evita frasi comuni."])},capitalization:e=>{const{normalize:t}=e;return t(["Inserisci maiuscole oltre alla prima lettera."])},allUppercase:e=>{const{normalize:t}=e;return t(["Inserisci qualche maiuscola."])},l33t:e=>{const{normalize:t}=e;return t(["Evita sostituzioni prevedibili, per esempio, ","@"," per la a."])},dates:e=>{const{normalize:t}=e;return t(["Evita date che possono essere associate a te."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Usa patterns più lunghi e cambia direzione di scrittura più volte."])},noNeed:e=>{const{normalize:t}=e;return t(["Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole."])}},WEAK:e=>{const{normalize:t}=e;return t(["bassa"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["La tua password è stata aggiornata. Clicca ",n(r(0))," per effettuare il login."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Tipo di account"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["azione"])},COLOR:e=>{const{normalize:t}=e;return t(["colore"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disattivato dall'amministratore"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["attivo"])},LABEL:e=>{const{normalize:t}=e;return t(["etichetta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Limite minimo di velocità"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Preferenze sport"])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Il tuo account è stato creato con successo."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Il tuo account è stato aggiornato con successo."])},TABS:{PICTURE:e=>{const{normalize:t}=e;return t(["foto"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferenze"])},PROFILE:e=>{const{normalize:t}=e;return t(["profilo"])}},UNITS:{METRIC:e=>{const{normalize:t}=e;return t(["Sistema metrico (m, km)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unità per la distanza"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Sistema imperiale (ft, mi)"])}},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Ritorna al profilo"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifica profilo"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Dati relativi alle salite (singoli, totale)"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Data di nascita"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Formato data"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Primo giorno della settimana"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Cognome"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Rimuovi foto"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Domenica"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifica preferenze"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifica preferenze sport"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Per favore ",n(r(0))," per cambiare di nuovo la tua mail o contatta l'amministratore"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Nome"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Lingua"])},LOCATION:e=>{const{normalize:t}=e;return t(["Posizione"])},PICTURE:e=>{const{normalize:t}=e;return t(["Foto"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profilo"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lunedì"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Foto"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferenze"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Aggiorna foto"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Data di registrazione"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un link per attivare il tuo account è stato inviato all'indirizzo specificato."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Registra"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Re-invia email di conferma dell'account"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Resetta password"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo "_".'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["foto profilo"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password."])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Mi dispiace, la registrazione è disabilitata."])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["mostra password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Questo account è inattivo."])}},S={AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["velocità media"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["ritorna al workout"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distanza"])},DURATION:e=>{const{normalize:t}=e;return t(["durata"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevazione"])},END:e=>{const{normalize:t}=e;return t(["fine"])},FROM:e=>{const{normalize:t}=e;return t(["da"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["file .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["nascondi filtri"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distanza dev'essere maggiore di 0"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Carica più workout"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitudine massima"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["file massimi"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["dimensione massima"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["velocità massima"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(['data dal file gpx, senza "pulizia"'])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Nessun file scelto"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["nessuna cartella all'interno"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Nessuna mappa"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento successivo"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nessun workout successivo"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Nessun workout precedente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Nessun record."])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segmento precedente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distanza più lunga"])},START:e=>{const{normalize:t}=e;return t(["inizio"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["cielo chiaro"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["notte parzialmente nuvolosa"])},rain:e=>{const{normalize:t}=e;return t(["pioggia"])},"clear-night":e=>{const{normalize:t}=e;return t(["notte chiara"])},fog:e=>{const{normalize:t}=e;return t(["nebbia"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["parzialmente nuvoloso"])},cloudy:e=>{const{normalize:t}=e;return t(["nuvoloso"])},sleet:e=>{const{normalize:t}=e;return t(["nevischio"])},snow:e=>{const{normalize:t}=e;return t(["neve"])},wind:e=>{const{normalize:t}=e;return t(["vento"])}},WIND_DIRECTIONS:{ESE:e=>{const{normalize:t}=e;return t(["ESE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},E:e=>{const{normalize:t}=e;return t(["E"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatura"])},HUMIDITY:e=>{const{normalize:t}=e;return t(["umidità"])},WIND:e=>{const{normalize:t}=e;return t(["vento"])}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["senza file .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["con file .gpx"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sei sicuro di voler eliminare questo workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["file .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["o file .zip contenente files .gpx"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento precedente"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durata dev'essere maggiore di 0"])},ASCENT:e=>{const{normalize:t}=e;return t(["salita"])},DATE:e=>{const{normalize:t}=e;return t(["data"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifica il workout"])},ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Aggiungi un workout"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Ultimi workout"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitudine minima"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nessun segmento successivo"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analisi"])},DESCENT:e=>{const{normalize:t}=e;return t(["discesa"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["mostra filtri"])},NOTES:e=>{const{normalize:t}=e;return t(["note"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Nessuna nota"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Workout precedente"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Prossimo workout"])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Nessun workout."])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vel. media"])},PAUSES:e=>{const{normalize:t}=e;return t(["pause"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Salita più alta"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segmento"]),t(["segmenti"])])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durata più lunga"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["partenza asse elevazione a 0"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durata totale"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vel. massima"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["caratteri rimanenti"])},SPEED:e=>{const{normalize:t}=e;return t(["velocità"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},TITLE:e=>{const{normalize:t}=e;return t(["titolo"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Carica file!"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Inizio e fine"])},TO:e=>{const{normalize:t}=e;return t(["a"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["data workout"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={},a={},o={},i={},s={},l={},c={},u={},m={},d={},E={},S={},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},701:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacteer uw administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is zelf-gehoste buitenshuis activiteiten tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Onder ",n(r(0))," licentie "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Broncode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Actie"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activeer account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Instellingen"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicatie"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email voor contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal bestanden in zip archief"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Bij 0, geen limiet op registratie."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal actieve gebruikers"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["geen contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van bestanden voor upload (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Applicatie configureren"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van zip archief (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Terug naar beheer"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u de account ",n(r(0))," wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u het wachtwoord voor ",n(r(0))," wilt resetten?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Huidige email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Verwijder gebruiker"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Emails verzenden is uitgeschakeld."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aan- of uitzetten van sporten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nieuwe email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het wachtwoord werd gereset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel uitgeschakeld."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel ingeschakeld."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset wachtwoord"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainingen aanwezig"])},IMAGE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Beheer sporten"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["gebruiker"]),t(["gebruikers"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registratie datum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["gebruikersnaam"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["aantal trainingen"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Admin rechten toevoegen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Verwijder admin rechten"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het emailadres werd bijgewerkt."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netwerk fout."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: een geldige email is vereist."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fout bij het verwerken van het gpx bestand."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fout bij verwerken van gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fout bij ophalen van configuratie."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fout bij het updaten van de configuratie"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fout, probeer opnieuw of contacteer de administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fout, registratie is uitgeschakeld."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Bestandsformaat niet toegelaten."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Bestandsgrootte is groter dan toegestaan."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ongeldige inloggegevens."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Ingegeven data is ongeldig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Het nieuwe email adres dient te verschillen van het oude"])},"no file part":e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven."])},"no selected file":e=>{const{normalize:t}=e;return t(["Geen bestand geselecteerd."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Wachtwoord: het wachtwoord en de bevestiging komen niet overeen."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Geef een geldig auth token."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signatuur verlopen. Log opnieuw in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, deze gebruikersnaam is al in gebruik."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Deze sport bestaat niet."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Succesvol geregistreerd."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Het aantal bestanden in het zip archief overschrijdt de limiet."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Gebruiker bestaat niet."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Een geldige email is vereist voor admin contact informatie"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["U hebt geen machtigingen."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["volgende"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["vorige"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Herzend bevestigings email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Toekennen"])},BACK:e=>{const{normalize:t}=e;return t(["Terug"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuleren"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Verwijder filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Verwijder mijn account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Uitzetten"])},EDIT:e=>{const{normalize:t}=e;return t(["Bewerken"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aanzetten"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},NO:e=>{const{normalize:t}=e;return t(["Nee"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registreer"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Aanpassen"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["over"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bevestiging"])},CONTACT:e=>{const{normalize:t}=e;return t(["contacteer"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["dag"]),t(["dagen"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Weergegeven"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentatie"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Verborgen"])},HOME:e=>{const{normalize:t}=e;return t(["Startscherm"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["oplopend"])},DESC:e=>{const{normalize:t}=e;return t(["aflopend"])},LABEL:e=>{const{normalize:t}=e;return t(["sorteer"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sorteer op"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totaal"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Deze maand"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["Er heeft zich een onbekende fout voorgedaan.
Probeer aub later opnieuw of contacteer de administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina niet gevonden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training niet gevonden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Er ging iets mis"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Nieuwe OAuth2 app toevoegen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheim"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["App omschrijving"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Probleem bij"])},NAME:e=>{const{normalize:t}=e;return t(["Naam van de app"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Doorverwijs URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Omvang"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["geeft toestemming tot aanpassen van de applicatie instellingen."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["App URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 apps"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze app wilt verwijderen?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["De app ",n(r(0))," vraagt:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Toegang geven aan ",n(r(0))," tot uw gebruikersaccount?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["kopieer naar klembord"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Verwijder app"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Voeg een app toe"])},NO_APP:e=>{const{normalize:t}=e;return t(["App niet gevonden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["geen apps"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["geen beschrijving"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Verwijder alle tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u alle tokens wilt intrekken?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle bestaande tokens werden ingetrokken."])}},m={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Virtueel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Trektocht"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (Elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Bergbeklimmen"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Roeien"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Lopen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Sneeuwschoenen"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandelen"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistieken"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["maand"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["jaar"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Geen instructies ontvangen?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres."])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Al een account aangemaakt?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Huidig wachtwoord"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Geef een geldig email adres op."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Geef een paswoord in"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter op gebruikersnaam"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["verberg wachtwoord"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ongeldig token, vraag een nieuwe wachtwoord reset aan."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Uitloggen"])},LOG_IN:e=>{const{normalize:t}=e;return t(["inloggen"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nieuw wachtwoord"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Geen gebruikers gevonden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Wachtwoord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Wachtwoord vergeten?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Tenminste 8 karakters vereist."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Wachtwoord reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["gemiddeld"])},GOOD:e=>{const{normalize:t}=e;return t(["goed"])},LABEL:e=>{const{normalize:t}=e;return t(["wachtwoord sterkte"])},STRONG:e=>{const{normalize:t}=e;return t(["sterk"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Gebruik enkele hoofdletters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Voeg meer niet gangbare woorden toe."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermijd jaartallen met een persoonlijke betekenis."])},capitalization:e=>{const{normalize:t}=e;return t(["Gebruik niet enkel voor de eerste letter een hoofdletter."])},dates:e=>{const{normalize:t}=e;return t(["Vermijd persoonlijke gegevens en jaartallen."])},l33t:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare vervangingen, zoals ","@"," voor de letter a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Gebruik langere patronen en verander de richting van typen meerdere malen."])},noNeed:e=>{const{normalize:t}=e;return t(["U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters."])},pwned:e=>{const{normalize:t}=e;return t(["Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermijd recente jaartallen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermijd opeenvolgende woorden en karakters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermijd gangbare woorden die achterstevoren geschreven zijn."])},sequences:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare opeenvolgingen."])},useWords:e=>{const{normalize:t}=e;return t(["Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen."])}},WEAK:e=>{const{normalize:t}=e;return t(["zwak"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Uw wachtwoord werd aangepast. Klik ",n(r(0))," om in te loggen."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account aanpassen"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Hoogte gerelateerde data (opnames, totaal)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Terug naar profiel"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geboortedatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Weergaveformaat datum"])},EDIT:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Voorkeuren wijzigen"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Sport voorkeuren wijzigen"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Gelieve ",n(r(0))," om uw email adres opnieuw te wijzigen of contacteer uw administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Eerste dag van de week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Voornaam"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Achternaam"])},LOCATION:e=>{const{normalize:t}=e;return t(["Locatie"])},MONDAY:e=>{const{normalize:t}=e;return t(["Maandag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Afbeelding aanpassen"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Afbeelding verwijderen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Afbeelding veranderen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Voorkeuren aanpassen"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Datum registratie"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["actie"])},COLOR:e=>{const{normalize:t}=e;return t(["kleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["uitgeschakeld door admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actief"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["snelheidsgrens voor stilstand"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sport voorkeuren aanpassen"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol aangemaakt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Zondag"])},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(["afbeelding"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["voorkeuren"])},PROFILE:e=>{const{normalize:t}=e;return t(["profiel"])},SPORTS:e=>{const{normalize:t}=e;return t(["sporten"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Tijdzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperialistisch systeem (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Eenheid voor afstand"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisch systeem (m, km)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registreren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registreren is uitgeschakeld."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Opnieuw zenden van account bevestigingsmail"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset uw wachtwoord"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["toon wachtwoord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Deze account is niet actief."])},USERNAME:e=>{const{normalize:t}=e;return t(["Gebruikersnaam"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter "_" zijn toegestaan.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["gebruikersafbeelding"])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training toevoegen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["geklommen"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["gemiddelde snelheid"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["gem. snelheid"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["Terug naar training"])},DATE:e=>{const{normalize:t}=e;return t(["datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["gedaald"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["toon filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["afstand"])},DURATION:e=>{const{normalize:t}=e;return t(["duur"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training aanpassen"])},ELEVATION:e=>{const{normalize:t}=e;return t(["hoogte"])},END:e=>{const{normalize:t}=e;return t(["einde"])},FROM:e=>{const{normalize:t}=e;return t(["van"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx bestand"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberg filters"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["De afstand moet groter zijn dan 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["De duur moet langer zijn dan 0 seconden"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Laatste trainingen"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Toon meer trainingen"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. hoogte"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max. aantal bestanden"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max. grootte"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. snelheid"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. hoogte"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Volgende training"])},NOTES:e=>{const{normalize:t}=e;return t(["notities"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data vanuit gpx, zonder op te schonen"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["geen map aanwezig"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Geen kaart"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen volgende training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Geen notities"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen vorig segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen vorige training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Geen records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Geen trainingen."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauzes"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorig segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorige training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Gem. snelheid"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Langste afstand"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Hoogst geklommen"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Langste duur"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. snelheid"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["resterende karakters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segmenten"])])},SPEED:e=>{const{normalize:t}=e;return t(["snelheid"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sporten"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start en aankomst"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Zet hoogte-as vast op 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titel"])},TO:e=>{const{normalize:t}=e;return t(["aan"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["totale duur"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Eén uploaden!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["heldere dag"])},"clear-night":e=>{const{normalize:t}=e;return t(["heldere nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["bewolkt"])},fog:e=>{const{normalize:t}=e;return t(["mist"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte dag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte nacht"])},rain:e=>{const{normalize:t}=e;return t(["regen"])},sleet:e=>{const{normalize:t}=e;return t(["natte sneeuw"])},snow:e=>{const{normalize:t}=e;return t(["sneeuw"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["vochtigheid"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatuur"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OZO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["Z"])},SE:e=>{const{normalize:t}=e;return t(["ZO"])},SSE:e=>{const{normalize:t}=e;return t(["ZZO"])},SSW:e=>{const{normalize:t}=e;return t(["ZZW"])},SW:e=>{const{normalize:t}=e;return t(["ZW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WZW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["zonder .gpx bestand"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["met .gpx bestand"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["training"]),t(["trainingen"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["datum training"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze training wilt verwijderen?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip bestand"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["of .zip archief met .gpx bestanden"])}},_={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:m,statistics:d,user:E,workouts:S}},5326:function(e,t,n){"use strict";var r=n(3148),a=n(7028),o=n(9963),i=n(2343),s=n(5205);(0,s.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 m=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),d={id:"footer"},E={class:"footer-items"},S={class:"footer-item"},_=m((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=m((()=>(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"},z=["href"],I=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),R={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",d,[(0,l._)("div",E,[(0,l._)("div",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,z)])):(0,l.kq)("",!0),I,(0,l._)("div",R,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),U=n(3744);const h=(0,U.Z)(N,[["__scopeId","data-v-2c73279e"]]);var C=h,w=(n(7658),n(6595)),D=n(5801),v=n(9917),f=n(6287);const P=e=>((0,l.dD)("data-v-ab6e62ae"),e=e(),(0,l.Cn)(),e),k={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},F=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},B={key:0,class:"nav-items-group"},K={class:"nav-item nav-profile-img"},Y={key:1,class:"nav-items-group"},x=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var H=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,v.o)(),r=(0,l.Fl)((()=>n.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[D.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[D.SY.GETTERS.LANGUAGE])),i=(0,c.iH)(!1);function s(){i.value=!0,t("menuInteraction",!0)}function m(){i.value=!1,t("menuInteraction",!1)}function d(e){n.dispatch(D.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function E(){n.dispatch(D.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),S=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",k,[(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":i.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>s())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":i.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!i.value}]),onClick:t[2]||(t[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>m())},[(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",B,[(0,l._)("div",K,[(0,l.Wm)(w.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:m},{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:E},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",Y,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:m},{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:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(f.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(S,{key:2,class:"nav-item",options:(0,c.SU)(f.mT),selected:(0,c.SU)(o),onSelected:d},{default:(0,l.w5)((()=>[x])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,U.Z)(H,[["__scopeId","data-v-ab6e62ae"]]);var $=Z,V=n(7167);const q={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",q,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(V.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,U.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"},ie=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),se=[ie];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,v.o)(),n=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function i(e){a.value=e}function s(e){return e.getBoundingClientRect().top=0}function m(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&s(e)}}function d(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function E(){let e="en";try{const t=navigator.language.split("-")[0];t in f.v1&&(e=t)}catch(n){e="en"}t.dispatch(D.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{E(),t.dispatch(D.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>m())),(e,t)=>{const s=(0,l.up)("Loader"),m=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)($,{onMenuInteraction:i}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(s)])])):((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)(m,{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:d},se,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(C,{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,me=n(2540),de=n(7351),Ee=n(2894);const Se={class:"alert-message"},_e=["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",Se,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,_e)]))}});const pe=(0,U.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const ze={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],Re={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",ze,[(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,Ie),[[o.nr,r.value]]),(0,l._)("div",Re,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,U.Z)(ge,[["__scopeId","data-v-8cf5cc64"]]);var Ue=Ne,he=n(3649),Ce=(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:i,unitFrom:s,useImperialUnits:m}=(0,c.BK)(t),d=(0,l.Fl)((()=>m.value?he.Dl[s.value].defaultTarget:s.value)),E=(0,l.Fl)((()=>m.value?(0,he.sC)(a.value,s.value,d.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)(i)}])},(0,u.zw)((0,c.SU)(E)),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)(i)}])},(0,u.zw)((0,c.SU)(d))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const we=(0,U.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var De=we,ve=n(2201);const fe={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},ke=["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,ve.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function i(){a.value=!a.value}function s(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",fe,[(0,l._)("div",{class:"dropdown-selected",onClick:i},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((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=>s(t)},(0,u.zw)(t.label),11,ke)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,U.Z)(Le,[["__scopeId","data-v-9590c0e6"]]);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 Be=(0,U.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ke=Be;const Ye={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"},xe=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),He=(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=[xe,He];function $e(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Ye,Ze)}var Ve={name:"CyclingSport"};const qe=(0,U.Z)(Ve,[["render",$e]]);var je=qe;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,U.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"},it=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),st=[it];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,st)}var ct={name:"CyclingVirtual"};const ut=(0,U.Z)(ct,[["render",lt]]);var mt=ut;const dt={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"},Et=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),St=(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),_t=[Et,St];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",dt,_t)}var pt={name:"Hiking"};const At=(0,U.Z)(pt,[["render",Tt]]);var Ot=At;const zt={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"},It=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Rt=(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=[It,Rt];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",zt,gt)}var Ut={name:"MountainBiking"};const ht=(0,U.Z)(Ut,[["render",Nt]]);var Ct=ht;const wt={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"},Dt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),vt=[Dt];function ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",wt,vt)}var Pt={name:"MountainBikingElectric"};const kt=(0,U.Z)(Pt,[["render",ft]]);var Lt=kt;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 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},bt=(0,l.uE)(' silhouette of a person doing mountaineering ',2),yt=[bt];function Gt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,yt)}var Ft={name:"Mountaineering"};const Wt=(0,U.Z)(Ft,[["render",Gt]]);var Bt=Wt;const Kt={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"},Yt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),xt=(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),Ht=[Yt,xt];function Zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Kt,Ht)}var $t={name:"Rowing"};const Vt=(0,U.Z)($t,[["render",Zt]]);var qt=Vt;const jt={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"},Xt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Jt=(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),Qt=[Xt,Jt];function en(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",jt,Qt)}var tn={name:"Running"};const nn=(0,U.Z)(tn,[["render",en]]);var rn=nn;const an={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"},on=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),sn=(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),ln=[on,sn];function cn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",an,ln)}var un={name:"SkiingAlpine"};const mn=(0,U.Z)(un,[["render",cn]]);var dn=mn;const En={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),_n=(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),Tn=[Sn,_n];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"SkiingCrossCountry"};const On=(0,U.Z)(An,[["render",pn]]);var zn=On;const In={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"},Rn=(0,l.uE)('silhouette of a person with snowshoes',6),gn=[Rn];function Nn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,gn)}var Un={name:"Snowshoes"};const hn=(0,U.Z)(Un,[["render",Nn]]);var Cn=hn;const wn={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"},Dn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),vn=(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),fn=[Dn,vn];function Pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",wn,fn)}var kn={name:"Trail"};const Ln=(0,U.Z)(kn,[["render",Pn]]);var Mn=Ln;const bn={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"},yn=(0,l.uE)('silhouette of a walking person',3),Gn=[yn];function Fn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",bn,Gn)}var Wn={name:"Walking"};const Bn=(0,U.Z)(Wn,[["render",Fn]]);var Kn=Bn;const Yn=["title"];var xn=(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)(mt,{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)(Ct,{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),"Mountaineering"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Bt,{key:6})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(qt,{key:7})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(rn,{key:8})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dn,{key:9})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(zn,{key:10})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Cn,{key:11})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Kn,{key:13})):(0,l.kq)("",!0)],12,Yn))}});const Hn=xn;var Zn=Hn;const $n={class:"loader"};function Vn(e,t){return(0,l.wg)(),(0,l.iD)("div",$n)}const qn={},jn=(0,U.Z)(qn,[["render",Vn],["__scopeId","data-v-4c9921ee"]]);var Xn=jn;const Jn={id:"modal"},Qn={class:"custom-modal"},er={key:0,class:"modal-message"},tr={key:1,class:"modal-message"},nr={class:"modal-buttons"};var rr=(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,v.o)(),{title:a,message:o,strongMessage:i}=(0,c.BK)(n),s=(0,l.Fl)((()=>r.getters[D.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(D.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),m=(0,l.up)("ErrorMessage"),d=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Jn,[(0,l._)("div",Qn,[(0,l.Wm)(d,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(i)?((0,l.wg)(),(0,l.iD)("div",er,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(i)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",tr,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(s)?((0,l.wg)(),(0,l.j4)(m,{key:2,message:(0,c.SU)(s)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",nr,[(0,c.SU)(s)?(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)(s)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const ar=(0,U.Z)(rr,[["__scopeId","data-v-e8fcfaba"]]);var or=ar;const ir=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:Ue,name:"CustomTextArea"},{target:De,name:"Distance"},{target:be,name:"Dropdown"},{target:Ke,name:"ErrorMessage"},{target:Xn,name:"Loader"},{target:or,name:"Modal"},{target:Zn,name:"SportImage"}],sr={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 lr=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 cr=(0,o.ri)(ue).provide("sportColors",lr.Zo).use(me.Z).use(Ee.Z).use(de.Z).use(i.ZP,{name:"VFullscreen"}).directive("click-outside",sr);ir.forEach((e=>{cr.component(e.name,e.target)})),cr.mount("#app")},7351:function(e,t,n){"use strict";n.d(t,{Z:function(){return Cl}});var r=n(2201),a=(n(7658),n(6252)),o=n(3577),i=n(9963),s=n(2262),l=n(5801),c=n(9917),u=n(8966);const m=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),d={id:"admin-app",class:"admin-card"},E=["onSubmit"],S={for:"admin_contact"},_=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},z={class:"info-box"},I=m((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},U=["disabled"],h={for:"gpx_limit_import"},C=["disabled"],w={key:1,class:"form-buttons"},D={class:"confirm",type:"submit"},v=["onClick"],f={key:2,class:"form-buttons"};var P=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,s.BK)(t),m=(0,c.o)(),P=(0,r.tv)(),k=(0,s.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>m.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(k).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?k[t]=(0,u.j)(e[t]):k[t]=e[t]}))}function b(){M(t.appConfig),m.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),P.push("/admin/application")}function y(){const e=Object.assign({},k);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,m.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",d,[(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,i.iM)(y,["prevent"])},[(0,a._)("label",S,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,s.SU)(n)||k.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=>k.admin_contact=e),disabled:!(0,s.SU)(n)},null,8,T)),[[i.nr,k.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,_))]),(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=>k.max_users=e),disabled:!(0,s.SU)(n)},null,8,A),[[i.nr,k.max_users]])]),(0,a._)("div",O,[(0,a._)("span",z,[I,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",R,[(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=>k.max_single_file_size=e),disabled:!(0,s.SU)(n)},null,8,g),[[i.nr,k.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=>k.max_zip_file_size=e),disabled:!(0,s.SU)(n)},null,8,U),[[i.nr,k.max_zip_file_size]])]),(0,a._)("label",h,[(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=>k.gpx_limit_import=e),disabled:!(0,s.SU)(n)},null,8,C),[[i.nr,k.gpx_limit_import]])]),(0,s.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,s.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(n)?((0,a.wg)(),(0,a.iD)("div",w,[(0,a._)("button",D,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,i.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,v)])):((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,i.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,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,E)])),_:1})])}}}),k=n(3744);const L=(0,k.Z)(P,[["__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"},B={class:"stat"};var K=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:i}=(0,s.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,s.SU)(n)}`])},null,2)]),(0,a._)("div",F,[(0,a._)("div",W,(0,o.zw)((0,s.SU)(i)),1),(0,a._)("div",B,(0,o.zw)((0,s.SU)(r)),1)])])]))}});const Y=K;var x=Y;const H={id:"user-stats"};var Z=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,s.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",H,[(0,a.Wm)(x,{icon:"users",value:(0,s.SU)(n).users,text:e.$t("admin.USER",(0,s.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"tags",value:(0,s.SU)(n).sports,text:e.$t("workouts.SPORT",(0,s.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"folder-open",value:(0,s.SU)(r).size,text:(0,s.SU)(r).suffix},null,8,["value","text"])]))}});const $=Z;var V=$,q=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,s.BK)(t);return(e,t)=>{const i=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(q.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(V,{appStatistics:(0,s.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(i,{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,s.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,s.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)(i,{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)(i,{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,k.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var ie=oe,se=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"},me={class:"responsive-table"},de=ce((()=>(0,a._)("th",null,"#",-1))),Ee={class:"text-left"},Se={class:"text-left sport-action"},_e=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"},ze={class:"cell-heading"},Ie={class:"text-center"},Re={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},Ue={class:"action-button"},he=["onClick"],Ce={key:0,class:"has-workouts"},we=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var De=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,se.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 m(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,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",me,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[de,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",Ee,(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",Se,(0,o.zw)(e.$t("admin.ACTION")),1),_e])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.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",ze,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Ie,[(0,a._)("span",Re,(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",Ue,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>m(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,he),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",Ce,[we,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const ve=(0,k.Z)(De,[["__scopeId","data-v-6d62af67"]]);var fe=ve,Pe=n(8626),ke=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,s.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,i.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,ye),[[i.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,k.Z)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Be=n(2766),Ke=n(6558);const Ye=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),xe={id:"admin-users",class:"admin-card"},He={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},$e=Ye((()=>(0,a._)("th",null,"#",-1))),Ve={class:"left-text"},qe={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"},it={class:"cell-heading"},st={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)(),m=["is_active","admin","created_at","username","workouts_count"],d="created_at";let E=(0,s.qj)((0,Be.pm)(n.query,m,d));const S=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),_=(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){I("q",e.value)}function z(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function I(e,t){E[e]=t,"per_page"===e&&(E.page=1),u.push({path:"/admin/users",query:E})}return(0,a.wF)((()=>A(E))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{E=(0,Be.pm)(e,m,d,{query:E}),A(E)})),(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",xe,[(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,i.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)(Pe.Z,{sort:(0,s.SU)(Be.fS),order_by:m,query:(0,s.SU)(E),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,s.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",He,(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,[$e,(0,a._)("th",Ve,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",qe,(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,s.SU)(_),(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,s.SU)(Ke.p6)(t.created_at,(0,s.SU)(S).timezone,(0,s.SU)(S).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",it,(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",st,[(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,s.SU)(S).username,onClick:e=>z(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,s.SU)(T).page?((0,a.wg)(),(0,a.j4)(ke.Z,{key:0,path:"/admin/users",pagination:(0,s.SU)(T),query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,s.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,k.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var dt=mt,Et=n(2179);const St={class:"profile-tabs custom-checkboxes-group"},_t={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:i}=(0,s.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",St,[(0,a._)("div",_t,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.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,s.SU)(r).split("/")[0]===t,disabled:(0,s.SU)(i),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 zt={id:"user-profile"},It={class:"box"};var Rt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,s.BK)(t),o=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,t)=>{const i=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",zt,[(0,a.Wm)(Et.Z,{user:(0,s.SU)(n)},null,8,["user"]),(0,a._)("div",It,[(0,a.Wm)(Ot,{tabs:o,selectedTab:(0,s.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(i,{user:(0,s.SU)(n)},null,8,["user"])])])}}});const gt=(0,k.Z)(Rt,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,Ut=n(1585),ht=n(6287);const Ct={id:"user-preferences",class:"description-list"},wt={class:"profile-buttons"};var Dt=(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])),i=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),m=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),d=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),E=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ct,[(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,s.SU)(i)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(m)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(Ke.mh)((0,s.SU)(d),(0,s.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,s.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,s.SU)(E)}`)),1)]),(0,a._)("div",wt,[(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 vt=Dt;var ft=vt;const Pt={id:"user-profile-edition",class:"center-card"};var kt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:i}=(0,s.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],m=(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",Pt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,s.SU)(i)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ot,{tabs:u,selectedTab:(0,s.SU)(i),edition:!0,disabled:(0,s.SU)(m)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,s.SU)(r)},null,8,["user"])])),_:1})])}}});const Lt=kt;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"],Bt={class:"form-items",for:"email"},Kt=["disabled"],Yt={class:"form-items",for:"password-field"},xt={class:"form-items",for:"new-password-field"},Ht={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var $t=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,s.BK)(t),r=(0,c.o)(),u=(0,s.qj)({email:"",password:"",new_password:""}),m=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),d=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),E=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),S=(0,s.iH)(!1),_=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,s.iH)(!1),p=(0,s.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function z(e){u.password=e}function I(e){u.new_password=e}function R(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),S.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)((()=>E.value),(async e=>{e&&(z(""),I(""),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,s.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,s.SU)(_)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(_)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${S.value&&(0,s.SU)(d).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,i.iM)(R,["prevent"])},[(0,a._)("label",Bt,[(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,s.SU)(m),required:!0,onInvalid:A},null,40,Kt),[[i.nr,u.email]])]),(0,a._)("label",Yt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,s.SU)(m),password:u.password,required:!0,onUpdatePassword:z,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,s.SU)(m),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",Ht,[(0,a._)("button",Zt,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,i.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,i.iM)((e=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const Vt=(0,k.Z)($t,[["__scopeId","data-v-37b8c4c8"]]);var qt=Vt,jt=n(6761);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"},mn={class:"form-buttons"},dn={class:"confirm",type:"submit"};var En=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,Ke.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function E(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 S(e){r.bio=e}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&E(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,s.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.iM)(_,["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,s.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,s.SU)(m)},null,8,rn),[[i.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),[[i.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,s.SU)(m)},null,8,sn),[[i.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,s.SU)(m)},null,8,cn),[[i.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,s.SU)(m),onUpdateValue:S},null,8,["input","disabled"])]),(0,a._)("div",mn,[(0,a._)("button",dn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const Sn=(0,k.Z)(En,[["__scopeId","data-v-5e5a4552"]]);var _n=Sn;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"],zn={class:"picture-help"},In={class:"info-box"},Rn=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},Nn=["disabled"];var Un=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),E=d.value.max_single_file_size?(0,u.Z)(d.value.max_single_file_size):"",S=(0,s.iH)(null);function _(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(S.value=e.target.files[0])}function p(){S.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:S.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,s.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",zn,[(0,a._)("span",In,[Rn,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,s.SU)(E)),1)])]),(0,a._)("div",gn,[(0,a._)("button",{type:"submit",disabled:!S.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,s.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:_},(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 hn=(0,k.Z)(Un,[["__scopeId","data-v-687e9604"]]);var Cn=hn;const wn=["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"],Dn={id:"tz-dropdown"},vn=["value","disabled","onKeydown"],fn=["onClick","onMouseover","autofocus"];var Pn=(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,s.BK)(n),c=(0,s.iH)(n.input),u=(0,s.iH)(!1),m=(0,s.iH)(null),d=(0,s.iH)(0);function E(e){return e.toLowerCase().match(c.value.toLowerCase())}function S(e){d.value=e}function _(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),m.value?.firstElementChild?.innerHTML&&_(m.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",Dn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,s.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,i.D2)((e=>_((0,s.SU)(r))),["esc"])),(0,i.D2)(T,["enter"])],onInput:p},null,40,vn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:m},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(wn).filter((e=>E(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===d.value}]),onClick:t=>_(e),onMouseover:e=>S(t),autofocus:t===d.value},(0,o.zw)(e),43,fn)))),128))],512)):(0,a.kq)("",!0)]))}});const kn=(0,k.Z)(Pn,[["__scopeId","data-v-47ea2903"]]);var Ln=kn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Bn={class:"form-items"},Kn={class:"form-items"},Yn=["disabled"],xn=["value"],Hn={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},$n={class:"checkboxes"},Vn=["id","name","checked","disabled","onInput"],qn={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"},ir={class:"form-buttons"},sr={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,s.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}],m=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],d=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],E=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),_=(0,a.Fl)((()=>(0,Ke.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 z(e){r.imperial_units=e}function I(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,s.SU)(S)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.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,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(ht.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),[[i.bM,r.language]])]),(0,a._)("label",Bn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,s.SU)(E),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Kn,[(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,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(_),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,xn)))),128))],8,Yn),[[i.bM,r.date_format]])]),(0,a._)("div",Hn,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",$n,[((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,s.SU)(E),onInput:e=>I(t.value)},null,40,Vn),(0,a._)("span",qn,(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)(m,(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,s.SU)(E),onInput:e=>z(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)(d,(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,s.SU)(E),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",ir,[(0,a._)("button",sr,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,i.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,k.Z)(lr,[["__scopeId","data-v-3b8a9a12"]]);var ur=cr;const mr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],dr=["application:write"],Er={id:"new-oauth2-app"},Sr={id:"new-oauth2-title"},_r={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},zr={class:"form-item"},Ir={for:"app-description"},Rr={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},Ur={for:"app-redirect-uri"},hr={class:"form-item-scope"},Cr={class:"form-item-scope-label"},wr={class:"scope-label"},Dr=["name","checked","onChange"],vr=["innerHTML"],fr={class:"form-buttons"},Pr=["disabled"];var kr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,s.qj)([]),m=(0,a.Fl)((()=>_(t.authUser,dr,mr)));function d(){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(e){r.client_description=e}function S(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function _(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",Er,[(0,a._)("h1",Sr,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",_r,[(0,a._)("form",{onSubmit:(0,i.iM)(d,["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),[[i.nr,r.client_name]])]),(0,a._)("div",zr,[(0,a._)("label",Ir,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:E},null,8,["input"])]),(0,a._)("div",Rr,[(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),[[i.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",Ur,(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),[[i.nr,r.redirect_uri]])]),(0,a._)("div",hr,[(0,a._)("div",Cr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(m),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",wr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>S(t)},null,40,Dr),(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,vr)])))),128))])]),(0,a._)("div",fr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Pr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,i.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,k.Z)(kr,[["__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"},Br=["innerHTML"],Kr={class:"authorize-oauth2-buttons"},Yr={key:1},xr={class:"no-app"};var Hr=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),i=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function m(){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 d(){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)((()=>m())),(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,s.SU)(i).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,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).name),1)])),_:1},8,["to"])])),_:1})]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.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,s.SU)(i).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,Br)],64)))),128))]),(0,a._)("div",Kr,[(0,a._)("button",{class:"danger",onClick:d},(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",Yr,[(0,a._)("p",xr,(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,k.Z)(Hr,[["__scopeId","data-v-3b2fe9ed"]]);var $r=Zr;const Vr={id:"oauth2-apps"};var qr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.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",Vr,[(0,a.Wm)(n,{authUser:(0,s.SU)(r)},null,8,["authUser"])])}}});const jr=qr;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"},ia={class:"app-buttons"},sa={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)(),i=(0,c.o)(),{afterCreation:u,authUser:m}=(0,s.BK)(t),d=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.CLIENT])),E=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),S=(0,s.iH)(!1),_=(0,s.iH)(null),T=(0,s.iH)(!1),p=(0,s.iH)(!1),A=(0,s.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&i.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function z(e){_.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){S.value=e,e||(_.value=null)}function R(e){"oauth2.APP_DELETION_CONFIRMATION"===_.value?i.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):i.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(d.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){d.value.client_secret&&(navigator.clipboard.writeText(d.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)((()=>{i.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),i.commit(l.Km.MUTATIONS.EMPTY_CLIENT),i.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>E.value),(e=>{e&&I(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[S.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(_.value),onConfirmAction:t[0]||(t[0]=e=>R((0,s.SU)(d).id)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,s.SU)(d)&&(0,s.SU)(d).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,s.SU)(u)||(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,s.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,s.SU)(d).client_id)+" ",1),(0,s.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,s.SU)(u)&&(0,s.SU)(d).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,s.SU)(u)&&(0,s.SU)(d).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,s.SU)(d).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,s.SU)(Ke.p6)((0,s.SU)(d).issued_at,(0,s.SU)(m).timezone,(0,s.SU)(m).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).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,s.SU)(d).client_description})},(0,o.zw)((0,s.SU)(d).client_description?(0,s.SU)(d).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,s.SU)(d).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.SU)(d).redirect_uris.length>0?(0,s.SU)(d).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,s.SU)(d).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",ia,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>z(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>z(!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",sa,[(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,k.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var ma=ua;const da={id:"oauth2-apps-list"},Ea={class:"apps-list"},Sa={key:0},_a={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)(),i=(0,r.yj)(),{authUser:u}=(0,s.BK)(t),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let E=S(i.query);function S(e){const t={};return e.page&&(t.page=(0,Be.z_)(e.page,Be.Hf)),t}function _(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{_(E)})),(0,a.YP)((()=>i.query),(async e=>{E=S(e),_(E)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",da,[(0,a._)("p",Ea,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,s.SU)(m).length>0?((0,a.wg)(),(0,a.iD)("ul",Sa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(m),(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",_a,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,s.SU)(Ke.p6)(t.issued_at,(0,s.SU)(u).timezone,(0,s.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,s.SU)(m).length>0?((0,a.wg)(),(0,a.j4)(ke.Z,{key:2,pagination:(0,s.SU)(d),path:"/profile/apps",query:(0,s.SU)(E)},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,k.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var za=Oa;const Ia={id:"user-sport-preferences"},Ra={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},Ua={key:1,class:"profile-buttons"},ha={class:"text-left"},Ca={key:0},wa={class:"cell-heading"},Da=["value"],va={class:"cell-heading"},fa={key:0,class:"disabled-message"},Pa={key:1,class:"fa fa-refresh fa-spin fa-fw"},ka={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"},Ba=["onClick"],Ka={key:1,class:"edition-buttons"},Ya=["disabled"],xa=["disabled","onClick"],Ha=["disabled"],Za={key:0,class:"profile-buttons"},$a={key:1,class:"profile-buttons"};var Va=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,se.QT)(),{isEdition:u,user:m}=(0,s.BK)(t),d="#838383",E=(0,a.f3)("sportColors"),S=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),_=(0,a.Fl)((()=>(0,le.xH)(S.value,r,"is_active",m.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,s.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?E[e.label]:d,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function z(e){return A.sport_id===e}function I(e){A.color=e.target.value}function R(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 U(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function h(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",Ia,[(0,s.SU)(S).length>0?((0,a.wg)(),(0,a.iD)("div",Ra,[(0,a._)("div",ga,[(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",Ua,[(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",ha,(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,s.SU)(u)?((0,a.wg)(),(0,a.iD)("th",Ca,(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,s.SU)(_),(i=>((0,a.wg)(),(0,a.iD)("tr",{key:i.id},[(0,a._)("td",null,[(0,a._)("span",wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),z(i.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,Da)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:i.translatedLabel,"sport-label":i.label,color:i.color?i.color:(0,s.SU)(E)[i.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!i.is_active}])},[(0,a._)("span",va,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(i.translatedLabel)+" ",1),i.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",fa," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,s.SU)(T)&&z(i.id)?((0,a.wg)(),(0,a.iD)("i",Pa)):(0,a.kq)("",!0),(0,s.SU)(p)&&A.sport_id===i.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ka,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,s.SU)(m).sports_list.includes(i.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),z(i.id)&&i.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:i.is_active_for_user,onChange:g},null,40,Ma)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(i.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),z(i.id)&&i.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:R},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(i.stopped_speed_threshold),1))],2),(0,s.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(i)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ba)):(0,a.kq)("",!0),z(i.id)?((0,a.wg)(),(0,a.iD)("div",Ka,[(0,a._)("button",{disabled:(0,s.SU)(T),onClick:U},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Ya),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:e=>h(e,i.id)},(0,o.zw)(e.$t("buttons.RESET")),9,xa),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,Ha)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",$a,[(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 qa=(0,k.Z)(Va,[["__scopeId","data-v-74e52489"]]);var ja=qa,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))),io=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),so={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)((()=>[io])),_:1})]),(0,s.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",so,[lo,(0,a._)("a",{href:`mailto:${(0,s.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0)])])}}});const mo=(0,k.Z)(uo,[["__scopeId","data-v-74257266"]]);var Eo=mo;const So={id:"bike"},_o=["src"];function To(e,t){return(0,a.wg)(),(0,a.iD)("div",So,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,_o)])}const po={},Ao=(0,k.Z)(po,[["render",To],["__scopeId","data-v-795f7f5f"]]);var Oo=Ao;const zo={id:"about",class:"view"},Io={class:"container"},Ro={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",zo,[(0,a._)("div",Io,[(0,a._)("div",Ro,[(0,a.Wm)(Oo)]),(0,a._)("div",go,[(0,a.Wm)(Eo)])])]))}});const Uo=(0,k.Z)(No,[["__scopeId","data-v-bffb50d0"]]);var ho=Uo,Co=n(1818),wo=n(2056);const Do=e=>((0,a.dD)("data-v-96abcc38"),e=e(),(0,a.Cn)(),e),vo={class:"timeline-workout"},fo={class:"box"},Po={class:"workout-user-date"},ko={class:"workout-user"},Lo=["title"],Mo={key:0},bo={key:1,class:"no-map"},yo={class:"img"},Go={class:"data"},Fo=Do((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Wo={key:0},Bo={class:"data"},Ko=Do((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Yo={key:0,class:"data elevation"},xo=["alt"],Ho={class:"data-values"},Zo={key:1,class:"data altitude"},$o=Do((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),Vo={class:"data-values"};var qo=(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:i,sport:u,useImperialUnits:m}=(0,s.BK)(t),d=(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",vo,[(0,a._)("div",fo,[(0,a._)("div",Po,[(0,a._)("div",ko,[(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,s.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,s.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,s.SU)(i).workout_date&&(0,s.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,s.SU)(Ke.p6)((0,s.SU)(i).workout_date,(0,s.SU)(r).timezone,(0,s.SU)(r).date_format)},(0,o.zw)((0,s.SU)(Co.Z)(new Date((0,s.SU)(i).workout_date),new Date,{addSuffix:!0,locale:(0,s.SU)(d)})),9,Lo)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,s.SU)(i)}]),onClick:t[0]||(t[0]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("div",Mo,[(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.j4)(wo.Z,{key:0,workout:(0,s.SU)(i)},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,s.SU)(i)&&!(0,s.SU)(i).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,a._)("div",yo,[(0,s.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,s.SU)(u).label,color:(0,s.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",Go,[Fo,(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("span",Wo,(0,o.zw)((0,s.SU)(i).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Bo,[Ko,(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).distance,digits:3,unitFrom:"km",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.iD)("div",Yo,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,xo),(0,a._)("div",Ho,[(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/ "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).max_alt,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.iD)("div",Zo,[$o,(0,a._)("div",Vo,[(0,a.Uk)(" +"),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/- "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).descent,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const jo=(0,k.Z)(qo,[["__scopeId","data-v-96abcc38"]]);var Xo=jo,Jo=n(5630),Qo=n(3768);const ei={id:"timeline"},ti={class:"section-title"},ni={key:0},ri={key:1},ai={key:1,class:"more-workouts"};var oi=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:i}=(0,s.BK)(t),u=(0,s.iH)(1),m=5,d=t.user.nb_workouts>=m?m:t.user.nb_workouts;(0,a.wF)((()=>_()));const E=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),S=(0,a.Fl)((()=>E.value.length>0&&null!==E.value[E.value.length-1].previous_workout));function _(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:m,...Qo.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:m,...Qo.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ei,[(0,a._)("div",ti,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,s.SU)(i).nb_workouts>0&&0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.iD)("div",ni,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,s.SU)(d)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Xo,{user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",ri,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(E),(e=>((0,a.wg)(),(0,a.j4)(Xo,{workout:e,sport:(0,s.SU)(E).length>0?(0,s.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.j4)(Jo.Z,{key:0})):(0,a.kq)("",!0),(0,s.SU)(S)?((0,a.wg)(),(0,a.iD)("div",ai,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const ii=(0,k.Z)(oi,[["__scopeId","data-v-35567bf2"]]);var si=ii,li=n(1640),ci=n(4559),ui=n(7349),mi=n(1743),di=n(9160),Ei=n(1085);const Si=["title"];var _i=(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:i}=(0,s.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,s.SU)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,s.SU)(o),title:(0,s.SU)(r).title,color:(0,s.SU)(i)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,s.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,s.SU)(r).records.filter((e=>!!(0,s.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Si)):(0,a.kq)("",!0)])])}}});const Ti=_i;var pi=Ti;const Ai={class:"donut-chart"},Oi={height:"34",width:"34",viewBox:"0 0 34 34"},zi=["stroke","stroke-dashoffset","transform"];var Ii=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,s.BK)(t);let o=-90;const i=16,l=16,c=14,u=2*Math.PI*c;function m(e,t){return t-e*t}function d(e,t){const n=`rotate(${o}, ${i}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ai,[((0,a.wg)(),(0,a.iD)("svg",Oi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,s.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:i,cy:l,r:c,fill:"transparent",stroke:(0,s.SU)(n)[+e[0]],"stroke-dashoffset":m(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:d(t,e[1].percentage)},null,8,zi)])))),128))]))]))}});const Ri=Ii;var gi=Ri;const Ni={class:"calendar-workouts-chart"},Ui={class:"workouts-count"},hi={key:0,class:"workouts-pane"},Ci={class:"more-workouts"};var wi=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:i,workouts:l}=(0,s.BK)(t),c=(0,s.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const m=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",Ni,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",Ui,(0,o.zw)((0,s.SU)(l).length),1),(0,a.Wm)(gi,{datasets:(0,s.SU)(r),colors:(0,s.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",hi,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",Ci,[(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,s.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(pi,{key:t,workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(i)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(i))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[m,u]])]))])}}});const Di=(0,k.Z)(wi,[["__scopeId","data-v-52d4310a"]]);var vi=Di;const fi={class:"calendar-workouts"},Pi={class:"desktop-display"},ki={key:0,class:"workouts-display"},Li={key:1,class:"donut-display"},Mi={class:"mobile-display"},bi={key:0,class:"donut-display"};var yi=(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,s.BK)(t),i=(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",fi,[(0,a._)("div",Pi,[(0,s.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",ki,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(pi,{key:t,displayHARecord:(0,s.SU)(n),workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(o)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",Li,[(0,a.Wm)(vi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",Mi,[(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",bi,[(0,a.Wm)(vi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Gi=yi;var Fi=Gi;const Wi={class:"calendar-cells"},Bi={class:"calendar-cell-day"};var Ki=(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:i,sports:l,startDate:c,timezone:u,weekStartingMonday:m,workouts:d}=(0,s.BK)(t),E=(0,s.iH)([]);function S(){E.value=[];let e=c.value;while(e<=i.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,ui.Z)(e,1);E.value.push(t)}}function _(e){return m.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,mi.Z)((0,Ke.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>S())),(0,a.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Wi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(E.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,s.SU)(di.Z)(e,(0,s.SU)(n)),"week-end":_(t),today:(0,s.SU)(Ei.Z)(e)}]),key:t},[(0,a.Wm)(Fi,{workouts:T(e,(0,s.SU)(d)),sports:(0,s.SU)(l),displayHARecord:(0,s.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Bi,(0,o.zw)((0,s.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const Yi=Ki;var xi=Yi;const Hi={class:"calendar-days"};var Zi=(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,ui.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",Hi,[((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,s.SU)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const $i=Zi;var Vi=$i;const qi={class:"calendar-header"},ji=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Xi=[ji],Ji={class:"calendar-month"},Qi=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),es=[Qi];var ts=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:i}=(0,s.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",qi,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Xi),(0,a._)("div",Ji,[(0,a._)("span",null,(0,o.zw)((0,s.SU)(jt.Z)((0,s.SU)(r),"MMM yyyy",{locale:(0,s.SU)(i)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},es)]))}});const ns=ts;var rs=ns;const as={id:"user-calendar"},os={class:"calendar-card box"};var is=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,s.BK)(t),i="yyyy-MM-dd",u=(0,s.iH)(new Date),m=(0,s.iH)((0,Ke.yx)(u.value,t.user.weekm)),d=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function S(){m.value=(0,Ke.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(m.value.start,i),to:(0,jt.Z)(m.value.end,i),page:1,per_page:100,...Qo.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function _(){u.value=(0,li.Z)(u.value,1),S()}function T(){u.value=(0,ci.Z)(u.value,1),S()}return(0,a.wF)((()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",as,[(0,a._)("div",os,[(0,a.Wm)(rs,{day:u.value,"locale-options":(0,s.SU)(E),onDisplayNextMonth:_,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(Vi,{"start-date":m.value.start,"locale-options":(0,s.SU)(E)},null,8,["start-date","locale-options"]),(0,a.Wm)(xi,{currentDay:u.value,displayHARecord:(0,s.SU)(o).display_ascent,"end-date":m.value.end,sports:(0,s.SU)(r),"start-date":m.value.start,timezone:(0,s.SU)(o).timezone,workouts:(0,s.SU)(d),weekStartingMonday:(0,s.SU)(o).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const ss=is;var ls=ss,cs=n(3703),us=n(4135),ms=n(436);const ds={class:"user-month-stats"};var Es=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,s.BK)(t),i=new Date,l={duration:"week",start:(0,cs.Z)(i),end:(0,us.Z)(i)},c=t.sports.map((e=>e.id));return(e,t)=>{const i=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ds,[(0,a.Wm)(i,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(ms.Z,{sports:(0,s.SU)(n),user:(0,s.SU)(r),"chart-params":l,"displayed-sport-ids":(0,s.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Ss=(0,k.Z)(Es,[["__scopeId","data-v-1bcddc12"]]);var _s=Ss,Ts=n(2540),ps=n(3649);const{locale:As}=Ts.Z.global,Os=(e,t,n,r)=>{const a="km",o=n?ps.Dl[a].defaultTarget:a,i="m",s=n?ps.Dl[i].defaultTarget:i;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,ps.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,ps.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,ps.sC)(+e.value,i,s,2)} ${s}`;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,Ke.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},zs=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ke.mh)(o,As.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const i=t.find((e=>e.id===a.sport_id));return i&&i.label&&(void 0===e[i.translatedLabel]&&(e[i.translatedLabel]={label:i.label,color:i.color,records:[]}),e[i.translatedLabel].records.push(Os(a,n,r,o))),e}),{})),Rs={class:"records-card"},gs={class:"record-type"},Ns={class:"record-value"},Us={class:"record-date"};var hs=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,s.BK)(t),{t:i}=(0,se.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:i(`workouts.RECORD_${e.record_type}`)})})),t.sort(zs)}return(e,t)=>{const i=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Rs,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(i,{"sport-label":(0,s.SU)(n).label,color:(0,s.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,s.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,s.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",gs,(0,o.zw)(e.label),1),(0,a._)("span",Ns,(0,o.zw)(e.value),1),(0,a._)("span",Us,[(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 Cs=(0,k.Z)(hs,[["__scopeId","data-v-8d17c606"]]);var ws=Cs;const Ds=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),vs={class:"user-records-section"},fs={class:"section-title"},Ps=Ds((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),ks={class:"user-records"},Ls={key:0,class:"no-records"};var Ms=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),r=(0,a.Fl)((()=>Is(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",vs,[(0,a._)("div",fs,[Ps,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",ks,[0===Object.keys((0,s.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Ls,(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,s.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(ws,{sportTranslatedLabel:t,records:(0,s.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const bs=(0,k.Z)(Ms,[["__scopeId","data-v-f0c85cb8"]]);var ys=bs;const Gs={id:"user-stats"};var Fs=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),{user:r}=(0,s.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),i=(0,a.Fl)((()=>S(o))),l="km",c=r.value.imperial_units?ps.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,ps.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),m="m",d=r.value.imperial_units?ps.Dl[m].defaultTarget:m,E=(0,a.Fl)((()=>r.value.imperial_units?(0,ps.sC)(r.value.total_ascent,m,d,2):parseFloat(r.value.total_ascent.toFixed(2))));function S(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",Gs,[(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"road",value:(0,s.SU)(u),text:"mi"===(0,s.SU)(c)?"miles":(0,s.SU)(c)},null,8,["value","text"]),(0,s.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(x,{key:0,icon:"location-arrow",value:(0,s.SU)(E),text:"ft"===(0,s.SU)(d)?"feet":(0,s.SU)(d)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(x,{icon:"clock-o",value:(0,s.SU)(i).days,text:(0,s.SU)(i).duration},null,8,["value","text"]),(0,s.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(x,{key:1,icon:"tags",value:(0,s.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,s.SU)(r).nb_sports)},null,8,["value","text"]))]))}});const Ws=Fs;var Bs=Ws;const Ks=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),Ys={key:0,id:"dashboard",class:"view"},xs={class:"container mobile-menu"},Hs={class:"box"},Zs=Ks((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),$s=[Zs],Vs=Ks((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),qs=[Vs],js=Ks((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Xs=[js],Js=Ks((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),Qs=[Js],el={class:"container"},tl={class:"container dashboard-container"},nl={class:"left-container dashboard-sub-container"},rl={class:"right-container dashboard-sub-container"},al=Ks((()=>(0,a._)("div",{id:"bottom"},null,-1))),ol={key:1,class:"app-loading"};var il=(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])),i=(0,s.iH)("calendar");function u(e){i.value=e}return(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(e,t)=>{const l=(0,a.up)("Loader");return(0,s.SU)(n).username&&(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",Ys,[(0,a._)("div",xs,[(0,a._)("div",Hs,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},$s,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},qs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Xs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:t[3]||(t[3]=e=>u("records"))},Qs,2)])]),(0,a._)("div",el,[(0,a.Wm)(Bs,{user:(0,s.SU)(n)},null,8,["user"])]),(0,a._)("div",tl,[(0,a._)("div",nl,[(0,a.Wm)(_s,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(ys,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),(0,a._)("div",rl,[(0,a.Wm)(ls,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(si,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),al])):((0,a.wg)(),(0,a.iD)("div",ol,[(0,a.Wm)(l)]))}}});const sl=(0,k.Z)(il,[["__scopeId","data-v-4c0893c1"]]);var ll=sl,cl=n(8273);const ul={class:"not-found view"};var ml=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ul,[(0,a.Wm)(cl.Z)]))}});const dl=ml;var El=dl,Sl=n(2411);const _l={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,s.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",_l,[(0,a._)("div",Tl,[(0,a._)("div",pl,[(0,a.Wm)(Oo)]),(0,a._)("div",Al,[(0,a.Wm)(Sl.Z,{action:(0,s.SU)(n)},null,8,["action"])])])]))}});const zl=(0,k.Z)(Ol,[["__scopeId","data-v-58043acb"]]);var Il=zl;const Rl=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:Il,props:{action:"login"}},{path:"/register",name:"Register",component:Il,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,8793))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,1133)),children:[{path:"",name:"UserProfile",component:Nt,props:e=>({tab:Rl(e.path)}),children:[{path:"",name:"UserInfos",component:Ut.Z},{path:"preferences",name:"UserPreferences",component:ft},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:za},{path:":id",name:"UserApp",component:ma},{path:":id/created",name:"CreatedUserApp",component:ma,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:$r}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Rl(e.path)}),children:[{path:"",name:"UserInfosEdition",component:_n},{path:"account",name:"UserAccountEdition",component:qt},{path:"picture",name:"UserPictureEdition",component:Cn},{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:ie},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:fe},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:dt}]},{path:"/about",name:"About",component:ho},{path:"/:pathMatch(.*)*",name:"not-found",component:El}],Nl=(0,r.p7)({history:(0,r.PO)("/"),routes:gl}),Ul=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],hl=["/email-update","/about"];Nl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(hl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&Ul.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||Ul.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 Cl=Nl},5801:function(e,t,n){"use strict";var r,a,o,i,s,l,c,u,m,d,E,S,_,T,p,A,O,z;n.d(t,{YN:function(){return U},Km:function(){return h},SY:function(){return R},O8:function(){return g},gu:function(){return N},RT:function(){return C},aX:function(){return w}}),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"}(i||(i={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(s||(s={})),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"}(m||(m={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(d||(d={})),function(e){e["SPORTS"]="SPORTS"}(E||(E={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(S||(S={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(_||(_={})),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"}(z||(z={}));var I=n(52);const R={ACTIONS:c,GETTERS:u,MUTATIONS:m},g={ACTIONS:d,GETTERS:E,MUTATIONS:S},N={ACTIONS:_,GETTERS:T,MUTATIONS:p},U={ACTIONS:r,GETTERS:a,MUTATIONS:o},h={ACTIONS:i,GETTERS:s,MUTATIONS:l},C={ACTIONS:A,GETTERS:O,MUTATIONS:z},w={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return me}});var r=n(3907),a=(n(7658),n(5167)),o=n(594),i=n(8566),s=n(2024);const l=o.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,i.a)(e);return i.j.set(n,t),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,i.a)(e.response.config),Promise.reject(e))));var c=l,u=n(7351),m=n(5801);const d=(e,t)=>{e.commit(m.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(m.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){d(e,{username:t.username,fromAdmin:!0})}},S=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},_={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&S(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.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(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,s.S)(e,null),S(e))})).catch((t=>{"canceled"!==t.message&&((0,s.S)(e,t),S(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?S(e):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>{(0,s.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){d(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},T={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:_,getters:T,mutations:p};var z=O;const I=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},R={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(m.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client),u.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){I(e,`oauth/apps/${t}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){I(e,`oauth/apps/${t}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},g={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},N={[m.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},U={client:{},clients:[],pagination:{},revocationSuccessful:!1},h={state:U,actions:R,getters:g,mutations:N};var C=h,w=n(2540);const{locale:D}=w.Z.global,v={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t),D.value=t}},f={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var P=n(6287);const k={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=P.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={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},y={[m.O8.GETTERS.SPORTS]:e=>e.sports},G={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},F={sports:[]},W={state:F,actions:b,getters:y,mutations:G};var B=W;const K={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},Y={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},x={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},H={statistics:{}},Z={state:H,actions:K,getters:Y,mutations:x};var $=Z;const V={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},q={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},j={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},X={state:j,actions:E,getters:V,mutations:q};var J=X,Q=n(52);const ee=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===Q.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},te={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,t,Q.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){ee(e,t,Q.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.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(m.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(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.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,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,s.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},ne={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},re={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.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 ie=oe;const se={authUserModule:z,oAuthModule:C,sportsModule:B,statsModule:$,usersModule:J,workoutsModule:ie},le={state:M,actions:v,getters:f,mutations:k,modules:se};var ce=le;const ue=(0,r.MT)(ce);var me=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 m},pm:function(){return l},z_:function(){return i}});const r=["asc","desc"],a=1,o=10,i=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,s=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",m={};return m.page=i(e.page,a),m.per_page=i(e.per_page,o),m.order=s(e.order,r,u),m.order_by=s(e.order_by,t,n),"string"===typeof e.q?m.q=e.q:delete m.q,m},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)),m=(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,i.Z)(t,7);case"year":return(0,s.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,d.utcToZonedTime)(new Date(e),t),O=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),i=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:i}),end:(0,u.Z)(a,{weekStartsOn:i})}},z=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,_.value),n||(n="HH:mm"),{workout_date:(0,m.Z)(e,t,{locale:S.v1[_.value]}),workout_time:(0,m.Z)(e,n)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],R={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy",it:"d MMM yyyy",nl:"d MMM yyyy"},g=(e,t)=>"date_string"===e?R[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=_.value),(0,m.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:S.v1[a]})),U=(e,t,n=null)=>{const r=n||_.value,a=[];return I.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 d},v1:function(){return c},zK:function(){return u}});var r=n(879),a=n(5826),o=n(5830),i=n(8160),s=n(4638),l=n(2540);const c={de:r.Z,en:a.Z,fr:o.Z,it:i.Z,nl:s.Z},u={de:"Deutsch",en:"English",fr:"Français",it:"Italiano",nl:"Nederlands"},{availableLocales:m}=l.Z.global,d=m.map((e=>({label:u[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return s},Yx:function(){return a},Zo:function(){return r},xH:function(){return i}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7",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),s=(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 v},aZ:function(){return D},v1:function(){return w}});n(7658);var r=n(6761),a=n(8148),o=n(9319),i=n(584),s=n(4559),l=n(3703),c=n(876),u=n(7090),m=n(4135),d=n(1593),E=n(7982),S=n(3500),_=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),z=n(3649);const{locale:I}=T.Z.global,R={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},U=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},h=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(U(e.label,n,!0)),t.nb_workouts.push(U(e.label,n)),t.total_distance.push(U(e.label,n)),t.total_duration.push(U(e.label,n)),t.total_ascent.push(U(e.label,n)),t.total_descent.push(U(e.label,n))})),t},C=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,z.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},w=(e,t,n,a,o,i,s)=>{const l=N(e,t),c=R[e.duration],u=n.filter((e=>a.includes(e.id))),m=[],d=h(u),E={};return u.map((e=>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)(s,I.value):c.chart,{locale:A.v1[I.value]});m.push(a),g.map((e=>{d[e].map((t=>{t.data.push(n in o&&E[t.label]in o[n]?C(e,o[n][E[t.label]][e],i):"average_speed"===e?null:0)}))}))})),{labels:m,datasets:d}},D=(e,t,n)=>{const r=n?1:0,d="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,i.Z)((0,s.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,s.Z)(e,11)),E="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,m.Z)(e);return{duration:t,end:E,start:d}},v=(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,d.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,E.Z)(p,1):(0,S.Z)(p,1),{weekStartsOn:A}):(0,m.Z)(t?(0,s.Z)(p,1):(0,_.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,d.Z)(T,1)):"week"===r?(0,i.Z)(t?(0,E.Z)(T,1):(0,S.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,s.Z)(T,1):(0,_.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},f3:function(){return i},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 i=r[t],s=r[n],l=e*i.multiplier*a[i.system][s.system]/s.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},i=(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 i}});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=[],i=[],s=[];return e.map((e=>{o.push(e.distance),i.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)),s.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:i,datasets:a,coordinates:s}},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},i={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(6252);const a={class:"card"},o={class:"card-title"},i={class:"card-content"};function s(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",i,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",s]]);var m=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 i={class:"table-selects"},s=["value"],l=["value"],c=["value"],u=["value"],m=["value"],d=["value"];var E=(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:E,query:S,sort:_,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",i,[(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)(S).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(E),(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,s)]),(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)(S).order,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(`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)(S).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,d))),64))],40,m)])]))}}),S=n(3744);const _=(0,S.Z)(E,[["__scopeId","data-v-72463173"]]);var T=_},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),i=[o];function s(e,t,n,o,s,l){return(0,r.wg)(),(0,r.iD)("svg",a,i)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",s]]);var m=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(6252),a=n(2262),o=(n(7658),n(3577));const i={id:"error"},s={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",i,[(0,r._)("div",s,[(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 m=u,d=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t),o=(0,a.iH)(),i=(0,a.iH)(!1);function s(){o.value=setTimeout((()=>{i.value=!0}),500)}return(0,r.bv)((()=>s())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>i.value?((0,r.wg)(),(0,r.j4)(m,{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 E=d;var S=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),i=n(2766);const s=e=>((0,r.dD)("data-v-3a9a4a65"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=s((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),m={key:0},d=s((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var E=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:s,query:E}=(0,o.BK)(t);function S(e,t){const n=Object.assign({},E.value);return n.page=t?e+t:e,n}return(e,t)=>{const E=(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)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:S((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)(i.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",m," ... ")):((0,r.wg)(),(0,r.j4)(E,{key:1,class:"page-link",to:{path:(0,o.SU)(s),query:S(+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)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:S((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),d]))])),_:3},8,["to","disabled"])],2)])])}}}),S=n(3744);const _=(0,S.Z)(E,[["__scopeId","data-v-3a9a4a65"]]);var T=_},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return D}});var r=n(6252),a=n(2262),o=n(9963),i=n(3577),s=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)),i=await n.e(881).then(n.bind(n,3140)),l={de:o,en:r,fr:a,it:i,nb:r,nl:r},c=l[e],u={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...c.default.dictionary}};s.Mu.setOptions(u)},m=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},d={class:"password-strength"},E=["value"],S={key:0,class:"password-strength-details"},_={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])),z=(0,a.iH)(0),I=(0,a.iH)(""),R=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,s.tu)(e);z.value=t.score,I.value=m(z.value),R.value=t.feedback.suggestions,g.value=100*z.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?I.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",d,[(0,r._)("input",{class:(0,i.C_)(["password-slider",`strength-${z.value}`]),style:(0,i.j5)({backgroundSize:g.value}),type:"range",value:z.value,min:"0",max:"4",step:"1"},null,14,E),I.value?((0,r.wg)(),(0,r.iD)("div",S,[(0,r._)("span",_,(0,i.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),R.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)(R.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),O=n(3744);const z=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var I=z;const R=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),g={class:"password-input"},N=["id","disabled","placeholder","required","type"],U={key:0,class:"form-info"},h=R((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var C=(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:s,disabled:l,id:c,password:u,placeholder:m,required:d}=(0,a.BK)(n),E=(0,a.iH)(!1),S=(0,a.iH)("");function _(){E.value=!E.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(S.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)(m),required:(0,a.SU)(d),type:E.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>S.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,N),[[o.YZ,S.value]]),(0,r._)("div",{class:"show-password",onClick:_},[(0,r.Uk)((0,i.zw)(e.$t(`user.${E.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,i.C_)(["fa","fa-eye"+(E.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(s)?((0,r.wg)(),(0,r.iD)("div",U,[h,(0,r.Uk)(" "+(0,i.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(s)?((0,r.wg)(),(0,r.j4)(I,{key:1,password:S.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const w=(0,O.Z)(C,[["__scopeId","data-v-5a126514"]]);var D=w},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),i=n(2024);const s=(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,i.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)),s],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"},i={key:0},s={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],m=["checked"],d={key:0},E=["checked"],S={key:1},_=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,z){const I=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",i,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",s,[(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,m),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",d,[(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,E),(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",S,[(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,_),(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)(I,{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(6761),z=n(2262);const I={class:"chart"};function R(e,t,n,a,o,i){const s=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",I,[(0,r.Wm)(s,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);const U=(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 h=n(3649);const C=(e,t,n,r=!0,a="km")=>{const o=n?h.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return U(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var w=(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 i=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(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 C(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 C(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?C(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+=C(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")}: `+C(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:i,options:s});return{barChartProps:l}}}),D=n(3744);const v=(0,D.Z)(w,[["render",R]]);var f=v,P=n(5801),k=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:f},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,k.o)(),n=(0,z.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[P.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 i(n){t.dispatch(P.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function s(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)((()=>i(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{i(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:s}}});const b=(0,D.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),i=n(6595),s=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},m={class:"user-name"},d={class:"user-stats"},E={class:"user-stat"},S={class:"stat-number"},_={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},z={class:"stat-label"};var I=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),I=(0,l.o)(),R=(0,r.Fl)((()=>I.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(i.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",m,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",d,[(0,r._)("div",E,[(0,r._)("span",S,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",_,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(s,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(R).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(R).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",z,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),R=n(3744);const g=(0,R.Z)(I,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});n(7658);var r=n(6252),a=n(2262),o=n(3577),i=n(9963),s=n(6761),l=n(5801),c=n(9917),u=n(6558),m=n(6287);const d={id:"user-infos",class:"description-list"},E={key:1,class:"info-box success-message"},S={key:4,class:"email-form form-box"},_={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],z={key:5},I={class:"user-bio"},R={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var U=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:U,fromAdmin:h}=(0,a.BK)(t),C=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),w=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),D=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,w.value.timezone,w.value.date_format):"")),v=(0,r.Fl)((()=>t.user.birth_date?(0,s.Z)(new Date(t.user.birth_date),`${(0,u.mh)(w.value.date_format,C.value)}`,{locale:m.v1[C.value]}):"")),f=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),k=(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 B(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function K(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function Y(){Z(),y.value=U.value.email_to_confirm?U.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function x(){y.value="",b.value=!1}function H(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)((()=>f.value),(e=>{e&&(F(""),x())})),(e,t)=>{const n=(0,r.up)("Modal"),s=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",d,[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)(U).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(U).username):B((0,a.SU)(U).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(f)?((0,r.wg)(),(0,r.iD)("div",E,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(U).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(s,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(P)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(P)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",S,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,i.iM)((e=>H((0,a.SU)(U).username)),["prevent"]))},[(0,r._)("label",_,[(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)(U).email=e),disabled:""},null,512),[[i.nr,(0,a.SU)(U).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),[[i.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,i.iM)(x,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",z,[(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)(D)),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)(U).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)(U).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)(v)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(U).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",I,(0,o.zw)((0,a.SU)(U).bio),1)]),(0,a.SU)(h)?((0,r.wg)(),(0,r.iD)("div",R,[(0,a.SU)(w).username!==(0,a.SU)(U).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,i.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(U).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,i.iM)((e=>K((0,a.SU)(U).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(w).username!==(0,a.SU)(U).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,i.iM)(Y,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(w).username!==(0,a.SU)(U).username&&(0,a.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,i.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)]))]))])}}}),h=n(3744);const C=(0,h.Z)(U,[["__scopeId","data-v-217519af"]]);var w=C},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(3577),o=n(2262),i=n(9963),s=n(2201),l=n(8403),c=n(5801),u=n(9917);const m=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),d={id:"user-form"},E={key:2,class:"info-box success-message"},S={class:"form-items"},_=["disabled","placeholder"],T={key:1,class:"form-info"},p=m((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},z=m((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I=["disabled"],R={key:3},g={key:0},N={key:4},U={class:"account"},h={key:5};var C=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,s.yj)(),m=(0,u.o)(),{action:C}=(0,o.BK)(t),w=(0,o.qj)({username:"",email:"",password:""}),D=(0,r.Fl)((()=>G(t.action))),v=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.ERROR_MESSAGES])),f=(0,r.Fl)((()=>m.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),P=(0,r.Fl)((()=>m.getters[c.YN.GETTERS.IS_SUCCESS])),k=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>m.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!k.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!k.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){w.password=e}function B(e){switch(e){case"reset":return t.token?m.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:w.password,token:t.token}):m.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return m.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:w.email});case"account-confirmation-resend":return m.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:w.email});default:w["language"]=L.value,m.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:w,redirectUrl:n.query.from})}}function K(){w.username="",w.email="",w.password=""}return(0,r.Ah)((()=>m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,r.YP)((()=>n.path),(async()=>{m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),m.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),m.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,K()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),s=(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)(C))?(0,o.SU)(C):"user-form"}`)},[(0,r._)("div",d,[(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)(P)||(0,o.SU)(f)?((0,r.wg)(),(0,r.iD)("div",E,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(f)?"REGISTRATION"+((0,o.SU)(k).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,i.iM)((e=>B((0,o.SU)(C))),["prevent"]))},[(0,r._)("div",S,["register"===(0,o.SU)(C)?(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=>w.username=e),placeholder:e.$t("user.USERNAME")},null,40,_)),[[i.nr,w.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(C)?((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)(C)?(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=>w.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[i.nr,w.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(C))?((0,r.wg)(),(0,r.iD)("div",O,[z,(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)(C))?(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)(C)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:w.password,checkStrength:["reset","register"].includes((0,o.SU)(C)),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)(D))),9,I)],34),"login"===(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(s,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",g,"-")):(0,r.kq)("",!0),(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(s,{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)(C)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",U,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(s,{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)(C))&&(0,o.SU)(k).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",h,[(0,r.Wm)(s,{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)(v)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(v)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),w=n(3744);const D=(0,w.Z)(C,[["__scopeId","data-v-b3c885de"]]);var v=D},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=n(2024);const i={class:"user-picture"},s=["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 m=(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",i,[""!==(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,s)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const d=m;var E=d},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 i(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 s=n(3744);const l={},c=(0,s.Z)(l,[["render",i],["__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,"./it/it.ts":4334,"./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 i=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(s=!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 i={};e=e||[null,t({}),t([]),t(t)];for(var s=2&a&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){i[e]=function(){return r[e]}}));return i["default"]=function(){return r},n.d(o,i),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:"433bb75d",93:"7582eaa7",193:"31ee4368",243:"e034bc01",328:"443044dd",401:"ac9db1a8",431:"6f0a9946",633:"3c9401e6",845:"d9355913",858:"5db37332",881:"216e8bea"}[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,i){if(e[r])e[r].push(a);else{var s,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 update after 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\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\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_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\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 \"USERS\": {\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 \"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 },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\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 file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\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 \"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 \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut 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 \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\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 \"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\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\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 \"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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])}\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 \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff 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 },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\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 \"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 \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergsteigen\"])}\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 \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\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 \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\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_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\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 \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\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 \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])}\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_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\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_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\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 \"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 \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\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 \"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 \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\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 \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])}\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 \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\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 \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Distanz muss größer als 0 sein\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Dauer muss größer als 0 Sekunden sein\"])},\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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\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 \"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 \"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 \"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 \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .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\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\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_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\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 \"USERS\": {\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 \"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 },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network 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 file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\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 \"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 \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\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 \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\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 \"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 \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])}\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\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\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 \"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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])}\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 \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\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 \"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 \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountaineering\"])}\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 \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\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 \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\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_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\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 \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\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 \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])}\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_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\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_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update 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 \"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 \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\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 \"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 \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\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 \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])}\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 \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. 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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\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 \"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 \"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 \"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 \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .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\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\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_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\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 \"USERS\": {\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 \"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 },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\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 file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\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 \"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 \"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 \"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 \"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 \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\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 \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])}\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\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\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 \"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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])}\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 \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\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 \"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 \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinisme\"])}\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 \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\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 \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"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_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\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 \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\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 \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\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 \"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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])}\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_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\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 \"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 \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\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 \"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 \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n }\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 \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])}\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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\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 \"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 \"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 \"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 \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un 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 \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contatta l'amministratore\"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Codice sorgente\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee è un tracker self-hosted per attività outdoor.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sotto licenza \", _interpolate(_list(0)), \" \"])}\n}","export default {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Azione\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se settato a 0, non ci sono limiti per le registrazioni.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di utenti attivi\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dei file caricabili (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurazione applicazione\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna mail di contatto\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di files zip\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dell'archivio zip (in Mb)\"])},\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email di contatto dell'amministratore\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna ad amministrazione\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler resettare \", _interpolate(_list(0)), \" password?\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva/Disattiva sports.\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La password è stata reimpostata.\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Immagine\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etichetta\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout esistono\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione sport\"])}\n },\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato admin\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nome utente\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"numero di workout\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data di registrazione\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato account\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi permessi di amministratore\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi permessi di amministratore\"])}\n }\n },\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina utente\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova email\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento abilitata.\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'invio di email è disabilitato.\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi/rimuovi permessi, elimina account utente.\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva account\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler eliminare \", _interpolate(_list(0)), \" account? Tutti i dati verranno persi, quest'azione non può essere annullata.\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email corrente\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento disabilitata.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna email\"])},\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna configurazione applicazione (numero massimo di utenti registrati, dimensione massima dei files).\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utente\"]), _normalize([\"utenti\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'indirizzo email è stato aggiornato.\"])}\n}","export default {\n \"ERROR\": {\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: dev'essere inserita un'email valida.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File con estensione non permessa.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Credenziali errate.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I dati inseriti non sono validi.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insersci un token di autenticazione valido.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto. Per favore ripeti il log in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, quell'username è già esistente.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dev'essere inserita un'email valida\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore di rete.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, la registrazione è disabilitata.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amminstratore.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura del file gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura della configurazione.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'elaborazione del file gpx.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dimensione del file è maggiore di quella massima permessa.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'aggiornamento della configurazione\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, per favore riprova o contatta l'amministratore.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrato con successo.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utente non esiste.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nuova email dev'essere diversa dalla vecchia mail\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai i permessi necessari.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: la password inserita e la conferma non combaciano.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo sport non esiste.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il numero di files nell'archivio supera il limite massimo permesso.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"precedente\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avanti\"])}\n }\n}","export default {\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annulla\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina il mio account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disattiva\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invia\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si\"])},\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorizza\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Indietro\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta filtri\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])}\n}","export default {\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più basso al più alto\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più alto al più basso\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina per\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totale\"])},\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contatto\"])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostrato\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentazione\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"qui\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nascosto\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conferma\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"giorno\"]), _normalize([\"giorni\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])}\n}","export default {\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo mese\"])},\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])}\n}","export default {\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina non trovata\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout non trovato\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Qualcosa è andato storto\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amministratore.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'applicazione ha riscontrato dei problemi.
Per favore riprova più tardi o contatta l'amministratore.\"])}\n}","export default {\n \"APP\": {\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL redirect\"])},\n \"SCOPE\": {\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura alla configurazioen dell'applicazione.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a workouts endpoints.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a auth endpoints.\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a usersendpoints.\"])}\n },\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL applicazione\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descrizione applicazione\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome applicazione\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazioni OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più.\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autorizzi \", _interpolate(_list(0)), \" ad utilizzare il tuo account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copia nella clipboard\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna descrizione\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi tutti i tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler rimuovere tutti i token?\"])},\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi una nuova applicazione OAuth2\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'applicazione \", _interpolate(_list(0)), \" sta chiedendo:\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina applicazione\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi applicazione\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione non trovata!\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare quest'app?\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna applicazione\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tutti i token esistenti associati sono stati rimossi.\"])}\n}","export default {\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Canottaggio\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Corsa\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Alpino)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Cross Country)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinismo\"])}\n },\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Trasporto)\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cicliscmo (Virtuale)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escursioni\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Racchette da neve\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Elettrica)\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sentieri\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Camminata\"])}\n }\n}","export default {\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mese\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"settimana\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anno\"])}\n },\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiche\"])}\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai ricevuto istruzioni?\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hai già un account?\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password corrente\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci un indirizzo email valido.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci una password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra per username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token invalido, per favore richiedi un nuovo reset della password.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun utente trovato.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password dimenticata?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci almeno 8 caratteri.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"media\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"buona\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sicurezza password\"])},\n \"SUGGESTIONS\": {\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi più parole che sono meno comuni.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"È consigliabile cambiare questa password se è utilizzata per altro.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date recenti.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di ripetere lettere e parole.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di scrivere parole al contrario.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sequenze di caratteri comuni.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa più parole, ma evita frasi comuni.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci maiuscole oltre alla prima lettera.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci qualche maiuscola.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sostituzioni prevedibili, per esempio, \", \"@\", \" per la a.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa patterns più lunghi e cambia direzione di scrittura più volte.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bassa\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La tua password è stata aggiornata. Clicca \", _interpolate(_list(0)), \" per effettuare il login.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tipo di account\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"azione\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"colore\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disattivato dall'amministratore\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"attivo\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"etichetta\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limite minimo di velocità\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze sport\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato creato con successo.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo.\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferenze\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profilo\"])}\n },\n \"UNITS\": {\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema metrico (m, km)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unità per la distanza\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema imperiale (ft, mi)\"])}\n },\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna al profilo\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica profilo\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dati relativi alle salite (singoli, totale)\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di nascita\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Formato data\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primo giorno della settimana\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cognome\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi foto\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domenica\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze sport\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Per favore \", _interpolate(_list(0)), \" per cambiare di nuovo la tua mail o contatta l'amministratore\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posizione\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilo\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunedì\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna foto\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di registrazione\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un link per attivare il tuo account è stato inviato all'indirizzo specificato.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma dell'account\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta password\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo \\\"_\\\".\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto profilo\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password.\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, la registrazione è disabilitata.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo account è inattivo.\"])}\n}","export default {\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità media\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vel. media\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ritorna al workout\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distanza\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevazione\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fine\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi filtri\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distanza dev'essere maggiore di 0\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica più workout\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine massima\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file massimi\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dimensione massima\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità massima\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data dal file gpx, senza \\\"pulizia\\\"\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna cartella all'interno\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna mappa\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout successivo\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout precedente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun record.\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segmento precedente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distanza più lunga\"])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inizio\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cielo chiaro\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte parzialmente nuvolosa\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pioggia\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte chiara\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nebbia\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"parzialmente nuvoloso\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuvoloso\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nevischio\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neve\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])}\n },\n \"WIND_DIRECTIONS\": {\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n },\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatura\"])},\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"umidità\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])}\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"senza file .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"con file .gpx\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare questo workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"o file .zip contenente files .gpx\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento precedente\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durata dev'essere maggiore di 0\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"salita\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica il workout\"])},\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi un workout\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ultimi workout\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine minima\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analisi\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"discesa\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra filtri\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"note\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna nota\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout precedente\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prossimo workout\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout.\"])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. media\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pause\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Salita più alta\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segmento\"]), _normalize([\"segmenti\"])])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durata più lunga\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partenza asse elevazione a 0\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata totale\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. massima\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"caratteri rimanenti\"])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titolo\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica file!\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inizio e fine\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a\"])},\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([\"data workout\"])}\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 \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacteer uw administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is zelf-gehoste buitenshuis activiteiten tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Onder \", _interpolate(_list(0)), \" licentie \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Broncode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actie\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activeer account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instellingen\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email voor contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal bestanden in zip archief\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bij 0, geen limiet op registratie.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal actieve gebruikers\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van bestanden voor upload (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie configureren\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van zip archief (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar beheer\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u de account \", _interpolate(_list(0)), \" wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u het wachtwoord voor \", _interpolate(_list(0)), \" wilt resetten?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidige email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder gebruiker\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emails verzenden is uitgeschakeld.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aan- of uitzetten van sporten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het wachtwoord werd gereset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel uitgeschakeld.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel ingeschakeld.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset wachtwoord\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingen aanwezig\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer sporten\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte).\"])},\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([\"gebruiker\"]), _normalize([\"gebruikers\"])])},\n \"USERS\": {\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([\"Registratie datum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersnaam\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aantal trainingen\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin rechten toevoegen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder admin rechten\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het emailadres werd bijgewerkt.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netwerk fout.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: een geldige email is vereist.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het verwerken van het gpx bestand.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij verwerken van gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij ophalen van configuratie.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het updaten van de configuratie\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, probeer opnieuw of contacteer de administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, registratie is uitgeschakeld.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsformaat niet toegelaten.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsgrootte is groter dan toegestaan.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige inloggegevens.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingegeven data is ongeldig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het nieuwe email adres dient te verschillen van het oude\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand geselecteerd.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signatuur verlopen. Log opnieuw in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, deze gebruikersnaam is al in gebruik.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze sport bestaat niet.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Succesvol geregistreerd.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het aantal bestanden in het zip archief overschrijdt de limiet.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruiker bestaat niet.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een geldige email is vereist voor admin contact informatie\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U hebt geen machtigingen.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgende\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vorige\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Herzend bevestigings email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toekennen\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuleren\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder mijn account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitzetten\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bewerken\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanzetten\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nee\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreer\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanpassen\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"over\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bevestiging\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacteer\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"dag\"]), _normalize([\"dagen\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergegeven\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentatie\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verborgen\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startscherm\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oplopend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aflopend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer op\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totaal\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze maand\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er heeft zich een onbekende fout voorgedaan.
Probeer aub later opnieuw of contacteer de administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina niet gevonden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training niet gevonden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er ging iets mis\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe OAuth2 app toevoegen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheim\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App omschrijving\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Probleem bij\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Naam van de app\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doorverwijs URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Omvang\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geeft toestemming tot aanpassen van de applicatie instellingen.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 apps\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze app wilt verwijderen?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"De app \", _interpolate(_list(0)), \" vraagt:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Toegang geven aan \", _interpolate(_list(0)), \" tot uw gebruikersaccount?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kopieer naar klembord\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder app\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg een app toe\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App niet gevonden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen apps\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen beschrijving\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder alle tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u alle tokens wilt intrekken?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle bestaande tokens werden ingetrokken.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Virtueel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trektocht\"])}\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 \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergbeklimmen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roeien\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lopen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sneeuwschoenen\"])}\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([\"Wandelen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistieken\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maand\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jaar\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen instructies ontvangen?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Al een account aangemaakt?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidig wachtwoord\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig email adres op.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een paswoord in\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter op gebruikersnaam\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg wachtwoord\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldig token, vraag een nieuwe wachtwoord reset aan.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitloggen\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inloggen\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuw wachtwoord\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen gebruikers gevonden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord vergeten?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tenminste 8 karakters vereist.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddeld\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"goed\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wachtwoord sterkte\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sterk\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik enkele hoofdletters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg meer niet gangbare woorden toe.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd jaartallen met een persoonlijke betekenis.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik niet enkel voor de eerste letter een hoofdletter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd persoonlijke gegevens en jaartallen.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare vervangingen, zoals \", \"@\", \" voor de letter a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik langere patronen en verander de richting van typen meerdere malen.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd recente jaartallen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd opeenvolgende woorden en karakters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd gangbare woorden die achterstevoren geschreven zijn.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare opeenvolgingen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zwak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Uw wachtwoord werd aangepast. Klik \", _interpolate(_list(0)), \" om in te loggen.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aanpassen\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogte gerelateerde data (opnames, totaal)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar profiel\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geboortedatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergaveformaat datum\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren wijzigen\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren wijzigen\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Gelieve \", _interpolate(_list(0)), \" om uw email adres opnieuw te wijzigen of contacteer uw administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eerste dag van de week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voornaam\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Achternaam\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Locatie\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maandag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding aanpassen\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding verwijderen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding veranderen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren aanpassen\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum registratie\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actie\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"uitgeschakeld door admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actief\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheidsgrens voor stilstand\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren aanpassen\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol aangemaakt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zondag\"])},\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([\"afbeelding\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voorkeuren\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profiel\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sporten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tijdzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperialistisch systeem (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eenheid voor afstand\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisch systeem (m, km)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registreren is uitgeschakeld.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opnieuw zenden van account bevestigingsmail\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset uw wachtwoord\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon wachtwoord\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze account is niet actief.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruikersnaam\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter \\\"_\\\" zijn toegestaan.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersafbeelding\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training toevoegen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geklommen\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddelde snelheid\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gem. snelheid\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedaald\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afstand\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duur\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training aanpassen\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hoogte\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"einde\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"van\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx bestand\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg filters\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De afstand moet groter zijn dan 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De duur moet langer zijn dan 0 seconden\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laatste trainingen\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toon meer trainingen\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. hoogte\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. aantal bestanden\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. grootte\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. snelheid\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. hoogte\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volgende training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notities\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data vanuit gpx, zonder op te schonen\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen map aanwezig\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen kaart\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgende training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen notities\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorig segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorige training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen trainingen.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauzes\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorig segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorige training\"])},\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([\"Gem. snelheid\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste afstand\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogst geklommen\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste duur\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. snelheid\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"resterende karakters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segmenten\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheid\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sporten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start en aankomst\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zet hoogte-as vast op 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aan\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"totale duur\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eén uploaden!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere dag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bewolkt\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mist\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte dag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"natte sneeuw\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sneeuw\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vochtigheid\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatuur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OZO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Z\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WZW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zonder .gpx bestand\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"met .gpx bestand\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"training\"]), _normalize([\"trainingen\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum training\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze training wilt verwijderen?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip bestand\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"of .zip archief met .gpx bestanden\"])}\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-ab6e62ae\"),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=ab6e62ae&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-ab6e62ae\"]])\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-9590c0e6\"),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=9590c0e6&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-9590c0e6\"]])\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 \"./Mountaineering.vue?vue&type=template&id=15731a2a\"\nimport script from \"./Mountaineering.vue?vue&type=script&lang=js\"\nexport * from \"./Mountaineering.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 Mountaineering from '@/components/Common/Images/SportImage/Mountaineering.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) === 'Mountaineering')\n ? (_openBlock(), _createBlock(Mountaineering, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 12 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 13 }))\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 it: '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, it, nl } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n it: it,\n // nb: nb, // disabled for now\n nl: nl,\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n it: 'Italiano',\n // nb: 'Norsk bokmål', // disabled for now\n nl: 'Nederlands',\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 Mountaineering: '#48b3b7',\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 zxcvbnItPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-it'\n )\n const zxcvbnLangPackages: Record = {\n de: zxcvbnDePackage,\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n it: zxcvbnItPackage,\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\"./it/it.ts\": 4334,\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\":\"433bb75d\",\"93\":\"7582eaa7\",\"193\":\"31ee4368\",\"243\":\"e034bc01\",\"328\":\"443044dd\",\"401\":\"ac9db1a8\",\"431\":\"6f0a9946\",\"633\":\"3c9401e6\",\"845\":\"d9355913\",\"858\":\"5db37332\",\"881\":\"216e8bea\"}[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 = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, 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\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\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, null, 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__(5326); })\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","Mountaineering","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","it","nl","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","zxcvbnItPackage","zxcvbnLangPackages","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","oldTag","linkTag","onLinkComplete","errorType","realHref","err","insertBefore","nextSibling","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.f6f0ca0c.js b/fittrackee/dist/static/js/app.f6f0ca0c.js deleted file mode 100644 index 67448f32..00000000 --- a/fittrackee/dist/static/js/app.f6f0ca0c.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),i=n(5801),s=n(2024);const l=r.Z.create({baseURL:(0,s.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[i.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=["it","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:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},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_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},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"])},USERS:{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"])}}},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"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},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 file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"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."])},"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."])},"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."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut 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."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"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."])},"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"])}}},i={"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"])}},s={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:{ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])},LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},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={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"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])}},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"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff 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"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},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:"])},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:{month:e=>{const{normalize:t}=e;return t(["Monat"])},week:e=>{const{normalize:t}=e;return t(["Woche"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},E={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"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},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_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},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:{AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},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."])},l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},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."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])}},WEAK:e=>{const{normalize:t}=e;return t(["schwach"])}},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_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},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_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},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"])},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"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},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."])},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"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["E-Mail zur Kontobestätigung erneut senden"])},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."])},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."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])}},_={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"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},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"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["Die Distanz muss größer als 0 sein"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["Die Dauer muss größer als 0 Sekunden sein"])},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"])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},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."])},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:{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"])}},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:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .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:i,common:s,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:E,workouts:_}},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:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},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_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},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"])])},USERS:{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"])}}},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"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Network 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 file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"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."])},"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."])},"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."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"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."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"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."])},"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:{NEXT:e=>{const{normalize:t}=e;return t(["next"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])}}},i={"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"])}},s={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:{ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])},LABEL:e=>{const{normalize:t}=e;return t(["sort"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},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={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"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])}},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"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},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:"])},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)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Mountaineering"])}},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:{month:e=>{const{normalize:t}=e;return t(["month"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},E={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"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},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_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},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:{AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},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."])},l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},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."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])}},WEAK:e=>{const{normalize:t}=e;return t(["weak"])}},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_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},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_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update 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"])},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"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},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."])},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"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},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."])},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.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])}},_={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"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. 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"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},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."])},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:{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"])}},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:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .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:i,common:s,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:E,workouts:_}},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:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},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_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},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"])])},USERS:{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"])}}},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"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},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 file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"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."])},"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"])},"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é."])},"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."])},"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é."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"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:{NEXT:e=>{const{normalize:t}=e;return t(["suivant"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])}}},i={"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"])}},s={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:{ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])},LABEL:e=>{const{normalize:t}=e;return t(["tri"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},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={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"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])}},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"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},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 :"])},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)"])}},Mountaineering:{LABEL:e=>{const{normalize:t}=e;return t(["Alpinisme"])}},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:{month:e=>{const{normalize:t}=e;return t(["mois"])},week:e=>{const{normalize:t}=e;return t(["semaine"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},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"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},LOG_IN:e=>{const{normalize:t}=e;return t(["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_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},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:{AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},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)."])},l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},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."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])}},WEAK:e=>{const{normalize:t}=e;return t(["faible"])}},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_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},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"])},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"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},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."])},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"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}}},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."])},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."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])}},_={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"])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},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."])},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:{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"])}},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:{E:e=>{const{normalize:t}=e;return t(["E"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un 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:i,common:s,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:E,workouts:_}},4334:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},i={},s={},l={},c={},u={},d={},m={},E={},_={},S={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:E,workouts:_}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},i={},s={},l={},c={},u={},d={},m={},E={},_={},S={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:E,workouts:_}},701: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(["Contacteer uw administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is zelf-gehoste buitenshuis activiteiten tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Onder ",n(r(0))," licentie "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Broncode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Actie"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activeer account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Instellingen"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount."])},APPLICATION:e=>{const{normalize:t}=e;return t(["Applicatie"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email voor contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal bestanden in zip archief"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Bij 0, geen limiet op registratie."])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. aantal actieve gebruikers"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["geen contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van bestanden voor upload (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Applicatie configureren"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. grootte van zip archief (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Terug naar beheer"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u de account ",n(r(0))," wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Weet u zeker dat u het wachtwoord voor ",n(r(0))," wilt resetten?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Huidige email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Verwijder gebruiker"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Emails verzenden is uitgeschakeld."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aan- of uitzetten van sporten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nieuwe email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het wachtwoord werd gereset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel uitgeschakeld."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registratie is momenteel ingeschakeld."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset wachtwoord"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Ingeschakeld"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainingen aanwezig"])},IMAGE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Beheer sporten"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["gebruiker"]),t(["gebruikers"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registratie datum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["gebruikersnaam"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["aantal trainingen"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Admin rechten toevoegen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Verwijder admin rechten"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Het emailadres werd bijgewerkt."])}},o={ERROR:{"Network Error":e=>{const{normalize:t}=e;return t(["Netwerk fout."])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: een geldige email is vereist."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fout bij het verwerken van het gpx bestand."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fout bij verwerken van gpx."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fout bij ophalen van configuratie."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fout bij het updaten van de configuratie"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fout, probeer opnieuw of contacteer de administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fout, registratie is uitgeschakeld."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Bestandsformaat niet toegelaten."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Bestandsgrootte is groter dan toegestaan."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ongeldige inloggegevens."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Ingegeven data is ongeldig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ongeldige token, log opnieuw in."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Het nieuwe email adres dient te verschillen van het oude"])},"no file part":e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven."])},"no selected file":e=>{const{normalize:t}=e;return t(["Geen bestand geselecteerd."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Wachtwoord: het wachtwoord en de bevestiging komen niet overeen."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Geef een geldig auth token."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signatuur verlopen. Log opnieuw in."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, deze gebruikersnaam is al in gebruik."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Deze sport bestaat niet."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Succesvol geregistreerd."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Het aantal bestanden in het zip archief overschrijdt de limiet."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Gebruiker bestaat niet."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Een geldige email is vereist voor admin contact informatie"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["U hebt geen machtigingen."])}},PAGINATION:{NEXT:e=>{const{normalize:t}=e;return t(["volgende"])},PREVIOUS:e=>{const{normalize:t}=e;return t(["vorige"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Herzend bevestigings email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Toekennen"])},BACK:e=>{const{normalize:t}=e;return t(["Terug"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuleren"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Verwijder filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Verwijder mijn account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Uitzetten"])},EDIT:e=>{const{normalize:t}=e;return t(["Bewerken"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aanzetten"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},NO:e=>{const{normalize:t}=e;return t(["Nee"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registreer"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Aanpassen"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},s={ABOUT:e=>{const{normalize:t}=e;return t(["over"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bevestiging"])},CONTACT:e=>{const{normalize:t}=e;return t(["contacteer"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["dag"]),t(["dagen"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Weergegeven"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentatie"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Verborgen"])},HOME:e=>{const{normalize:t}=e;return t(["Startscherm"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:t}=e;return t(["oplopend"])},DESC:e=>{const{normalize:t}=e;return t(["aflopend"])},LABEL:e=>{const{normalize:t}=e;return t(["sorteer"])}},ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sorteer op"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["per pagina"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Totaal"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Deze maand"])}},c={APP_ERROR:e=>{const{normalize:t}=e;return t(["Er heeft zich een onbekende fout voorgedaan.
Probeer aub later opnieuw of contacteer de administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Pagina niet gevonden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training niet gevonden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Er ging iets mis"])},UNKNOWN:e=>{const{normalize:t}=e;return t(["Fout. Probeer opnieuw of contacteer de administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Nieuwe OAuth2 app toevoegen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheim"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["App omschrijving"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Probleem bij"])},NAME:e=>{const{normalize:t}=e;return t(["Naam van de app"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Doorverwijs URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Omvang"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["geeft toestemming tot aanpassen van de applicatie instellingen."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat leestoegang toe aan workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["staat schrijftoegang toe aan workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["App URL"])}},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 apps"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze app wilt verwijderen?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["De app ",n(r(0))," vraagt:"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Toegang geven aan ",n(r(0))," tot uw gebruikersaccount?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["kopieer naar klembord"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Verwijder app"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Voeg een app toe"])},NO_APP:e=>{const{normalize:t}=e;return t(["App niet gevonden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["geen apps"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["geen beschrijving"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Verwijder alle tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u alle tokens wilt intrekken?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle bestaande tokens werden ingetrokken."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Fietsen (Virtueel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Trektocht"])}},"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(["Roeien"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Lopen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiën (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Sneeuwschoenen"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandelen"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistieken"])},TIME_FRAMES:{month:e=>{const{normalize:t}=e;return t(["maand"])},week:e=>{const{normalize:t}=e;return t(["week"])},year:e=>{const{normalize:t}=e;return t(["jaar"])}}},E={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Geen instructies ontvangen?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres."])},ADMIN:e=>{const{normalize:t}=e;return t(["Beheer"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Al een account aangemaakt?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Huidig wachtwoord"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Geef een geldig email adres op."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Geef een paswoord in"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter op gebruikersnaam"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["verberg wachtwoord"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ongeldig token, vraag een nieuwe wachtwoord reset aan."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LOGIN:e=>{const{normalize:t}=e;return t(["Inloggen"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Uitloggen"])},LOG_IN:e=>{const{normalize:t}=e;return t(["inloggen"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nieuw wachtwoord"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Geen gebruikers gevonden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Wachtwoord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Wachtwoord vergeten?"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Tenminste 8 karakters vereist."])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Wachtwoord reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:t}=e;return t(["gemiddeld"])},GOOD:e=>{const{normalize:t}=e;return t(["goed"])},LABEL:e=>{const{normalize:t}=e;return t(["wachtwoord sterkte"])},STRONG:e=>{const{normalize:t}=e;return t(["sterk"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:t}=e;return t(["Gebruik enkele hoofdletters."])},anotherWord:e=>{const{normalize:t}=e;return t(["Voeg meer niet gangbare woorden toe."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermijd jaartallen met een persoonlijke betekenis."])},capitalization:e=>{const{normalize:t}=e;return t(["Gebruik niet enkel voor de eerste letter een hoofdletter."])},dates:e=>{const{normalize:t}=e;return t(["Vermijd persoonlijke gegevens en jaartallen."])},l33t:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare vervangingen, zoals ","@"," voor de letter a."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Gebruik langere patronen en verander de richting van typen meerdere malen."])},noNeed:e=>{const{normalize:t}=e;return t(["U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters."])},pwned:e=>{const{normalize:t}=e;return t(["Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermijd recente jaartallen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermijd opeenvolgende woorden en karakters."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermijd gangbare woorden die achterstevoren geschreven zijn."])},sequences:e=>{const{normalize:t}=e;return t(["Vermijd voorspelbare opeenvolgingen."])},useWords:e=>{const{normalize:t}=e;return t(["Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen."])}},WEAK:e=>{const{normalize:t}=e;return t(["zwak"])}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Uw wachtwoord werd aangepast. Klik ",n(r(0))," om in te loggen."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account aanpassen"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Hoogte gerelateerde data (opnames, totaal)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Terug naar profiel"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geboortedatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Weergaveformaat datum"])},EDIT:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Voorkeuren wijzigen"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Sport voorkeuren wijzigen"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Gelieve ",n(r(0))," om uw email adres opnieuw te wijzigen of contacteer uw administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Eerste dag van de week"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Voornaam"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Taal"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Achternaam"])},LOCATION:e=>{const{normalize:t}=e;return t(["Locatie"])},MONDAY:e=>{const{normalize:t}=e;return t(["Maandag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Afbeelding"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Afbeelding aanpassen"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Afbeelding verwijderen"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Afbeelding veranderen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Voorkeuren aanpassen"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profiel aanpassen"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Datum registratie"])},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["actie"])},COLOR:e=>{const{normalize:t}=e;return t(["kleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["uitgeschakeld door admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actief"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["snelheidsgrens voor stilstand"])}},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sport voorkeuren aanpassen"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol aangemaakt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Uw account werd succesvol bijgewerkt."])},SUNDAY:e=>{const{normalize:t}=e;return t(["Zondag"])},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(["afbeelding"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["voorkeuren"])},PROFILE:e=>{const{normalize:t}=e;return t(["profiel"])},SPORTS:e=>{const{normalize:t}=e;return t(["sporten"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Tijdzone"])},UNITS:{IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperialistisch systeem (ft, mi)"])},LABEL:e=>{const{normalize:t}=e;return t(["Eenheid voor afstand"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisch systeem (m, km)"])}}},REGISTER:e=>{const{normalize:t}=e;return t(["Registreren"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registreren is uitgeschakeld."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Opnieuw zenden van account bevestigingsmail"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset uw wachtwoord"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["toon wachtwoord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Deze account is niet actief."])},USERNAME:e=>{const{normalize:t}=e;return t(["Gebruikersnaam"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter "_" zijn toegestaan.'])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["gebruikersafbeelding"])}},_={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training toevoegen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["geklommen"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["gemiddelde snelheid"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["gem. snelheid"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["Terug naar training"])},DATE:e=>{const{normalize:t}=e;return t(["datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["gedaald"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["toon filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["afstand"])},DURATION:e=>{const{normalize:t}=e;return t(["duur"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training aanpassen"])},ELEVATION:e=>{const{normalize:t}=e;return t(["hoogte"])},END:e=>{const{normalize:t}=e;return t(["einde"])},FROM:e=>{const{normalize:t}=e;return t(["van"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx bestand"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberg filters"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["De afstand moet groter zijn dan 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["De duur moet langer zijn dan 0 seconden"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Laatste trainingen"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Toon meer trainingen"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. hoogte"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max. aantal bestanden"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max. grootte"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. snelheid"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. hoogte"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Volgende training"])},NOTES:e=>{const{normalize:t}=e;return t(["notities"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data vanuit gpx, zonder op te schonen"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Geen bestand opgegeven"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["geen map aanwezig"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Geen kaart"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen volgend segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen volgende training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Geen notities"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Geen vorig segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Geen vorige training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Geen records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Geen trainingen."])},PAUSES:e=>{const{normalize:t}=e;return t(["pauzes"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorig segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorige training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Gem. snelheid"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Langste afstand"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Hoogst geklommen"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Langste duur"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. snelheid"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["resterende karakters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segmenten"])])},SPEED:e=>{const{normalize:t}=e;return t(["snelheid"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sporten"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start en aankomst"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Zet hoogte-as vast op 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titel"])},TO:e=>{const{normalize:t}=e;return t(["aan"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["totale duur"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Eén uploaden!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["heldere dag"])},"clear-night":e=>{const{normalize:t}=e;return t(["heldere nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["bewolkt"])},fog:e=>{const{normalize:t}=e;return t(["mist"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte dag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["gedeeltelijk bewolkte nacht"])},rain:e=>{const{normalize:t}=e;return t(["regen"])},sleet:e=>{const{normalize:t}=e;return t(["natte sneeuw"])},snow:e=>{const{normalize:t}=e;return t(["sneeuw"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}},HUMIDITY:e=>{const{normalize:t}=e;return t(["vochtigheid"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperatuur"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:t}=e;return t(["O"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},ESE:e=>{const{normalize:t}=e;return t(["OZO"])},N:e=>{const{normalize:t}=e;return t(["N"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},S:e=>{const{normalize:t}=e;return t(["Z"])},SE:e=>{const{normalize:t}=e;return t(["ZO"])},SSE:e=>{const{normalize:t}=e;return t(["ZZO"])},SSW:e=>{const{normalize:t}=e;return t(["ZZW"])},SW:e=>{const{normalize:t}=e;return t(["ZW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},WSW:e=>{const{normalize:t}=e;return t(["WZW"])}}},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["zonder .gpx bestand"])},WITH_GPX:e=>{const{normalize:t}=e;return t(["met .gpx bestand"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["training"]),t(["trainingen"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["datum training"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Weet u zeker dat u deze training wilt verwijderen?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip bestand"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["of .zip archief met .gpx bestanden"])}},S={about:r,admin:a,api:o,buttons:i,common:s,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:E,workouts:_}},5326:function(e,t,n){"use strict";var r=n(3148),a=n(7028),o=n(9963),i=n(2343),s=n(5205);(0,s.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"},E={class:"footer-items"},_={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"],g=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),R={class:"footer-item"},U={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var z=(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",E,[(0,l._)("div",_,[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),g,(0,l._)("div",R,[(0,l._)("a",U,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),N=n(3744);const h=(0,N.Z)(z,[["__scopeId","data-v-2c73279e"]]);var w=h,v=(n(7658),n(6595)),C=n(5801),f=n(9917),D=n(6287);const k=e=>((0,l.dD)("data-v-ab6e62ae"),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"},B={class:"nav-item nav-profile-img"},Y={key:1,class:"nav-items-group"},x=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,f.o)(),r=(0,l.Fl)((()=>n.getters[C.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[C.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[C.SY.GETTERS.LANGUAGE])),i=(0,c.iH)(!1);function s(){i.value=!0,t("menuInteraction",!0)}function d(){i.value=!1,t("menuInteraction",!1)}function m(e){n.dispatch(C.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function E(){n.dispatch(C.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),_=(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":i.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>s())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":i.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!i.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",B,[(0,l.Wm)(v.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:E},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",Y,[(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)(_,{key:2,class:"nav-item",options:(0,c.SU)(D.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[x])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,N.Z)($,[["__scopeId","data-v-ab6e62ae"]]);var H=Z,V=n(7167);const q={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",q,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(V.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,N.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"},ie=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),se=[ie];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,f.o)(),n=(0,l.Fl)((()=>t.getters[C.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[C.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function i(e){a.value=e}function s(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&s(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function E(){let e="en";try{const t=navigator.language.split("-")[0];t in D.v1&&(e=t)}catch(n){e="en"}t.dispatch(C.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{E(),t.dispatch(C.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>d())),(e,t)=>{const s=(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:i}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(s)])])):((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},se,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),Ee=n(2894);const _e={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",_e,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,Se)]))}});const pe=(0,N.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Ie={class:"custom-textarea"},ge=["id","name","maxLenght","disabled"],Re={class:"remaining-chars"};var Ue=(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,ge),[[o.nr,r.value]]),(0,l._)("div",Re,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const ze=(0,N.Z)(Ue,[["__scopeId","data-v-8cf5cc64"]]);var Ne=ze,he=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:i,unitFrom:s,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?he.Dl[s.value].defaultTarget:s.value)),E=(0,l.Fl)((()=>d.value?(0,he.sC)(a.value,s.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)(i)}])},(0,u.zw)((0,c.SU)(E)),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)(i)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const ve=(0,N.Z)(we,[["__scopeId","data-v-f46ff1d6"]]);var Ce=ve,fe=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,fe.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function i(){a.value=!a.value}function s(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:i},[(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=>s(t)},(0,u.zw)(t.label),11,Pe)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,N.Z)(Le,[["__scopeId","data-v-9590c0e6"]]);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,N.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Be=Ke;const Ye={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"},xe=(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=[xe,$e];function He(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Ye,Ze)}var Ve={name:"CyclingSport"};const qe=(0,N.Z)(Ve,[["render",He]]);var je=qe;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,N.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"},it=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),st=[it];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,st)}var ct={name:"CyclingVirtual"};const ut=(0,N.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"},Et=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),_t=(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=[Et,_t];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,N.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"},gt=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Rt=(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),Ut=[gt,Rt];function zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",It,Ut)}var Nt={name:"MountainBiking"};const ht=(0,N.Z)(Nt,[["render",zt]]);var wt=ht;const vt={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"},Ct=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),ft=[Ct];function Dt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vt,ft)}var kt={name:"MountainBikingElectric"};const Pt=(0,N.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 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},bt=(0,l.uE)(' silhouette of a person doing mountaineering ',2),yt=[bt];function Gt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,yt)}var Ft={name:"Mountaineering"};const Wt=(0,N.Z)(Ft,[["render",Gt]]);var Kt=Wt;const Bt={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"},Yt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),xt=(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),$t=[Yt,xt];function Zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Bt,$t)}var Ht={name:"Rowing"};const Vt=(0,N.Z)(Ht,[["render",Zt]]);var qt=Vt;const jt={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"},Xt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Jt=(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),Qt=[Xt,Jt];function en(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",jt,Qt)}var tn={name:"Running"};const nn=(0,N.Z)(tn,[["render",en]]);var rn=nn;const an={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"},on=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),sn=(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),ln=[on,sn];function cn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",an,ln)}var un={name:"SkiingAlpine"};const dn=(0,N.Z)(un,[["render",cn]]);var mn=dn;const En={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"},_n=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),Sn=(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),Tn=[_n,Sn];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"SkiingCrossCountry"};const On=(0,N.Z)(An,[["render",pn]]);var In=On;const gn={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"},Rn=(0,l.uE)('silhouette of a person with snowshoes',6),Un=[Rn];function zn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",gn,Un)}var Nn={name:"Snowshoes"};const hn=(0,N.Z)(Nn,[["render",zn]]);var wn=hn;const vn={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"},Cn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),fn=(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),Dn=[Cn,fn];function kn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vn,Dn)}var Pn={name:"Trail"};const Ln=(0,N.Z)(Pn,[["render",kn]]);var Mn=Ln;const bn={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"},yn=(0,l.uE)('silhouette of a walking person',3),Gn=[yn];function Fn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",bn,Gn)}var Wn={name:"Walking"};const Kn=(0,N.Z)(Wn,[["render",Fn]]);var Bn=Kn;const Yn=["title"];var xn=(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),"Mountaineering"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Kt,{key:6})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(qt,{key:7})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(rn,{key:8})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(mn,{key:9})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(In,{key:10})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(wn,{key:11})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Bn,{key:13})):(0,l.kq)("",!0)],12,Yn))}});const $n=xn;var Zn=$n;const Hn={class:"loader"};function Vn(e,t){return(0,l.wg)(),(0,l.iD)("div",Hn)}const qn={},jn=(0,N.Z)(qn,[["render",Vn],["__scopeId","data-v-4c9921ee"]]);var Xn=jn;const Jn={id:"modal"},Qn={class:"custom-modal"},er={key:0,class:"modal-message"},tr={key:1,class:"modal-message"},nr={class:"modal-buttons"};var rr=(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,f.o)(),{title:a,message:o,strongMessage:i}=(0,c.BK)(n),s=(0,l.Fl)((()=>r.getters[C.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(C.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",Jn,[(0,l._)("div",Qn,[(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)(i)?((0,l.wg)(),(0,l.iD)("div",er,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(i)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",tr,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(s)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(s)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",nr,[(0,c.SU)(s)?(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)(s)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const ar=(0,N.Z)(rr,[["__scopeId","data-v-e8fcfaba"]]);var or=ar;const ir=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:Ne,name:"CustomTextArea"},{target:Ce,name:"Distance"},{target:be,name:"Dropdown"},{target:Be,name:"ErrorMessage"},{target:Xn,name:"Loader"},{target:or,name:"Modal"},{target:Zn,name:"SportImage"}],sr={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 lr=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 cr=(0,o.ri)(ue).provide("sportColors",lr.Zo).use(de.Z).use(Ee.Z).use(me.Z).use(i.ZP,{name:"VFullscreen"}).directive("click-outside",sr);ir.forEach((e=>{cr.component(e.name,e.target)})),cr.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),i=n(9963),s=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"},E=["onSubmit"],_={for:"admin_contact"},S=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},I={class:"info-box"},g=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R={for:"max_single_file_size"},U=["disabled"],z={for:"max_zip_file_size"},N=["disabled"],h={for:"gpx_limit_import"},w=["disabled"],v={key:1,class:"form-buttons"},C={class:"confirm",type:"submit"},f=["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,s.BK)(t),d=(0,c.o)(),k=(0,r.tv)(),P=(0,s.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,i.iM)(y,["prevent"])},[(0,a._)("label",_,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,s.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,s.SU)(n)},null,8,T)),[[i.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,s.SU)(n)},null,8,A),[[i.nr,P.max_users]])]),(0,a._)("div",O,[(0,a._)("span",I,[g,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",R,[(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,s.SU)(n)},null,8,U),[[i.nr,P.max_single_file_size]])]),(0,a._)("label",z,[(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,s.SU)(n)},null,8,N),[[i.nr,P.max_zip_file_size]])]),(0,a._)("label",h,[(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,s.SU)(n)},null,8,w),[[i.nr,P.gpx_limit_import]])]),(0,s.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,s.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(n)?((0,a.wg)(),(0,a.iD)("div",v,[(0,a._)("button",C,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,i.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,f)])):((0,a.wg)(),(0,a.iD)("div",D,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,i.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,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,E)])),_: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 B=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:i}=(0,s.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,s.SU)(n)}`])},null,2)]),(0,a._)("div",F,[(0,a._)("div",W,(0,o.zw)((0,s.SU)(i)),1),(0,a._)("div",K,(0,o.zw)((0,s.SU)(r)),1)])])]))}});const Y=B;var x=Y;const $={id:"user-stats"};var Z=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,s.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)(x,{icon:"users",value:(0,s.SU)(n).users,text:e.$t("admin.USER",(0,s.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"tags",value:(0,s.SU)(n).sports,text:e.$t("workouts.SPORT",(0,s.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"folder-open",value:(0,s.SU)(r).size,text:(0,s.SU)(r).suffix},null,8,["value","text"])]))}});const H=Z;var V=H,q=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,s.BK)(t);return(e,t)=>{const i=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(q.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(V,{appStatistics:(0,s.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(i,{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,s.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,s.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)(i,{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)(i,{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 ie=oe,se=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))),Ee={class:"text-left"},_e={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"},ge={class:"text-center"},Re={class:"cell-heading"},Ue={class:"sport-action"},ze={class:"cell-heading"},Ne={class:"action-button"},he=["onClick"],we={key:0,class:"has-workouts"},ve=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var Ce=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,se.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,i.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",Ee,(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",_e,(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,s.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",ge,[(0,a._)("span",Re,(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",Ue,[(0,a._)("span",ze,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",Ne,[(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,he),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",we,[ve,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const fe=(0,P.Z)(Ce,[["__scopeId","data-v-6d62af67"]]);var De=fe,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,s.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,i.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,ye),[[i.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),Be=n(6558);const Ye=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),xe={id:"admin-users",class:"admin-card"},$e={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},He=Ye((()=>(0,a._)("th",null,"#",-1))),Ve={class:"left-text"},qe={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"},it={class:"cell-heading"},st={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 E=(0,s.qj)((0,Ke.pm)(n.query,d,m));const _=(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){g("q",e.value)}function I(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function g(e,t){E[e]=t,"per_page"===e&&(E.page=1),u.push({path:"/admin/users",query:E})}return(0,a.wF)((()=>A(E))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{E=(0,Ke.pm)(e,d,m,{query:E}),A(E)})),(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",xe,[(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,i.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,s.SU)(Ke.fS),order_by:d,query:(0,s.SU)(E),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:g},null,8,["sort","query"]),0===(0,s.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",Ve,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",qe,(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,s.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,s.SU)(Be.p6)(t.created_at,(0,s.SU)(_).timezone,(0,s.SU)(_).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",it,(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",st,[(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,s.SU)(_).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,s.SU)(T).page?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:0,path:"/admin/users",pagination:(0,s.SU)(T),query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,s.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,i.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,Et=n(2179);const _t={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:i}=(0,s.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",_t,[(0,a._)("div",St,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.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,s.SU)(r).split("/")[0]===t,disabled:(0,s.SU)(i),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"},gt={class:"box"};var Rt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,s.BK)(t),o=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,t)=>{const i=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",It,[(0,a.Wm)(Et.Z,{user:(0,s.SU)(n)},null,8,["user"]),(0,a._)("div",gt,[(0,a.Wm)(Ot,{tabs:o,selectedTab:(0,s.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(i,{user:(0,s.SU)(n)},null,8,["user"])])])}}});const Ut=(0,P.Z)(Rt,[["__scopeId","data-v-9729cba4"]]);var zt=Ut,Nt=n(1585),ht=n(6287);const wt={id:"user-preferences",class:"description-list"},vt={class:"profile-buttons"};var Ct=(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])),i=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.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")),E=(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,s.SU)(i)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,s.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,s.SU)(Be.mh)((0,s.SU)(m),(0,s.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,s.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,s.SU)(E)}`)),1)]),(0,a._)("div",vt,[(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 ft=Ct;var Dt=ft;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:i}=(0,s.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,s.SU)(i)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ot,{tabs:u,selectedTab:(0,s.SU)(i),edition:!0,disabled:(0,s.SU)(d)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,s.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"},Bt=["disabled"],Yt={class:"form-items",for:"password-field"},xt={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,s.BK)(t),r=(0,c.o)(),u=(0,s.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])),E=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),_=(0,s.iH)(!1),S=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,s.iH)(!1),p=(0,s.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function I(e){u.password=e}function g(e){u.new_password=e}function R(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),_.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function U(e){p.value=e}function z(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)((()=>E.value),(async e=>{e&&(I(""),g(""),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=>z((0,s.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>U(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,s.SU)(S)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${_.value&&(0,s.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,i.iM)(R,["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,s.SU)(d),required:!0,onInvalid:A},null,40,Bt),[[i.nr,u.email]])]),(0,a._)("label",Yt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,s.SU)(d),password:u.password,required:!0,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,s.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:g,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,i.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,i.iM)((e=>U(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const Vt=(0,P.Z)(Ht,[["__scopeId","data-v-37b8c4c8"]]);var qt=Vt,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 En=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,s.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,Be.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(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){r.bio=e}function S(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&E(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,s.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.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,s.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,s.SU)(d)},null,8,rn),[[i.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),[[i.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,s.SU)(d)},null,8,sn),[[i.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,s.SU)(d)},null,8,cn),[[i.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,s.SU)(d),onUpdateValue:_},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,i.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const _n=(0,P.Z)(En,[["__scopeId","data-v-5e5a4552"]]);var Sn=_n;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"},gn={class:"info-box"},Rn=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),Un={class:"picture-buttons"},zn=["disabled"];var Nn=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),E=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",_=(0,s.iH)(null);function S(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(_.value=e.target.files[0])}function p(){_.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:_.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,s.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,i.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",gn,[Rn,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,s.SU)(E)),1)])]),(0,a._)("div",Un,[(0,a._)("button",{type:"submit",disabled:!_.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,zn),(0,s.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 hn=(0,P.Z)(Nn,[["__scopeId","data-v-687e9604"]]);var wn=hn;const vn=["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"],Cn={id:"tz-dropdown"},fn=["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,s.BK)(n),c=(0,s.iH)(n.input),u=(0,s.iH)(!1),d=(0,s.iH)(null),m=(0,s.iH)(0);function E(e){return e.toLowerCase().match(c.value.toLowerCase())}function _(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",Cn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,s.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,i.D2)((e=>S((0,s.SU)(r))),["esc"])),(0,i.D2)(T,["enter"])],onInput:p},null,40,fn),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,s.SU)(vn).filter((e=>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=>_(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"},Bn={class:"form-items"},Yn=["disabled"],xn=["value"],$n={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},Hn={class:"checkboxes"},Vn=["id","name","checked","disabled","onInput"],qn={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"},ir={class:"form-buttons"},sr={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,s.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}],E=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),_=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),S=(0,a.Fl)((()=>(0,Be.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 g(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,s.SU)(_)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,s.SU)(_)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,i.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,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(ht.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),[[i.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,s.SU)(E),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Bn,[(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,s.SU)(E)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(S),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,xn)))),128))],8,Yn),[[i.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,s.SU)(E),onInput:e=>g(t.value)},null,40,Vn),(0,a._)("span",qn,(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,s.SU)(E),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,s.SU)(E),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",ir,[(0,a._)("button",sr,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,i.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"],Er={id:"new-oauth2-app"},_r={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"},gr={for:"app-description"},Rr={class:"form-item"},Ur={for:"app-url"},zr={class:"form-item"},Nr={for:"app-redirect-uri"},hr={class:"form-item-scope"},wr={class:"form-item-scope-label"},vr={class:"scope-label"},Cr=["name","checked","onChange"],fr=["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,s.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,s.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(e){r.client_description=e}function _(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",Er,[(0,a._)("h1",_r,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",Sr,[(0,a._)("form",{onSubmit:(0,i.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),[[i.nr,r.client_name]])]),(0,a._)("div",Ir,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:E},null,8,["input"])]),(0,a._)("div",Rr,[(0,a._)("label",Ur,(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),[[i.nr,r.client_uri]])]),(0,a._)("div",zr,[(0,a._)("label",Nr,(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),[[i.nr,r.redirect_uri]])]),(0,a._)("div",hr,[(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,s.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",vr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>_(t)},null,40,Cr),(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,fr)])))),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,i.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"],Br={class:"authorize-oauth2-buttons"},Yr={key:1},xr={class:"no-app"};var $r=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),i=(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,s.SU)(i).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,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).name),1)])),_:1},8,["to"])])),_:1})]),(0,s.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,s.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,s.SU)(i).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",Br,[(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",Yr,[(0,a._)("p",xr,(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 Vr={id:"oauth2-apps"};var qr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,s.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",Vr,[(0,a.Wm)(n,{authUser:(0,s.SU)(r)},null,8,["authUser"])])}}});const jr=qr;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"},ia={class:"app-buttons"},sa={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)(),i=(0,c.o)(),{afterCreation:u,authUser:d}=(0,s.BK)(t),m=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.CLIENT])),E=(0,a.Fl)((()=>i.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),_=(0,s.iH)(!1),S=(0,s.iH)(null),T=(0,s.iH)(!1),p=(0,s.iH)(!1),A=(0,s.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&i.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",g(!0)}function g(e){_.value=e,e||(S.value=null)}function R(e){"oauth2.APP_DELETION_CONFIRMATION"===S.value?i.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):i.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function U(){navigator.clipboard.writeText(m.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function z(){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)((()=>{i.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),i.commit(l.Km.MUTATIONS.EMPTY_CLIENT),i.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>E.value),(e=>{e&&g(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[_.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=>R((0,s.SU)(m).id)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,s.SU)(m)&&(0,s.SU)(m).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,s.SU)(u)||(0,s.SU)(E)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,s.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,s.SU)(m).client_id)+" ",1),(0,s.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:U},null,10,ta)):(0,a.kq)("",!0)]),(0,s.SU)(u)&&(0,s.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,s.SU)(u)&&(0,s.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,s.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:z},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,s.SU)(Be.p6)((0,s.SU)(m).issued_at,(0,s.SU)(d).timezone,(0,s.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,s.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,s.SU)(m).client_description})},(0,o.zw)((0,s.SU)(m).client_description?(0,s.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,s.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,s.SU)(m).redirect_uris.length>0?(0,s.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,s.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",ia,[(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",sa,[(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"},Ea={class:"apps-list"},_a={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)(),i=(0,r.yj)(),{authUser:u}=(0,s.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=_(i.query);function _(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(E)})),(0,a.YP)((()=>i.query),(async e=>{E=_(e),S(E)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",ma,[(0,a._)("p",Ea,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,s.SU)(d).length>0?((0,a.wg)(),(0,a.iD)("ul",_a,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.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,s.SU)(Be.p6)(t.issued_at,(0,s.SU)(u).timezone,(0,s.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,s.SU)(d).length>0?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:2,pagination:(0,s.SU)(m),path:"/profile/apps",query:(0,s.SU)(E)},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 ga={id:"user-sport-preferences"},Ra={key:0,class:"responsive-table"},Ua={class:"mobile-display"},za={key:0,class:"profile-buttons mobile-display"},Na={key:1,class:"profile-buttons"},ha={class:"text-left"},wa={key:0},va={class:"cell-heading"},Ca=["value"],fa={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"],Ba={key:1,class:"edition-buttons"},Ya=["disabled"],xa=["disabled","onClick"],$a=["disabled"],Za={key:0,class:"profile-buttons"},Ha={key:1,class:"profile-buttons"};var Va=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,se.QT)(),{isEdition:u,user:d}=(0,s.BK)(t),m="#838383",E=(0,a.f3)("sportColors"),_=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),S=(0,a.Fl)((()=>(0,le.xH)(_.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,s.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?E[e.label]:m,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):z()}function I(e){return A.sport_id===e}function g(e){A.color=e.target.value}function R(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function U(e){A.is_active=e.target.checked}function z(){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 N(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function h(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||z()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",ga,[(0,s.SU)(_).length>0?((0,a.wg)(),(0,a.iD)("div",Ra,[(0,a._)("div",Ua,[(0,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",za,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,i.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",Na,[(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",ha,(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,s.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,s.SU)(S),(i=>((0,a.wg)(),(0,a.iD)("tr",{key:i.id},[(0,a._)("td",null,[(0,a._)("span",va,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),I(i.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:g},null,40,Ca)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:i.translatedLabel,"sport-label":i.label,color:i.color?i.color:(0,s.SU)(E)[i.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!i.is_active}])},[(0,a._)("span",fa,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(i.translatedLabel)+" ",1),i.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,s.SU)(T)&&I(i.id)?((0,a.wg)(),(0,a.iD)("i",ka)):(0,a.kq)("",!0),(0,s.SU)(p)&&A.sport_id===i.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,s.SU)(p)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.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,s.SU)(d).sports_list.includes(i.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),I(i.id)&&i.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:i.is_active_for_user,onChange:U},null,40,Ma)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(i.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,a._)("span",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),I(i.id)&&i.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:R},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(i.stopped_speed_threshold),1))],2),(0,s.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(i)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ka)):(0,a.kq)("",!0),I(i.id)?((0,a.wg)(),(0,a.iD)("div",Ba,[(0,a._)("button",{disabled:(0,s.SU)(T),onClick:N},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Ya),(0,a._)("button",{disabled:(0,s.SU)(T),onClick:e=>h(e,i.id)},(0,o.zw)(e.$t("buttons.RESET")),9,xa),(0,a._)("button",{disabled:(0,s.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,s.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,i.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 qa=(0,P.Z)(Va,[["__scopeId","data-v-74e52489"]]);var ja=qa,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))),io=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),so={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)((()=>[io])),_:1})]),(0,s.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",so,[lo,(0,a._)("a",{href:`mailto:${(0,s.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 Eo=mo;const _o={id:"bike"},So=["src"];function To(e,t){return(0,a.wg)(),(0,a.iD)("div",_o,[(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"},go={class:"container"},Ro={class:"container-sub"},Uo={class:"container-sub about-details"};var zo=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Io,[(0,a._)("div",go,[(0,a._)("div",Ro,[(0,a.Wm)(Oo)]),(0,a._)("div",Uo,[(0,a.Wm)(Eo)])])]))}});const No=(0,P.Z)(zo,[["__scopeId","data-v-bffb50d0"]]);var ho=No,wo=n(1818),vo=n(2056);const Co=e=>((0,a.dD)("data-v-96abcc38"),e=e(),(0,a.Cn)(),e),fo={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=Co((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Wo={key:0},Ko={class:"data"},Bo=Co((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Yo={key:0,class:"data elevation"},xo=["alt"],$o={class:"data-values"},Zo={key:1,class:"data altitude"},Ho=Co((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),Vo={class:"data-values"};var qo=(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:i,sport:u,useImperialUnits:d}=(0,s.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",fo,[(0,a._)("div",Do,[(0,a._)("div",ko,[(0,a._)("div",Po,[(0,a.Wm)(Le.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,s.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,s.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,s.SU)(i).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,s.SU)(i).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,s.SU)(i).workout_date&&(0,s.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,s.SU)(Be.p6)((0,s.SU)(i).workout_date,(0,s.SU)(r).timezone,(0,s.SU)(r).date_format)},(0,o.zw)((0,s.SU)(wo.Z)(new Date((0,s.SU)(i).workout_date),new Date,{addSuffix:!0,locale:(0,s.SU)(m)})),9,Lo)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,s.SU)(i)}]),onClick:t[0]||(t[0]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("div",Mo,[(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.j4)(vo.Z,{key:0,workout:(0,s.SU)(i)},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,s.SU)(i)&&!(0,s.SU)(i).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,a._)("div",yo,[(0,s.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,s.SU)(u).label,color:(0,s.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",Go,[Fo,(0,s.SU)(i)?((0,a.wg)(),(0,a.iD)("span",Wo,(0,o.zw)((0,s.SU)(i).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Ko,[Bo,(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).distance,digits:3,unitFrom:"km",useImperialUnits:(0,s.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.iD)("div",Yo,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,xo),(0,a._)("div",$o,[(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/ "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).max_alt,unitFrom:"m",useImperialUnits:(0,s.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,a.wg)(),(0,a.iD)("div",Zo,[Ho,(0,a._)("div",Vo,[(0,a.Uk)(" +"),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,s.SU)(i).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/- "),(0,s.SU)(i).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,s.SU)(i).descent,unitFrom:"m",useImperialUnits:(0,s.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const jo=(0,P.Z)(qo,[["__scopeId","data-v-96abcc38"]]);var Xo=jo,Jo=n(5630),Qo=n(3768);const ei={id:"timeline"},ti={class:"section-title"},ni={key:0},ri={key:1},ai={key:1,class:"more-workouts"};var oi=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:i}=(0,s.BK)(t),u=(0,s.iH)(1),d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,a.wF)((()=>S()));const E=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),_=(0,a.Fl)((()=>E.value.length>0&&null!==E.value[E.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",ei,[(0,a._)("div",ti,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,s.SU)(i).nb_workouts>0&&0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.iD)("div",ni,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,s.SU)(m)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Xo,{user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",ri,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(E),(e=>((0,a.wg)(),(0,a.j4)(Xo,{workout:e,sport:(0,s.SU)(E).length>0?(0,s.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,s.SU)(E).length?((0,a.wg)(),(0,a.j4)(Jo.Z,{key:0})):(0,a.kq)("",!0),(0,s.SU)(_)?((0,a.wg)(),(0,a.iD)("div",ai,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const ii=(0,P.Z)(oi,[["__scopeId","data-v-35567bf2"]]);var si=ii,li=n(1640),ci=n(4559),ui=n(7349),di=n(1743),mi=n(9160),Ei=n(1085);const _i=["title"];var Si=(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:i}=(0,s.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,s.SU)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,s.SU)(o),title:(0,s.SU)(r).title,color:(0,s.SU)(i)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,s.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,s.SU)(r).records.filter((e=>!!(0,s.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,_i)):(0,a.kq)("",!0)])])}}});const Ti=Si;var pi=Ti;const Ai={class:"donut-chart"},Oi={height:"34",width:"34",viewBox:"0 0 34 34"},Ii=["stroke","stroke-dashoffset","transform"];var gi=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,s.BK)(t);let o=-90;const i=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}, ${i}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ai,[((0,a.wg)(),(0,a.iD)("svg",Oi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,s.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:i,cy:l,r:c,fill:"transparent",stroke:(0,s.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,Ii)])))),128))]))]))}});const Ri=gi;var Ui=Ri;const zi={class:"calendar-workouts-chart"},Ni={class:"workouts-count"},hi={key:0,class:"workouts-pane"},wi={class:"more-workouts"};var vi=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:i,workouts:l}=(0,s.BK)(t),c=(0,s.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",zi,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",Ni,(0,o.zw)((0,s.SU)(l).length),1),(0,a.Wm)(Ui,{datasets:(0,s.SU)(r),colors:(0,s.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",hi,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",wi,[(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,s.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(pi,{key:t,workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(i)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(i))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const Ci=(0,P.Z)(vi,[["__scopeId","data-v-52d4310a"]]);var fi=Ci;const Di={class:"calendar-workouts"},ki={class:"desktop-display"},Pi={key:0,class:"workouts-display"},Li={key:1,class:"donut-display"},Mi={class:"mobile-display"},bi={key:0,class:"donut-display"};var yi=(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,s.BK)(t),i=(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",Di,[(0,a._)("div",ki,[(0,s.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Pi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(pi,{key:t,displayHARecord:(0,s.SU)(n),workout:e,sportLabel:(0,s.SU)(le.PA)(e,(0,s.SU)(o)),sportColor:(0,s.SU)(le.CM)(e,(0,s.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",Li,[(0,a.Wm)(fi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",Mi,[(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",bi,[(0,a.Wm)(fi,{workouts:(0,s.SU)(r),sports:(0,s.SU)(o),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Gi=yi;var Fi=Gi;const Wi={class:"calendar-cells"},Ki={class:"calendar-cell-day"};var Bi=(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:i,sports:l,startDate:c,timezone:u,weekStartingMonday:d,workouts:m}=(0,s.BK)(t),E=(0,s.iH)([]);function _(){E.value=[];let e=c.value;while(e<=i.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,ui.Z)(e,1);E.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,di.Z)((0,Be.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>_())),(0,a.YP)((()=>t.currentDay),(()=>_())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Wi,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(E.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,s.SU)(mi.Z)(e,(0,s.SU)(n)),"week-end":S(t),today:(0,s.SU)(Ei.Z)(e)}]),key:t},[(0,a.Wm)(Fi,{workouts:T(e,(0,s.SU)(m)),sports:(0,s.SU)(l),displayHARecord:(0,s.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Ki,(0,o.zw)((0,s.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const Yi=Bi;var xi=Yi;const $i={class:"calendar-days"};var Zi=(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,ui.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",$i,[((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,s.SU)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Hi=Zi;var Vi=Hi;const qi={class:"calendar-header"},ji=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Xi=[ji],Ji={class:"calendar-month"},Qi=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),es=[Qi];var ts=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:i}=(0,s.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",qi,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Xi),(0,a._)("div",Ji,[(0,a._)("span",null,(0,o.zw)((0,s.SU)(jt.Z)((0,s.SU)(r),"MMM yyyy",{locale:(0,s.SU)(i)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},es)]))}});const ns=ts;var rs=ns;const as={id:"user-calendar"},os={class:"calendar-card box"};var is=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,s.BK)(t),i="yyyy-MM-dd",u=(0,s.iH)(new Date),d=(0,s.iH)((0,Be.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function _(){d.value=(0,Be.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(d.value.start,i),to:(0,jt.Z)(d.value.end,i),page:1,per_page:100,...Qo.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function S(){u.value=(0,li.Z)(u.value,1),_()}function T(){u.value=(0,ci.Z)(u.value,1),_()}return(0,a.wF)((()=>_())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",as,[(0,a._)("div",os,[(0,a.Wm)(rs,{day:u.value,"locale-options":(0,s.SU)(E),onDisplayNextMonth:S,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(Vi,{"start-date":d.value.start,"locale-options":(0,s.SU)(E)},null,8,["start-date","locale-options"]),(0,a.Wm)(xi,{currentDay:u.value,displayHARecord:(0,s.SU)(o).display_ascent,"end-date":d.value.end,sports:(0,s.SU)(r),"start-date":d.value.start,timezone:(0,s.SU)(o).timezone,workouts:(0,s.SU)(m),weekStartingMonday:(0,s.SU)(o).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const ss=is;var ls=ss,cs=n(3703),us=n(4135),ds=n(436);const ms={class:"user-month-stats"};var Es=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,s.BK)(t),i=new Date,l={duration:"week",start:(0,cs.Z)(i),end:(0,us.Z)(i)},c=t.sports.map((e=>e.id));return(e,t)=>{const i=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ms,[(0,a.Wm)(i,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(ds.Z,{sports:(0,s.SU)(n),user:(0,s.SU)(r),"chart-params":l,"displayed-sport-ids":(0,s.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const _s=(0,P.Z)(Es,[["__scopeId","data-v-1bcddc12"]]);var Ss=_s,Ts=n(2540),ps=n(3649);const{locale:As}=Ts.Z.global,Os=(e,t,n,r)=>{const a="km",o=n?ps.Dl[a].defaultTarget:a,i="m",s=n?ps.Dl[i].defaultTarget:i;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,ps.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,ps.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,ps.sC)(+e.value,i,s,2)} ${s}`;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,Be.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Is=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Be.mh)(o,As.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const i=t.find((e=>e.id===a.sport_id));return i&&i.label&&(void 0===e[i.translatedLabel]&&(e[i.translatedLabel]={label:i.label,color:i.color,records:[]}),e[i.translatedLabel].records.push(Os(a,n,r,o))),e}),{})),Rs={class:"records-card"},Us={class:"record-type"},zs={class:"record-value"},Ns={class:"record-date"};var hs=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,s.BK)(t),{t:i}=(0,se.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:i(`workouts.RECORD_${e.record_type}`)})})),t.sort(Is)}return(e,t)=>{const i=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Rs,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(i,{"sport-label":(0,s.SU)(n).label,color:(0,s.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,s.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,s.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",Us,(0,o.zw)(e.label),1),(0,a._)("span",zs,(0,o.zw)(e.value),1),(0,a._)("span",Ns,[(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 ws=(0,P.Z)(hs,[["__scopeId","data-v-8d17c606"]]);var vs=ws;const Cs=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),fs={class:"user-records-section"},Ds={class:"section-title"},ks=Cs((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Ps={class:"user-records"},Ls={key:0,class:"no-records"};var Ms=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),r=(0,a.Fl)((()=>gs(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",fs,[(0,a._)("div",Ds,[ks,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Ps,[0===Object.keys((0,s.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Ls,(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,s.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(vs,{sportTranslatedLabel:t,records:(0,s.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const bs=(0,P.Z)(Ms,[["__scopeId","data-v-f0c85cb8"]]);var ys=bs;const Gs={id:"user-stats"};var Fs=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,se.QT)(),{user:r}=(0,s.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),i=(0,a.Fl)((()=>_(o))),l="km",c=r.value.imperial_units?ps.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,ps.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),d="m",m=r.value.imperial_units?ps.Dl[d].defaultTarget:d,E=(0,a.Fl)((()=>r.value.imperial_units?(0,ps.sC)(r.value.total_ascent,d,m,2):parseFloat(r.value.total_ascent.toFixed(2))));function _(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",Gs,[(0,a.Wm)(x,{icon:"calendar",value:(0,s.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"road",value:(0,s.SU)(u),text:"mi"===(0,s.SU)(c)?"miles":(0,s.SU)(c)},null,8,["value","text"]),(0,s.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(x,{key:0,icon:"location-arrow",value:(0,s.SU)(E),text:"ft"===(0,s.SU)(m)?"feet":(0,s.SU)(m)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(x,{icon:"clock-o",value:(0,s.SU)(i).days,text:(0,s.SU)(i).duration},null,8,["value","text"]),(0,s.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(x,{key:1,icon:"tags",value:(0,s.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,s.SU)(r).nb_sports)},null,8,["value","text"]))]))}});const Ws=Fs;var Ks=Ws;const Bs=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),Ys={key:0,id:"dashboard",class:"view"},xs={class:"container mobile-menu"},$s={class:"box"},Zs=Bs((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),Hs=[Zs],Vs=Bs((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),qs=[Vs],js=Bs((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Xs=[js],Js=Bs((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),Qs=[Js],el={class:"container"},tl={class:"container dashboard-container"},nl={class:"left-container dashboard-sub-container"},rl={class:"right-container dashboard-sub-container"},al=Bs((()=>(0,a._)("div",{id:"bottom"},null,-1))),ol={key:1,class:"app-loading"};var il=(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])),i=(0,s.iH)("calendar");function u(e){i.value=e}return(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(e,t)=>{const l=(0,a.up)("Loader");return(0,s.SU)(n).username&&(0,s.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",Ys,[(0,a._)("div",xs,[(0,a._)("div",$s,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},Hs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},qs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Xs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:t[3]||(t[3]=e=>u("records"))},Qs,2)])]),(0,a._)("div",el,[(0,a.Wm)(Ks,{user:(0,s.SU)(n)},null,8,["user"])]),(0,a._)("div",tl,[(0,a._)("div",nl,[(0,a.Wm)(Ss,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(ys,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),(0,a._)("div",rl,[(0,a.Wm)(ls,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),(0,a.Wm)(si,{sports:(0,s.SU)(r),user:(0,s.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),al])):((0,a.wg)(),(0,a.iD)("div",ol,[(0,a.Wm)(l)]))}}});const sl=(0,P.Z)(il,[["__scopeId","data-v-4c0893c1"]]);var ll=sl,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 El=ml,_l=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,s.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)(_l.Z,{action:(0,s.SU)(n)},null,8,["action"])])])]))}});const Il=(0,P.Z)(Ol,[["__scopeId","data-v-58043acb"]]);var gl=Il;const Rl=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},Ul=[{path:"/",name:"Dashboard",component:ll},{path:"/login",name:"Login",component:gl,props:{action:"login"}},{path:"/register",name:"Register",component:gl,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:zt,props:e=>({tab:Rl(e.path)}),children:[{path:"",name:"UserInfos",component:Nt.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:Rl(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Sn},{path:"account",name:"UserAccountEdition",component:qt},{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:ie},{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:ho},{path:"/:pathMatch(.*)*",name:"not-found",component:El}],zl=(0,r.p7)({history:(0,r.PO)("/"),routes:Ul}),Nl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],hl=["/email-update","/about"];zl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(hl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&Nl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||Nl.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=zl},5801:function(e,t,n){"use strict";var r,a,o,i,s,l,c,u,d,m,E,_,S,T,p,A,O,I;n.d(t,{YN:function(){return N},Km:function(){return h},SY:function(){return R},O8:function(){return U},gu:function(){return z},RT:function(){return w},aX:function(){return v}}),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"}(i||(i={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(s||(s={})),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"}(E||(E={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(_||(_={})),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 g=n(52);const R={ACTIONS:c,GETTERS:u,MUTATIONS:d},U={ACTIONS:m,GETTERS:E,MUTATIONS:_},z={ACTIONS:S,GETTERS:T,MUTATIONS:p},N={ACTIONS:r,GETTERS:a,MUTATIONS:o},h={ACTIONS:i,GETTERS:s,MUTATIONS:l},w={ACTIONS:A,GETTERS:O,MUTATIONS:I},v={ACTIONS:g.tW,GETTERS:g.JP,MUTATIONS:g.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),i=n(8566),s=n(2024);const l=o.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,i.a)(e);return i.j.set(n,t),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,i.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},E={[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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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=>{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)},[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,s.S)(e,null)})).catch((t=>{(0,s.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,s.S)(e,null)})).catch((t=>{(0,s.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,s.S)(e,null),_(e))})).catch((t=>{"canceled"!==t.message&&((0,s.S)(e,t),_(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,s.S)(e,null)})).catch((t=>(0,s.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):(0,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>{(0,s.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,s.S)(e,null)})).catch((t=>{(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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 g=(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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},R={[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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))},[d.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){g(e,`oauth/apps/${t}`)},[d.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){g(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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},U={[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},z={[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}},N={client:{},clients:[],pagination:{},revocationSuccessful:!1},h={state:N,actions:R,getters:U,mutations:z};var w=h,v=n(2540);const{locale:C}=v.Z.global,f={[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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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),C.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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>(0,s.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 B={[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,s.S)(e,null)})).catch((t=>(0,s.S)(e,t)))}},Y={[d.gu.GETTERS.USER_STATS]:e=>e.statistics},x={[d.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[d.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},$={statistics:{}},Z={state:$,actions:B,getters:Y,mutations:x};var H=Z;const V={[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},q={[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:E,getters:V,mutations:q};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,s.S)(e,null)})).catch((t=>(0,s.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,s.S)(e,null)})).catch((t=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.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,s.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,s.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,s.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,s.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 ie=oe;const se={authUserModule:I,oAuthModule:w,sportsModule:K,statsModule:H,usersModule:J,workoutsModule:ie},le={state:M,actions:f,getters:D,mutations:P,modules:se};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 i}});const r=["asc","desc"],a=1,o=10,i=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,s=(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=i(e.page,a),d.per_page=i(e.per_page,o),d.order=s(e.order,r,u),d.order_by=s(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,i.Z)(t,7);case"year":return(0,s.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),i=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:i}),end:(0,u.Z)(a,{weekStartsOn:i})}},I=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=U(t,S.value),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t,{locale:_.v1[S.value]}),workout_time:(0,d.Z)(e,n)}),g=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],R={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy",nl:"d MMM yyyy"},U=(e,t)=>"date_string"===e?R[t]:e,z=(e,t,n,r=!0,a=null)=>(a||(a=S.value),(0,d.Z)(A(e,t),`${U(n,a)}${r?" HH:mm":""}`,{locale:_.v1[a]})),N=(e,t,n=null)=>{const r=n||S.value,a=[];return g.map((n=>{const o=U(n,r);a.push({label:`${o} - ${z(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 d},v1:function(){return l},zK:function(){return c}});var r=n(879),a=n(5826),o=n(5830),i=n(4638),s=n(2540);const l={de:r.Z,en:a.Z,fr:o.Z,nl:i.Z},c={de:"Deutsch",en:"English",fr:"Français",nl:"Nederlands"},{availableLocales:u}=s.Z.global,d=u.map((e=>({label:c[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return s},Yx:function(){return a},Zo:function(){return r},xH:function(){return i}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7",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),s=(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 f},aZ:function(){return C},v1:function(){return v}});n(7658);var r=n(4850),a=n(8148),o=n(9319),i=n(584),s=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),E=n(7982),_=n(3500),S=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),I=n(3649);const{locale:g}=T.Z.global,R={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},U=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],z=(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},N=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},h=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(N(e.label,n,!0)),t.nb_workouts.push(N(e.label,n)),t.total_distance.push(N(e.label,n)),t.total_duration.push(N(e.label,n)),t.total_ascent.push(N(e.label,n)),t.total_descent.push(N(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}},v=(e,t,n,a,o,i,s)=>{const l=z(e,t),c=R[e.duration],u=n.filter((e=>a.includes(e.id))),d=[],m=h(u),E={};return u.map((e=>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)(s,g.value):c.chart,{locale:A.v1[g.value]});d.push(a),U.map((e=>{m[e].map((t=>{t.data.push(n in o&&E[t.label]in o[n]?w(e,o[n][E[t.label]][e],i):"average_speed"===e?null:0)}))}))})),{labels:d,datasets:m}},C=(e,t,n)=>{const r=n?1:0,m="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,i.Z)((0,s.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,s.Z)(e,11)),E="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:E,start:m}},f=(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,E.Z)(p,1):(0,_.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,s.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,i.Z)(t?(0,E.Z)(T,1):(0,_.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,s.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 i},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 i=r[t],s=r[n],l=e*i.multiplier*a[i.system][s.system]/s.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},i=(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 i}});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=[],i=[],s=[];return e.map((e=>{o.push(e.distance),i.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)),s.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:i,datasets:a,coordinates:s}},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},i={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"},i={class:"card-content"};function s(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",i,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",s]]);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 i={class:"table-selects"},s=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var E=(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:E,query:_,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",i,[(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)(_).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(E),(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,s)]),(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)(_).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)(_).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)])]))}}),_=n(3744);const S=(0,_.Z)(E,[["__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),i=[o];function s(e,t,n,o,s,l){return(0,r.wg)(),(0,r.iD)("svg",a,i)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",s]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});var r=n(6252),a=n(2262),o=(n(7658),n(3577));const i={id:"error"},s={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",i,[(0,r._)("div",s,[(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)(),i=(0,a.iH)(!1);function s(){o.value=setTimeout((()=>{i.value=!0}),500)}return(0,r.bv)((()=>s())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>i.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 E=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),i=n(2766);const s=e=>((0,r.dD)("data-v-3a9a4a65"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=s((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=s((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var E=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:s,query:E}=(0,o.BK)(t);function _(e,t){const n=Object.assign({},E.value);return n.page=t?e+t:e,n}return(e,t)=>{const E=(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)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:_((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)(i.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)(E,{key:1,class:"page-link",to:{path:(0,o.SU)(s),query:_(+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)(E,{class:"page-link",to:{path:(0,o.SU)(s),query:_((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)])])}}}),_=n(3744);const S=(0,_.Z)(E,[["__scopeId","data-v-3a9a4a65"]]);var T=S},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var r=n(6252),a=n(2262),o=n(9963),i=n(3577),s=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)),i=await n.e(881).then(n.bind(n,3140)),l={de:o,en:r,fr:a,it:i,nb:r,nl:r},c=l[e],u={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...c.default.dictionary}};s.Mu.setOptions(u)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},E=["value"],_={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),g=(0,a.iH)(""),R=(0,a.iH)([]),U=(0,a.iH)("0% 100%");function z(e){const t=(0,s.tu)(e);I.value=t.score,g.value=d(I.value),R.value=t.feedback.suggestions,U.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?g.value="":z(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,i.C_)(["password-slider",`strength-${I.value}`]),style:(0,i.j5)({backgroundSize:U.value}),type:"range",value:I.value,min:"0",max:"4",step:"1"},null,14,E),g.value?((0,r.wg)(),(0,r.iD)("div",_,[(0,r._)("span",S,(0,i.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.${g.value}`)),1),R.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)(R.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,i.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 g=I;const R=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),U={class:"password-input"},z=["id","disabled","placeholder","required","type"],N={key:0,class:"form-info"},h=R((()=>(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:s,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,a.BK)(n),E=(0,a.iH)(!1),_=(0,a.iH)("");function S(){E.value=!E.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(_.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",U,[(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:E.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,z),[[o.YZ,_.value]]),(0,r._)("div",{class:"show-password",onClick:S},[(0,r.Uk)((0,i.zw)(e.$t(`user.${E.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,i.C_)(["fa","fa-eye"+(E.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(s)?((0,r.wg)(),(0,r.iD)("div",N,[h,(0,r.Uk)(" "+(0,i.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(s)?((0,r.wg)(),(0,r.j4)(g,{key:1,password:_.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const v=(0,O.Z)(w,[["__scopeId","data-v-5a126514"]]);var C=v},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),i=n(2024);const s=(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,i.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)),s],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"},i={key:0},s={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},E=["checked"],_={key:1},S=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,I){const g=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",i,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",s,[(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,E),(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",_,[(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)(g,{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 g={class:"chart"};function R(e,t,n,a,o,i){const s=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",g,[(0,r.Wm)(s,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var U=n(6518),z=n(9150);const N=(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 h=n(3649);const w=(e,t,n,r=!0,a="km")=>{const o=n?h.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return N(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var v=(0,r.aZ)({name:"Chart",components:{BarChart:U.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,z.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 i=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(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,U.xZ)({chartData:i,options:s});return{barChartProps:l}}}),C=n(3744);const f=(0,C.Z)(v,[["render",R]]);var D=f,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 i(n){t.dispatch(k.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function s(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)((()=>i(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{i(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:s}}});const b=(0,C.Z)(M,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return z}});var r=n(6252),a=n(2262),o=n(3577),i=n(6595),s=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},E={class:"user-stat"},_={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 g=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),g=(0,l.o)(),R=(0,r.Fl)((()=>g.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const s=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(i.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",E,[(0,r._)("span",_,(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)(s,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(R).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(R).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)])])])])}}}),R=n(3744);const U=(0,R.Z)(g,[["__scopeId","data-v-20291951"]]);var z=U},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});n(7658);var r=n(6252),a=n(2262),o=n(3577),i=n(9963),s=n(4850),l=n(5801),c=n(9917),u=n(6558),d=n(6287);const m={id:"user-infos",class:"description-list"},E={key:1,class:"info-box success-message"},_={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},g={class:"user-bio"},R={key:0,class:"profile-buttons"},U=["onClick"],z={key:1,class:"profile-buttons"};var N=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:N,fromAdmin:h}=(0,a.BK)(t),w=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),v=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),C=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,v.value.timezone,v.value.date_format):"")),f=(0,r.Fl)((()=>t.user.birth_date?(0,s.Z)(new Date(t.user.birth_date),`${(0,u.mh)(v.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 B(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function Y(){Z(),y.value=N.value.email_to_confirm?N.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function x(){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(""),x())})),(e,t)=>{const n=(0,r.up)("Modal"),s=(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)(N).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(N).username):K((0,a.SU)(N).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",E,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(N).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(s,{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",_,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,i.iM)((e=>$((0,a.SU)(N).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)(N).email=e),disabled:""},null,512),[[i.nr,(0,a.SU)(N).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),[[i.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,i.iM)(x,["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)(C)),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)(N).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)(N).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)(f)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(N).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",g,(0,o.zw)((0,a.SU)(N).bio),1)]),(0,a.SU)(h)?((0,r.wg)(),(0,r.iD)("div",R,[(0,a.SU)(v).username!==(0,a.SU)(N).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,i.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(N).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,i.iM)((e=>B((0,a.SU)(N).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(v).username!==(0,a.SU)(N).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,i.iM)(Y,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,U)):(0,r.kq)("",!0),(0,a.SU)(v).username!==(0,a.SU)(N).username&&(0,a.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,i.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",z,[(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)]))]))])}}}),h=n(3744);const w=(0,h.Z)(N,[["__scopeId","data-v-217519af"]]);var v=w},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(6252),a=n(3577),o=n(2262),i=n(9963),s=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"},E={key:2,class:"info-box success-message"},_={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))),g=["disabled"],R={key:3},U={key:0},z={key:4},N={class:"account"},h={key:5};var w=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,s.yj)(),d=(0,u.o)(),{action:w}=(0,o.BK)(t),v=(0,o.qj)({username:"",email:"",password:""}),C=(0,r.Fl)((()=>G(t.action))),f=(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){v.password=e}function K(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:v.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:v.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:v.email});default:v["language"]=L.value,d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:v,redirectUrl:n.query.from})}}function B(){v.username="",v.email="",v.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,B()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),s=(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",E,(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,i.iM)((e=>K((0,o.SU)(w))),["prevent"]))},[(0,r._)("div",_,["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=>v.username=e),placeholder:e.$t("user.USERNAME")},null,40,S)),[[i.nr,v.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=>v.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[i.nr,v.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:v.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)(C))),9,g)],34),"login"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(s,{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",U,"-")):(0,r.kq)("",!0),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(s,{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",z,[(0,r._)("span",N,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(s,{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",h,[(0,r.Wm)(s,{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)(f)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(f)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),v=n(3744);const C=(0,v.Z)(w,[["__scopeId","data-v-b3c885de"]]);var f=C},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=n(2024);const i={class:"user-picture"},s=["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",i,[""!==(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,s)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const m=d;var E=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 i(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 s=n(3744);const l={},c=(0,s.Z)(l,[["render",i],["__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,"./it/it.ts":4334,"./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 i=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(s=!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 i={};e=e||[null,t({}),t([]),t(t)];for(var s=2&a&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){i[e]=function(){return r[e]}}));return i["default"]=function(){return r},n.d(o,i),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:"5ae157f1",93:"7582eaa7",193:"560b3502",243:"e034bc01",328:"4d1d1ecc",401:"da9513e1",431:"6f0a9946",633:"3c9401e6",845:"24318810",858:"5db37332",881:"216e8bea"}[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,i){if(e[r])e[r].push(a);else{var s,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 = ['it', 'nb'] // to update after 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\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\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_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\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 \"USERS\": {\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 \"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 },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\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 file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\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 \"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 \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut 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 \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\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 \"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\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\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 \"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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])}\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 \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff 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 },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\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 \"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 \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\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 \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\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_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\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 \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\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 \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])}\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_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\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_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\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 \"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 \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\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 \"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 \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\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 \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])}\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 \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\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 \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Distanz muss größer als 0 sein\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Dauer muss größer als 0 Sekunden sein\"])},\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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\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 \"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 \"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 \"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 \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .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\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\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_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\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 \"USERS\": {\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 \"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 },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network 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 file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\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 \"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 \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\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 \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\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 \"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 \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])}\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\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\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 \"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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])}\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 \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\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 \"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 \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountaineering\"])}\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 \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\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 \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\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_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\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 \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\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 \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])}\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_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\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_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update 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 \"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 \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\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 \"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 \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\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 \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])}\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 \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. 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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\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 \"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 \"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 \"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 \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .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\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\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_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\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 \"USERS\": {\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 \"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 },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\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 file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\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 \"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 \"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 \"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 \"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 \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\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 \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])}\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\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\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 \"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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])}\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 \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\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 \"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 \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinisme\"])}\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 \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\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 \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"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_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\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 \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\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 \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\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 \"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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])}\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_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\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 \"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 \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\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 \"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 \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n }\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 \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])}\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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\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 \"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 \"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 \"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 \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un 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","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacteer uw administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is zelf-gehoste buitenshuis activiteiten tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Onder \", _interpolate(_list(0)), \" licentie \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Broncode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actie\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activeer account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instellingen\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email voor contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal bestanden in zip archief\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bij 0, geen limiet op registratie.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal actieve gebruikers\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van bestanden voor upload (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie configureren\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van zip archief (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar beheer\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u de account \", _interpolate(_list(0)), \" wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u het wachtwoord voor \", _interpolate(_list(0)), \" wilt resetten?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidige email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder gebruiker\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emails verzenden is uitgeschakeld.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aan- of uitzetten van sporten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het wachtwoord werd gereset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel uitgeschakeld.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel ingeschakeld.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset wachtwoord\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingen aanwezig\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer sporten\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De applicatie configureren (maximum aantal geregistreerde gebruikers, maximum bestandsgrootte).\"])},\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([\"gebruiker\"]), _normalize([\"gebruikers\"])])},\n \"USERS\": {\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([\"Registratie datum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersnaam\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aantal trainingen\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin rechten toevoegen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder admin rechten\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het emailadres werd bijgewerkt.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netwerk fout.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: een geldige email is vereist.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het verwerken van het gpx bestand.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij verwerken van gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij ophalen van configuratie.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het updaten van de configuratie\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, probeer opnieuw of contacteer de administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, registratie is uitgeschakeld.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsformaat niet toegelaten.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsgrootte is groter dan toegestaan.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige inloggegevens.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingegeven data is ongeldig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het nieuwe email adres dient te verschillen van het oude\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand geselecteerd.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signatuur verlopen. Log opnieuw in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, deze gebruikersnaam is al in gebruik.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze sport bestaat niet.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Succesvol geregistreerd.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het aantal bestanden in het zip archief overschrijdt de limiet.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruiker bestaat niet.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een geldige email is vereist voor admin contact informatie\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U hebt geen machtigingen.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgende\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vorige\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Herzend bevestigings email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toekennen\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuleren\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder mijn account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitzetten\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bewerken\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanzetten\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nee\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreer\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanpassen\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"over\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bevestiging\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacteer\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"dag\"]), _normalize([\"dagen\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergegeven\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentatie\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verborgen\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startscherm\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oplopend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aflopend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer op\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totaal\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze maand\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er heeft zich een onbekende fout voorgedaan.
Probeer aub later opnieuw of contacteer de administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina niet gevonden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training niet gevonden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er ging iets mis\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe OAuth2 app toevoegen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheim\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App omschrijving\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Probleem bij\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Naam van de app\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doorverwijs URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Omvang\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geeft toestemming tot aanpassen van de applicatie instellingen.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 apps\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze app wilt verwijderen?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"De app \", _interpolate(_list(0)), \" vraagt:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Toegang geven aan \", _interpolate(_list(0)), \" tot uw gebruikersaccount?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kopieer naar klembord\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder app\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg een app toe\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App niet gevonden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen apps\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen beschrijving\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder alle tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u alle tokens wilt intrekken?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle bestaande tokens werden ingetrokken.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Virtueel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trektocht\"])}\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([\"Roeien\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lopen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sneeuwschoenen\"])}\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([\"Wandelen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistieken\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maand\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jaar\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen instructies ontvangen?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Al een account aangemaakt?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidig wachtwoord\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig email adres op.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een paswoord in\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter op gebruikersnaam\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg wachtwoord\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldig token, vraag een nieuwe wachtwoord reset aan.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitloggen\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inloggen\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuw wachtwoord\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen gebruikers gevonden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord vergeten?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tenminste 8 karakters vereist.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddeld\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"goed\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wachtwoord sterkte\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sterk\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik enkele hoofdletters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg meer niet gangbare woorden toe.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd jaartallen met een persoonlijke betekenis.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik niet enkel voor de eerste letter een hoofdletter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd persoonlijke gegevens en jaartallen.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare vervangingen, zoals \", \"@\", \" voor de letter a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik langere patronen en verander de richting van typen meerdere malen.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd recente jaartallen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd opeenvolgende woorden en karakters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd gangbare woorden die achterstevoren geschreven zijn.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare opeenvolgingen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zwak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Uw wachtwoord werd aangepast. Klik \", _interpolate(_list(0)), \" om in te loggen.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aanpassen\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogte gerelateerde data (opnames, totaal)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar profiel\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geboortedatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergaveformaat datum\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren wijzigen\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren wijzigen\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Gelieve \", _interpolate(_list(0)), \" om uw email adres opnieuw te wijzigen of contacteer uw administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eerste dag van de week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voornaam\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Achternaam\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Locatie\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maandag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding aanpassen\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding verwijderen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding veranderen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren aanpassen\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum registratie\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actie\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"uitgeschakeld door admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actief\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheidsgrens voor stilstand\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren aanpassen\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol aangemaakt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zondag\"])},\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([\"afbeelding\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voorkeuren\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profiel\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sporten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tijdzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperialistisch systeem (ft, mi)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eenheid voor afstand\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisch systeem (m, km)\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registreren is uitgeschakeld.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opnieuw zenden van account bevestigingsmail\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset uw wachtwoord\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon wachtwoord\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze account is niet actief.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruikersnaam\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter \\\"_\\\" zijn toegestaan.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersafbeelding\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training toevoegen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geklommen\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddelde snelheid\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gem. snelheid\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedaald\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afstand\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duur\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training aanpassen\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hoogte\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"einde\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"van\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx bestand\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg filters\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De afstand moet groter zijn dan 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De duur moet langer zijn dan 0 seconden\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laatste trainingen\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toon meer trainingen\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. hoogte\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. aantal bestanden\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. grootte\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. snelheid\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. hoogte\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volgende training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notities\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data vanuit gpx, zonder op te schonen\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen map aanwezig\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen kaart\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgende training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen notities\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorig segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorige training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen trainingen.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauzes\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorig segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorige training\"])},\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([\"Gem. snelheid\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste afstand\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogst geklommen\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste duur\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. snelheid\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"resterende karakters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segmenten\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheid\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sporten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start en aankomst\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zet hoogte-as vast op 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aan\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"totale duur\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eén uploaden!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere dag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bewolkt\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mist\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte dag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"natte sneeuw\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sneeuw\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vochtigheid\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatuur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OZO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Z\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WZW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zonder .gpx bestand\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"met .gpx bestand\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"training\"]), _normalize([\"trainingen\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum training\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze training wilt verwijderen?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip bestand\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"of .zip archief met .gpx bestanden\"])}\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-ab6e62ae\"),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=ab6e62ae&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-ab6e62ae\"]])\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-9590c0e6\"),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=9590c0e6&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-9590c0e6\"]])\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 \"./Mountaineering.vue?vue&type=template&id=15731a2a\"\nimport script from \"./Mountaineering.vue?vue&type=script&lang=js\"\nexport * from \"./Mountaineering.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 Mountaineering from '@/components/Common/Images/SportImage/Mountaineering.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) === 'Mountaineering')\n ? (_openBlock(), _createBlock(Mountaineering, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 12 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 13 }))\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 // it: '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, nl } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n // it: it,\n // nb: nb, // disabled for now\n nl: nl,\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n // it: 'Italiano',\n // nb: 'Norsk bokmål', // disabled for now\n nl: 'Nederlands',\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 Mountaineering: '#48b3b7',\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 zxcvbnItPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-it'\n )\n const zxcvbnLangPackages: Record = {\n de: zxcvbnDePackage,\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n it: zxcvbnItPackage,\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\"./it/it.ts\": 4334,\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\":\"5ae157f1\",\"93\":\"7582eaa7\",\"193\":\"560b3502\",\"243\":\"e034bc01\",\"328\":\"4d1d1ecc\",\"401\":\"da9513e1\",\"431\":\"6f0a9946\",\"633\":\"3c9401e6\",\"845\":\"24318810\",\"858\":\"5db37332\",\"881\":\"216e8bea\"}[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 = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, 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\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\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, null, 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__(5326); })\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","Mountaineering","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","nl","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","zxcvbnItPackage","zxcvbnLangPackages","it","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","oldTag","linkTag","onLinkComplete","errorType","realHref","err","insertBefore","nextSibling","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/chunk-vendors.b65fdc2f.js.map b/fittrackee/dist/static/js/chunk-vendors.b65fdc2f.js.map deleted file mode 100644 index 86f8df85..00000000 --- a/fittrackee/dist/static/js/chunk-vendors.b65fdc2f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/chunk-vendors.b65fdc2f.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/helper.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/dateSplits.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/const.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/date/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/vendor/fastest-levenshtein.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/levenshtein.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/l33tTable.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/translationKeys.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/Options.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/matching/reverse.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/matching/l33t.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/regex/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/scoring/utils.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/bruteforce/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/date/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/scoring/uppercase.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/scoring/l33t.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/regex/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/scoring/estimate.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/scoring/index.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/Matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/TimeEstimates.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/bruteforce/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/date/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/regex/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/Feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/index.esm.js","webpack://fittrackee_client/./node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.esm.js","webpack://fittrackee_client/./node_modules/core-js/internals/a-callable.js","webpack://fittrackee_client/./node_modules/core-js/internals/an-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/array-includes.js","webpack://fittrackee_client/./node_modules/core-js/internals/array-set-length.js","webpack://fittrackee_client/./node_modules/core-js/internals/classof-raw.js","webpack://fittrackee_client/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://fittrackee_client/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/create-property-descriptor.js","webpack://fittrackee_client/./node_modules/core-js/internals/define-built-in.js","webpack://fittrackee_client/./node_modules/core-js/internals/define-global-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/descriptors.js","webpack://fittrackee_client/./node_modules/core-js/internals/document-all.js","webpack://fittrackee_client/./node_modules/core-js/internals/document-create-element.js","webpack://fittrackee_client/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://fittrackee_client/./node_modules/core-js/internals/engine-user-agent.js","webpack://fittrackee_client/./node_modules/core-js/internals/engine-v8-version.js","webpack://fittrackee_client/./node_modules/core-js/internals/enum-bug-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/export.js","webpack://fittrackee_client/./node_modules/core-js/internals/fails.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-bind-native.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-call.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-name.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-uncurry-this.js","webpack://fittrackee_client/./node_modules/core-js/internals/get-built-in.js","webpack://fittrackee_client/./node_modules/core-js/internals/get-method.js","webpack://fittrackee_client/./node_modules/core-js/internals/global.js","webpack://fittrackee_client/./node_modules/core-js/internals/has-own-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/hidden-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/ie8-dom-define.js","webpack://fittrackee_client/./node_modules/core-js/internals/indexed-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/inspect-source.js","webpack://fittrackee_client/./node_modules/core-js/internals/internal-state.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-array.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-callable.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-forced.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-pure.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-symbol.js","webpack://fittrackee_client/./node_modules/core-js/internals/length-of-array-like.js","webpack://fittrackee_client/./node_modules/core-js/internals/make-built-in.js","webpack://fittrackee_client/./node_modules/core-js/internals/math-trunc.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-define-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-keys-internal.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://fittrackee_client/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://fittrackee_client/./node_modules/core-js/internals/own-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/require-object-coercible.js","webpack://fittrackee_client/./node_modules/core-js/internals/shared-key.js","webpack://fittrackee_client/./node_modules/core-js/internals/shared-store.js","webpack://fittrackee_client/./node_modules/core-js/internals/shared.js","webpack://fittrackee_client/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-absolute-index.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-indexed-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-length.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-primitive.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-property-key.js","webpack://fittrackee_client/./node_modules/core-js/internals/try-to-string.js","webpack://fittrackee_client/./node_modules/core-js/internals/uid.js","webpack://fittrackee_client/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://fittrackee_client/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://fittrackee_client/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://fittrackee_client/./node_modules/core-js/internals/well-known-symbol.js","webpack://fittrackee_client/./node_modules/core-js/modules/es.array.push.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/addLeadingZeros/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/assign/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/cloneObject/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/defaultLocale/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/defaultOptions/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/format/formatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/format/lightFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/format/longFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCDayOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/protectedTokens/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/requiredArgs/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/toInteger/index.js","webpack://fittrackee_client/./node_modules/date-fns/addMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addDays/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addWeeks/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addYears/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isDate/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isValid/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/format/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/compareAsc/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfDay/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfDay/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isSameDay/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isSameMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isToday/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/nl/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/nl/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/nl/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/nl/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/nl/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/nl/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subWeeks/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subYears/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/toDate/index.js","webpack://fittrackee_client/./node_modules/date-fns/format/index.js","webpack://fittrackee_client/./node_modules/date-fns/isDate/index.js","webpack://fittrackee_client/./node_modules/date-fns/isValid/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildMatchFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/index.js","webpack://fittrackee_client/./node_modules/date-fns/subMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/toDate/index.js","webpack://fittrackee_client/./node_modules/form-data/lib/browser.js","webpack://fittrackee_client/./node_modules/pascalcase/node_modules/camelcase/index.js","webpack://fittrackee_client/./node_modules/register-service-worker/index.js","webpack://fittrackee_client/./node_modules/vue-fullscreen/dist/index.es.js","webpack://fittrackee_client/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://fittrackee_client/./node_modules/vue-i18n/dist/vue-i18n.esm-bundler.js","webpack://fittrackee_client/./node_modules/vue-loader/dist/exportHelper.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://fittrackee_client/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/newDateUTC/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzIntlTimeZoneName/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzParseTimezone/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzPattern/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/format/formatters/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/format/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/formatInTimeZone/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/getTimezoneOffset/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/toDate/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/utcToZonedTime/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/zonedTimeToUtc/index.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/bind.js","webpack://fittrackee_client/./node_modules/axios/lib/utils.js","webpack://fittrackee_client/./node_modules/axios/lib/core/AxiosError.js","webpack://fittrackee_client/./node_modules/axios/lib/env/classes/FormData.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/toFormData.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/buildURL.js","webpack://fittrackee_client/./node_modules/axios/lib/core/InterceptorManager.js","webpack://fittrackee_client/./node_modules/axios/lib/defaults/transitional.js","webpack://fittrackee_client/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://fittrackee_client/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://fittrackee_client/./node_modules/axios/lib/platform/browser/index.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://fittrackee_client/./node_modules/axios/lib/defaults/index.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://fittrackee_client/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://fittrackee_client/./node_modules/axios/lib/core/transformData.js","webpack://fittrackee_client/./node_modules/axios/lib/cancel/isCancel.js","webpack://fittrackee_client/./node_modules/axios/lib/cancel/CanceledError.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/null.js","webpack://fittrackee_client/./node_modules/axios/lib/core/settle.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/cookies.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/combineURLs.js","webpack://fittrackee_client/./node_modules/axios/lib/core/buildFullPath.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/speedometer.js","webpack://fittrackee_client/./node_modules/axios/lib/adapters/xhr.js","webpack://fittrackee_client/./node_modules/axios/lib/adapters/adapters.js","webpack://fittrackee_client/./node_modules/axios/lib/core/dispatchRequest.js","webpack://fittrackee_client/./node_modules/axios/lib/core/mergeConfig.js","webpack://fittrackee_client/./node_modules/axios/lib/env/data.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/validator.js","webpack://fittrackee_client/./node_modules/axios/lib/core/Axios.js","webpack://fittrackee_client/./node_modules/axios/lib/cancel/CancelToken.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/spread.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://fittrackee_client/./node_modules/axios/lib/axios.js","webpack://fittrackee_client/./node_modules/chart.js/dist/chart.js","webpack://fittrackee_client/./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheClear.js","webpack://fittrackee_client/./node_modules/lodash-es/eq.js","webpack://fittrackee_client/./node_modules/lodash-es/_assocIndexOf.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_ListCache.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackClear.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_freeGlobal.js","webpack://fittrackee_client/./node_modules/lodash-es/_root.js","webpack://fittrackee_client/./node_modules/lodash-es/_Symbol.js","webpack://fittrackee_client/./node_modules/lodash-es/_getRawTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_objectToString.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseGetTag.js","webpack://fittrackee_client/./node_modules/lodash-es/isObject.js","webpack://fittrackee_client/./node_modules/lodash-es/isFunction.js","webpack://fittrackee_client/./node_modules/lodash-es/_coreJsData.js","webpack://fittrackee_client/./node_modules/lodash-es/_isMasked.js","webpack://fittrackee_client/./node_modules/lodash-es/_toSource.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsNative.js","webpack://fittrackee_client/./node_modules/lodash-es/_getValue.js","webpack://fittrackee_client/./node_modules/lodash-es/_getNative.js","webpack://fittrackee_client/./node_modules/lodash-es/_Map.js","webpack://fittrackee_client/./node_modules/lodash-es/_nativeCreate.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashClear.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_Hash.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheClear.js","webpack://fittrackee_client/./node_modules/lodash-es/_isKeyable.js","webpack://fittrackee_client/./node_modules/lodash-es/_getMapData.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_MapCache.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_Stack.js","webpack://fittrackee_client/./node_modules/lodash-es/_setCacheAdd.js","webpack://fittrackee_client/./node_modules/lodash-es/_setCacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_SetCache.js","webpack://fittrackee_client/./node_modules/lodash-es/_arraySome.js","webpack://fittrackee_client/./node_modules/lodash-es/_cacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_equalArrays.js","webpack://fittrackee_client/./node_modules/lodash-es/_Uint8Array.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapToArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_setToArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_equalByTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayPush.js","webpack://fittrackee_client/./node_modules/lodash-es/isArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayFilter.js","webpack://fittrackee_client/./node_modules/lodash-es/stubArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_getSymbols.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseTimes.js","webpack://fittrackee_client/./node_modules/lodash-es/isObjectLike.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsArguments.js","webpack://fittrackee_client/./node_modules/lodash-es/isArguments.js","webpack://fittrackee_client/./node_modules/lodash-es/stubFalse.js","webpack://fittrackee_client/./node_modules/lodash-es/isBuffer.js","webpack://fittrackee_client/./node_modules/lodash-es/_isIndex.js","webpack://fittrackee_client/./node_modules/lodash-es/isLength.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseUnary.js","webpack://fittrackee_client/./node_modules/lodash-es/_nodeUtil.js","webpack://fittrackee_client/./node_modules/lodash-es/isTypedArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_isPrototype.js","webpack://fittrackee_client/./node_modules/lodash-es/_overArg.js","webpack://fittrackee_client/./node_modules/lodash-es/_nativeKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/isArrayLike.js","webpack://fittrackee_client/./node_modules/lodash-es/keys.js","webpack://fittrackee_client/./node_modules/lodash-es/_getAllKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_equalObjects.js","webpack://fittrackee_client/./node_modules/lodash-es/_DataView.js","webpack://fittrackee_client/./node_modules/lodash-es/_Promise.js","webpack://fittrackee_client/./node_modules/lodash-es/_Set.js","webpack://fittrackee_client/./node_modules/lodash-es/_WeakMap.js","webpack://fittrackee_client/./node_modules/lodash-es/_getTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsEqual.js","webpack://fittrackee_client/./node_modules/lodash-es/isEqual.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayEach.js","webpack://fittrackee_client/./node_modules/lodash-es/_defineProperty.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseAssignValue.js","webpack://fittrackee_client/./node_modules/lodash-es/_assignValue.js","webpack://fittrackee_client/./node_modules/lodash-es/_copyObject.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseAssign.js","webpack://fittrackee_client/./node_modules/lodash-es/_nativeKeysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseKeysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/keysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseAssignIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneBuffer.js","webpack://fittrackee_client/./node_modules/lodash-es/_copyArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_copySymbols.js","webpack://fittrackee_client/./node_modules/lodash-es/_getPrototype.js","webpack://fittrackee_client/./node_modules/lodash-es/_getSymbolsIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_copySymbolsIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_getAllKeysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_initCloneArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneDataView.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneRegExp.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneSymbol.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneTypedArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_initCloneByTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseCreate.js","webpack://fittrackee_client/./node_modules/lodash-es/_initCloneObject.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsMap.js","webpack://fittrackee_client/./node_modules/lodash-es/isMap.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsSet.js","webpack://fittrackee_client/./node_modules/lodash-es/isSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseClone.js","webpack://fittrackee_client/./node_modules/lodash-es/cloneDeep.js","webpack://fittrackee_client/./node_modules/pascalcase/index.js","webpack://fittrackee_client/./node_modules/vue-chart-3/dist/index.js","webpack://fittrackee_client/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["import { extend, isArray, toNumber, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n const newLength = toNumber(newValue);\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newLength) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n if (!(process.env.NODE_ENV !== 'production'))\n return;\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => (isString(a) ? a.trim() : a));\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled ``, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager or sync flush\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n if (flush === 'sync') {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n }\n else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource\n ? new Array(source.length).fill(INITIAL_WATCHER_VALUE)\n : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE\n ? undefined\n : (isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE)\n ? []\n : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n const unwatch = () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn(' can only be used on a single element or component. ' +\n 'Use for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of , we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n // #6835\n // it also needs to be updated when active is undefined\n if (instance.update.active !== false) {\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of