From 256f89606e7bab826951e6bb3b814e6f6b3c7937 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 1 Jan 2022 21:56:05 +0100 Subject: [PATCH 1/2] Client - fix workouts display on calendar - fix #131 --- fittrackee/dist/index.html | 2 +- ...precache-manifest.2ba335c13a4e6357982318ca13c09ac8.js} | 8 ++++---- fittrackee/dist/service-worker.js | 2 +- fittrackee/dist/static/js/app.17fba770.js | 2 ++ fittrackee/dist/static/js/app.17fba770.js.map | 1 + fittrackee/dist/static/js/app.20ff75b6.js | 2 -- fittrackee/dist/static/js/app.20ff75b6.js.map | 1 - .../components/Dashboard/UserCalendar/CalendarCells.vue | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) rename fittrackee/dist/{precache-manifest.0aa7df09e6fa099292b07eaf79ffeac5.js => precache-manifest.2ba335c13a4e6357982318ca13c09ac8.js} (97%) create mode 100644 fittrackee/dist/static/js/app.17fba770.js create mode 100644 fittrackee/dist/static/js/app.17fba770.js.map delete mode 100644 fittrackee/dist/static/js/app.20ff75b6.js delete mode 100644 fittrackee/dist/static/js/app.20ff75b6.js.map diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index 963e1a6a..65dec878 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/precache-manifest.0aa7df09e6fa099292b07eaf79ffeac5.js b/fittrackee/dist/precache-manifest.2ba335c13a4e6357982318ca13c09ac8.js similarity index 97% rename from fittrackee/dist/precache-manifest.0aa7df09e6fa099292b07eaf79ffeac5.js rename to fittrackee/dist/precache-manifest.2ba335c13a4e6357982318ca13c09ac8.js index d309e347..9caee9d4 100644 --- a/fittrackee/dist/precache-manifest.0aa7df09e6fa099292b07eaf79ffeac5.js +++ b/fittrackee/dist/precache-manifest.2ba335c13a4e6357982318ca13c09ac8.js @@ -64,7 +64,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/img/workouts/mountains.svg" }, { - "revision": "01fa6f51e99303e6aa0af8c057385a81", + "revision": "7ce3d4a81d9f667215bebe48b746b393", "url": "/index.html" }, { @@ -80,7 +80,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/css/admin.e77f8b26.css" }, { - "revision": "0a338b320a8168eedc37", + "revision": "deb60b4c004895727e7a", "url": "/static/css/app.b54fa5fe.css" }, { @@ -192,8 +192,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/js/admin.5f46d0fe.js" }, { - "revision": "0a338b320a8168eedc37", - "url": "/static/js/app.20ff75b6.js" + "revision": "deb60b4c004895727e7a", + "url": "/static/js/app.17fba770.js" }, { "revision": "bd7d183c9f68e5f4027d", diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index 7f4a3ac3..e9126133 100644 --- a/fittrackee/dist/service-worker.js +++ b/fittrackee/dist/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.0aa7df09e6fa099292b07eaf79ffeac5.js" + "/precache-manifest.2ba335c13a4e6357982318ca13c09ac8.js" ); workbox.core.setCacheNameDetails({prefix: "fittrackee_client"}); diff --git a/fittrackee/dist/static/js/app.17fba770.js b/fittrackee/dist/static/js/app.17fba770.js new file mode 100644 index 00000000..053124e9 --- /dev/null +++ b/fittrackee/dist/static/js/app.17fba770.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var r,c,i=t[0],s=t[1],l=t[2],u=0,d=[];ur?1:n2&&void 0!==arguments[2]?arguments[2]:"all",c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return e.filter((function(e){return"all"===n||(c.includes(e.id)||e[n])})).map((function(e){return Object(r["a"])(Object(r["a"])({},e),{},{translatedLabel:t("sports.".concat(e.label,".LABEL"))})})).sort(o)},s=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.label}))[0]},l=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.color}))[0]}},"11f9":function(e,t,n){"use strict";n("83d9")},"15bf":function(e,t,n){},1724:function(e,t,n){"use strict";var r=n("7a23"),c={class:"no-workouts box"};function a(e,t){var n=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("div",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.NO_WORKOUTS"))+" ",1),Object(r["createVNode"])(n,{to:"/workouts/add"},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)]})),_:1})])])}n("b3f6");var o=n("6b0d"),i=n.n(o);const s={},l=i()(s,[["render",a],["__scopeId","data-v-4b4d15fb"]]);t["a"]=l},"19e8":function(e,t,n){"use strict";var r=n("7a23"),c={class:"card"},a={class:"card-title"},o={class:"card-content"};function i(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("div",a,[Object(r["renderSlot"])(e.$slots,"title")]),Object(r["createElementVNode"])("div",o,[Object(r["renderSlot"])(e.$slots,"content")])])}n("0a85");var s=n("6b0d"),l=n.n(s);const u={},d=l()(u,[["render",i]]);t["a"]=d},"1a78":function(e,t,n){},"1ace":function(e,t,n){},2386:function(e,t,n){},2449:function(e,t,n){},"268c":function(e,t,n){"use strict";n("0c22")},2906:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n("5502");function c(){return Object(r["b"])()}},"2edc":function(e,t,n){},"304f":function(e,t,n){},3306:function(e,t,n){"use strict";n("1ace")},3522:function(e,t,n){},"35e3":function(e,t,n){"use strict";n("0ad9")},"374b":function(e,t,n){"use strict";n("5911")},"3a2a":function(e,t,n){"use strict";n("76bb")},"3c44":function(e,t,n){"use strict";var r=n("7a23"),c=n("c46a"),a={class:"box user-header"},o={class:"user-details"},i={class:"user-name"},s={class:"user-stats"},l={class:"user-stat"},u={class:"stat-number"},d={class:"stat-label"},O={class:"user-stat"},b={class:"stat-label"},m={class:"user-stat hide-small"},p={class:"stat-number"},E={class:"stat-label"},f=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),f=n.user;return function(e,t){var n=Object(r["resolveComponent"])("Distance");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,[Object(r["createVNode"])(c["a"],{user:Object(r["unref"])(f)},null,8,["user"]),Object(r["createElementVNode"])("div",o,[Object(r["createElementVNode"])("div",i,Object(r["toDisplayString"])(Object(r["unref"])(f).username),1),Object(r["createElementVNode"])("div",s,[Object(r["createElementVNode"])("div",l,[Object(r["createElementVNode"])("span",u,Object(r["toDisplayString"])(Object(r["unref"])(f).nb_workouts),1),Object(r["createElementVNode"])("span",d,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",Object(r["unref"])(f).nb_workouts)),1)]),Object(r["createElementVNode"])("div",O,[Object(r["createVNode"])(n,{distance:Object(r["unref"])(f).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:Object(r["unref"])(f).imperial_units},null,8,["distance","useImperialUnits"]),Object(r["createElementVNode"])("span",b,Object(r["toDisplayString"])(Object(r["unref"])(f).imperial_units?"miles":"km"),1)]),Object(r["createElementVNode"])("div",m,[Object(r["createElementVNode"])("span",p,Object(r["toDisplayString"])(Object(r["unref"])(f).nb_sports),1),Object(r["createElementVNode"])("span",E,Object(r["toDisplayString"])(e.$t("workouts.SPORT",Object(r["unref"])(f).nb_sports)),1)])])])])}}}),j=(n("e806"),n("6b0d")),T=n.n(j);const S=T()(f,[["__scopeId","data-v-312cd857"]]);t["a"]=S},"3d56":function(e,t,n){"use strict";n("3522")},"423b":function(e,t,n){"use strict";n("8907")},"43c0":function(e,t,n){"use strict";n("6252")},4870:function(e,t,n){"use strict";var r,c,a;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a})),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"}(c||(c={})),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"}(a||(a={}))},"49a7":function(e,t,n){},"4c29":function(e,t,n){"use strict";n("ff29")},"4e58":function(e,t,n){},"4f8e":function(e,t,n){"use strict";n("4e58")},5140:function(e,t,n){},5172:function(e,t,n){},"538d":function(e,t,n){},"55a6":function(e,t,n){"use strict";n("dbf1")},5643:function(e,t,n){},5911:function(e,t,n){},"5b6e":function(e,t,n){"use strict";n("5643")},"5e65":function(e,t,n){"use strict";n.d(t,"d",(function(){return b})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return p})),n.d(t,"b",(function(){return E})),n.d(t,"a",(function(){return f}));var r=n("69eb"),c=n("d6e9"),a=n("f628"),o=n("f7f1"),i=n("cdb6"),s=n("74b5"),l=n("8cac"),u=n("2fc8"),d=n("b166"),O=n("78b2"),b=function(e,t,n){switch(e){case"week":return Object(r["a"])(t,{weekStartsOn:n?1:0});case"year":return Object(c["a"])(t);case"month":return Object(a["a"])(t);default:throw new Error('Invalid duration, expected: "week", "month", "year", got: "'.concat(e,'"'))}},m=function(e,t){switch(e){case"week":return Object(o["a"])(t,7);case"year":return Object(i["a"])(t,1);case"month":return Object(s["a"])(t,1);default:throw new Error('Invalid duration, expected: "week", "month", "year", got: "'.concat(e,'"'))}},p=function(e,t){return Object(O["a"])(new Date(e),t)},E=function(e,t){var n=Object(a["a"])(e),c=Object(l["a"])(e),o=t?1:0;return{start:Object(r["a"])(n,{weekStartsOn:o}),end:Object(u["a"])(c,{weekStartsOn:o})}},f=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return t||(t="yyyy/MM/dd"),n||(n="HH:mm"),{workout_date:Object(d["a"])(e,t),workout_time:Object(d["a"])(e,n)}}},6112:function(e,t,n){"use strict";n("0180")},6252:function(e,t,n){},6284:function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return o}));n("b680");var 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"}},c={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},a=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3,o=r[t],i=r[n],s=e*o.multiplier*c[o.system][i.system]/i.multiplier;return null!==a?parseFloat(s.toFixed(a)):s},o=function(e,t,n){var c=n?r[e].defaultTarget:e;return n?a(t,e,c,2):t}},"633e":function(e,t,n){},"64bb":function(e,t,n){},"663e":function(e,t,n){"use strict";n.r(t);var r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},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(["Nombre max. de fichiers dans une archive zip "])}},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(["Etes-vous sûr de vouloir supprimer le compte de ",n(r(0))," ? Toutes les données seront définitivement."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},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."])},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)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les drois d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les drois d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email : une adresse email valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur Réseau."])},"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."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Mot de passe : 8 caractères minimum."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Désolé, cet utilisateur existe déjà."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas"])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Nom d'utilisateur : 3 à 12 caractères requis."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},a={BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},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"])}},o={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de Bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}}},l={"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)"])}},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 (Electrique)"])}},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"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},d={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(["Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Saisir une adresse email"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veullez 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"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},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:{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"])},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"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances "])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])}},O={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"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_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_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}};t["default"]={admin:r,api:c,buttons:a,common:o,dashboard:i,error:s,sports:l,statistics:u,user:d,workouts:O}},"68c6":function(e,t,n){"use strict";n("99af"),n("d81d");var r=n("7a23"),c=n("d257"),a=Object(r["createElementVNode"])("div",{class:"map-attribution"},[Object(r["createElementVNode"])("span",{class:"map-attribution-text"},"©"),Object(r["createElementVNode"])("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1),o=Object(r["defineComponent"])({props:{workout:null,displayHover:{type:Boolean,default:!1}},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.displayHover,i="".concat(Object(c["a"])(),"workouts/map/").concat(t.workout.map);return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",{class:Object(r["normalizeClass"])(["static-map",{"display-hover":Object(r["unref"])(o)}])},[Object(r["unref"])(o)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("img",{key:0,src:i,alt:""})):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",{key:1,class:"bg-map-image",style:Object(r["normalizeStyle"])({backgroundImage:"url(".concat(i,")")})},null,4)),a],2)}}});n("96a3");const i=o;t["a"]=i},"68cf":function(e,t,n){"use strict";n("9f7c")},"6ac7":function(e,t,n){},"6d7d":function(e,t,n){"use strict";var r=n("7a23"),c=n("97e5"),a=function(e){return Object(r["pushScopeId"])("data-v-462fd850"),e=e(),Object(r["popScopeId"])(),e},o={class:"pagination-center","aria-label":"navigation"},i={class:"pagination"},s=a((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)})),l={key:0},u=a((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)})),d=Object(r["defineComponent"])({props:{pagination:null,path:null,query:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),a=n.pagination,d=n.path,O=n.query;function b(e,t){var n=Object.assign({},O.value);return n.page=t?e+t:e,n}return function(e,t){var n=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("nav",o,[Object(r["createElementVNode"])("ul",i,[Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-prev",{disabled:!Object(r["unref"])(a).has_prev}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(d),query:b(Object(r["unref"])(a).page,-1)},event:Object(r["unref"])(a).has_prev?"click":"",disabled:!Object(r["unref"])(a).has_prev},{default:Object(r["withCtx"])((function(){return[s,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("api.PAGINATION.PREVIOUS")),1)]})),_:1},8,["to","event","disabled"])],2),(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(c["b"])(Object(r["unref"])(a).pages,Object(r["unref"])(a).page),(function(e){return Object(r["openBlock"])(),Object(r["createElementBlock"])("li",{key:e,class:Object(r["normalizeClass"])(["page",{active:e===Object(r["unref"])(a).page}])},["..."===e?(Object(r["openBlock"])(),Object(r["createElementBlock"])("span",l," ... ")):(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:1,class:"page-link",to:{path:Object(r["unref"])(d),query:b(+e)}},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e),1)]})),_:2},1032,["to"]))],2)})),128)),Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-next",{disabled:!Object(r["unref"])(a).has_next}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(d),query:b(Object(r["unref"])(a).page,1)},event:Object(r["unref"])(a).has_next?"click":"",disabled:!Object(r["unref"])(a).has_next},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("api.PAGINATION.NEXT"))+" ",1),u]})),_:1},8,["to","event","disabled"])],2)])])}}}),O=(n("aacd"),n("6b0d")),b=n.n(O);const m=b()(d,[["__scopeId","data-v-462fd850"]]);t["a"]=m},"6d8e":function(e,t,n){"use strict";n("a620")},"6e30":function(e,t,n){},"6f5e":function(e,t,n){},"6fd8":function(e,t,n){},"71a7":function(e,t,n){"use strict";var r=n("7a23"),c=n("b166"),a=n("dad5"),o=n("2906"),i={id:"user-infos",class:"description-list"},s={class:"user-bio"},l={key:1,class:"profile-buttons"},u={key:2,class:"profile-buttons"},d=Object(r["defineComponent"])({props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup:function(e){var t=e,n=Object(o["a"])(),d=Object(r["toRefs"])(t),O=d.user,b=d.fromAdmin,m=Object(r["computed"])((function(){return n.getters[a["a"].GETTERS.AUTH_USER_PROFILE]})),p=Object(r["computed"])((function(){return t.user.created_at?Object(c["a"])(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):""})),E=Object(r["computed"])((function(){return t.user.birth_date?Object(c["a"])(new Date(t.user.birth_date),"dd/MM/yyyy"):""})),f=Object(r["ref"])(!1);function j(e){f.value=e}function T(e){n.dispatch(a["e"].ACTIONS.DELETE_USER_ACCOUNT,{username:e})}return function(e,t){var n=Object(r["resolveComponent"])("Modal");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,[Object(r["unref"])(f)?(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"admin.CONFIRM_USER_ACCOUNT_DELETION",strongMessage:Object(r["unref"])(O).username,onConfirmAction:t[0]||(t[0]=function(e){return T(Object(r["unref"])(O).username)}),onCancelAction:t[1]||(t[1]=function(e){return j(!1)})},null,8,["title","strongMessage"])):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("dl",null,[Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(p)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(O).first_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(O).last_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(E)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(O).location),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIO"))+":",1),Object(r["createElementVNode"])("dd",s,Object(r["toDisplayString"])(Object(r["unref"])(O).bio),1)]),Object(r["unref"])(b)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",l,[Object(r["unref"])(m).username!==Object(r["unref"])(O).username?(Object(r["openBlock"])(),Object(r["createElementBlock"])("button",{key:0,class:"danger",onClick:t[2]||(t[2]=Object(r["withModifiers"])((function(e){return j(!0)}),["prevent"]))},Object(r["toDisplayString"])(e.$t("admin.DELETE_USER")),1)):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("button",{onClick:t[3]||(t[3]=function(t){return e.$router.go(-1)})},Object(r["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",u,[Object(r["createElementVNode"])("button",{onClick:t[4]||(t[4]=function(t){return e.$router.push("/profile/edit")})},Object(r["toDisplayString"])(e.$t("user.PROFILE.EDIT")),1),Object(r["createElementVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/")})},Object(r["toDisplayString"])(e.$t("common.HOME")),1)]))])}}}),O=(n("423b"),n("6b0d")),b=n.n(O);const m=b()(d,[["__scopeId","data-v-7da6fc6b"]]);t["a"]=m},7390:function(e,t,n){"use strict";n("7415")},7415:function(e,t,n){},7416:function(e,t,n){"use strict";n.d(t,"a",(function(){return g})),n.d(t,"b",(function(){return k})),n.d(t,"c",(function(){return v}));n("d81d"),n("caad"),n("4de4"),n("d3b7"),n("2532");var r=n("b166"),c=n("d6e9"),a=n("b1d0"),o=n("69eb"),i=n("a618"),s=n("f628"),l=n("1aab"),u=n("2fc8"),d=n("8cac"),O=n("cdb6"),b=n("fc4c"),m=n("af8b"),p=n("74b5"),E=n("5e65"),f=n("1119"),j=n("6284"),T={week:{api:"yyyy-MM-dd",chart:"dd/MM/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},S=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],_=function(e,t){for(var n=[],r=Object(E["d"])(e.duration,e.start,t);r<=e.end;r=Object(E["e"])(e.duration,r))n.push(r);return n},A=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},N=function(e){var t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((function(e){var n=e.color?e.color:f["c"][e.label];t.average_speed.push(A(e.label,n,!0)),t.nb_workouts.push(A(e.label,n)),t.total_distance.push(A(e.label,n)),t.total_duration.push(A(e.label,n)),t.total_ascent.push(A(e.label,n)),t.total_descent.push(A(e.label,n))})),t},R=function(e,t,n){switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return Object(j["b"])(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},g=function(e,t,n,c,a,o){var i=_(e,t),s=T[e.duration],l=n.filter((function(e){return c.includes(e.id)})),u=[],d=N(l),O={};return l.map((function(e){return O[e.label]=e.id})),i.map((function(e){var t=Object(r["a"])(e,s.api),n=Object(r["a"])(e,s.chart);u.push(n),S.map((function(e){d[e].map((function(n){n.data.push(a!=={}&&t in a&&O[n.label]in a[t]?R(e,a[t][O[n.label]][e],o):"average_speed"===e?null:0)}))}))})),{labels:u,datasets:d}},k=function(e,t,n){var r=n?1:0,O="year"===t?Object(c["a"])(Object(a["a"])(e,9)):"week"===t?Object(o["a"])(Object(i["a"])(e,2),{weekStartsOn:r}):Object(s["a"])(Object(i["a"])(e,11)),b="year"===t?Object(l["a"])(e):"week"===t?Object(u["a"])(e,{weekStartsOn:r}):Object(d["a"])(e);return{duration:t,end:b,start:O}},v=function(e,t,n){var r=e.duration,E=e.start,f=e.end,j=n?1:0;return{duration:r,end:"year"===r?Object(l["a"])(t?Object(a["a"])(f,1):Object(O["a"])(f,1)):"week"===r?Object(u["a"])(t?Object(b["a"])(f,1):Object(m["a"])(f,1),{weekStartsOn:j}):Object(d["a"])(t?Object(i["a"])(f,1):Object(p["a"])(f,1)),start:"year"===r?Object(c["a"])(t?Object(a["a"])(E,1):Object(O["a"])(E,1)):"week"===r?Object(o["a"])(t?Object(b["a"])(E,1):Object(m["a"])(E,1),{weekStartsOn:j}):Object(s["a"])(t?Object(i["a"])(E,1):Object(p["a"])(E,1))}}},"76bb":function(e,t,n){},7826:function(e,t,n){},7875:function(e,t,n){},"7a25":function(e,t,n){"use strict";n("d08c")},"7a774":function(e,t,n){},"7cc4":function(e,t,n){"use strict";n("64bb")},"7d95":function(e,t,n){"use strict";n("7a774")},"83d9":function(e,t,n){},"88c3":function(e,t,n){"use strict";n("d3b7"),n("159b"),n("ddb0"),n("ac1f"),n("466d");var r=n("47e2");function c(){var e=n("e7b6"),t={};return e.keys().forEach((function(n){var r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){var c=r[1];t[c]=e(n).default}})),t}t["a"]=Object(r["a"])({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:c()})},8907:function(e,t,n){},"8a27":function(e,t,n){},9176:function(e,t,n){"use strict";n("4e82"),n("99af");var r=n("7a23"),c={class:"table-selects"},a=["value"],o=["value"],i=["value"],s=["value"],l=["value"],u=["value"],d=Object(r["defineComponent"])({props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup:function(e,t){var n=t.emit,d=e,O=Object(r["toRefs"])(d),b=O.order_by,m=O.query,p=O.sort,E=O.message,f=[10,25,50,100];function j(e){n("updateSelect",e.target.id,e.target.value)}return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order_by",id:"order_by",value:Object(r["unref"])(m).order_by,onChange:j},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(b),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("".concat(Object(r["unref"])(E),".").concat(t.toUpperCase()))),9,o)})),128))],40,a)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order",id:"order",value:Object(r["unref"])(m).order,onChange:j},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(p),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.".concat(t.toUpperCase()))),9,s)})),128))],40,i)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"per_page",id:"per_page",value:Object(r["unref"])(m).per_page,onChange:j},[(Object(r["openBlock"])(),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(f,(function(e){return Object(r["createElementVNode"])("option",{value:e,key:e},Object(r["toDisplayString"])(e),9,u)})),64))],40,l)])])}}}),O=(n("a7aa"),n("6b0d")),b=n.n(O);const m=b()(d,[["__scopeId","data-v-72463173"]]);t["a"]=m},9230:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return o}));n("d81d");var r=n("6284"),c=function(e,t,n){var c={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"}},a=[],o=[],i=[];return e.map((function(e){a.push(e.distance),o.push(e.duration),c.speed.data.push(Object(r["b"])("km",e.speed,n)),c.elevation.data.push(Object(r["b"])("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:a,duration_labels:o,datasets:c,coordinates:i}},a=function(e){var t=e.length;if(0===t)return{};var n={};return e.map((function(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},o={order:"desc",order_by:"workout_date"}},"923f":function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return l}));n("d81d");var r=n("8923"),c=n("d481"),a=n("88c3"),o={en:r["a"],fr:c["a"]},i={en:"English",fr:"Français"},s=a["a"].global.availableLocales,l=s.map((function(e){return{label:i[e],value:e}}))},9303:function(e,t,n){"use strict";n("2386")},"96a3":function(e,t,n){"use strict";n("ef3f")},"97e5":function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"b",(function(){return d}));n("caad"),n("2532"),n("a630"),n("3ca3"),n("99af");var r=["asc","desc"],c=1,a=10,o=function(e,t){return e&&"string"===typeof e&&+e>0?+e:t},i=function(e,t,n){return e&&"string"===typeof e&&t.includes(e)?e:n},s=function(e,t,n,s){var l=s||{},u=l.defaultSort||"asc",d={};return d.page=o(e.page,c),d.per_page=o(e.per_page,a),d.order=i(e.order,r,u),d.order_by=i(e.order_by,t,n),d},l=["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=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Array.from({length:e-t+1},(function(e,n){return t+n}))},d=function(e,t){if(e<0)return[];if(e<9)return u(e);var 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]0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Cn,[Object(c["createElementVNode"])("div",Dn,[Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",yn,[Object(c["createElementVNode"])("button",{class:"cancel",onClick:t[0]||(t[0]=Object(c["withModifiers"])((function(t){return e.$router.push("/profile/sports")}),["prevent"]))},Object(c["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Un,[Object(c["createElementVNode"])("button",{onClick:t[1]||(t[1]=function(t){return e.$router.push("/profile/edit/sports")})},Object(c["toDisplayString"])(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),Object(c["createElementVNode"])("button",{onClick:t[2]||(t[2]=function(t){return e.$router.push("/")})},Object(c["toDisplayString"])(e.$t("common.HOME")),1)]))]),Object(c["createElementVNode"])("table",null,[Object(c["createElementVNode"])("thead",null,[Object(c["createElementVNode"])("tr",null,[Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.COLOR")),1),Object(c["createElementVNode"])("th",Pn,Object(c["toDisplayString"])(e.$t("workouts.SPORT",0)),1),Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("workouts.WORKOUT",0)),1),Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("th",wn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.ACTION")),1)):Object(c["createCommentVNode"])("",!0)])]),Object(c["createElementVNode"])("tbody",null,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(b),(function(a){return Object(c["openBlock"])(),Object(c["createElementBlock"])("tr",{key:a.id},[Object(c["createElementVNode"])("td",null,[Object(c["createElementVNode"])("span",Ln,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.COLOR")),1),j(a.id)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("input",{key:0,class:"sport-color",type:"color",value:Object(c["unref"])(E).color,onInput:T},null,40,Mn)):(Object(c["openBlock"])(),Object(c["createBlock"])(n,{key:1,title:a.translatedLabel,"sport-label":a.label,color:a.color?a.color:Object(c["unref"])(d)[a.label]},null,8,["title","sport-label","color"]))]),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["sport-label",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",Bn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.LABEL")),1),Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(a.translatedLabel)+" ",1),a.is_active?Object(c["createCommentVNode"])("",!0):(Object(c["openBlock"])(),Object(c["createElementBlock"])("span",Vn," ("+Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),Object(c["unref"])(m)&&j(a.id)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("i",zn)):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(p)&&Object(c["unref"])(E).sport_id===a.id?(Object(c["openBlock"])(),Object(c["createBlock"])(r,{key:2,message:Object(c["unref"])(p)},null,8,["message"])):Object(c["createCommentVNode"])("",!0)],2),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["text-center",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",xn,Object(c["toDisplayString"])(e.$t("workouts.WORKOUT",0)),1),Object(c["createElementVNode"])("i",{class:Object(c["normalizeClass"])("fa fa".concat(Object(c["unref"])(u).sports_list.includes(a.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["text-center",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",Gn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),j(a.id)&&a.is_active?(Object(c["openBlock"])(),Object(c["createElementBlock"])("input",{key:0,type:"checkbox",checked:a.is_active_for_user,onChange:_},null,40,Fn)):(Object(c["openBlock"])(),Object(c["createElementBlock"])("i",{key:1,class:Object(c["normalizeClass"])("fa fa".concat(a.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["text-center",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",Wn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),j(a.id)&&a.is_active?(Object(c["openBlock"])(),Object(c["createElementBlock"])("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:Object(c["unref"])(E).stopped_speed_threshold,onInput:S},null,40,Kn)):(Object(c["openBlock"])(),Object(c["createElementBlock"])("span",$n,Object(c["toDisplayString"])(a.stopped_speed_threshold),1))],2),Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("td",Hn,[Object(c["createElementVNode"])("span",Yn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.ACTION")),1),0===Object(c["unref"])(E).sport_id?(Object(c["openBlock"])(),Object(c["createElementBlock"])("button",{key:0,onClick:function(e){return f(a)}},Object(c["toDisplayString"])(e.$t("buttons.EDIT")),9,qn)):Object(c["createCommentVNode"])("",!0),j(a.id)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Xn,[Object(c["createElementVNode"])("button",{disabled:Object(c["unref"])(m),onClick:N},Object(c["toDisplayString"])(e.$t("buttons.SUBMIT")),9,Zn),Object(c["createElementVNode"])("button",{disabled:Object(c["unref"])(m),onClick:function(e){return R(e,a.id)}},Object(c["toDisplayString"])(e.$t("buttons.RESET")),9,Jn),Object(c["createElementVNode"])("button",{disabled:Object(c["unref"])(m),onClick:t[3]||(t[3]=function(e){return f(null)})},Object(c["toDisplayString"])(e.$t("buttons.CANCEL")),9,Qn)])):Object(c["createCommentVNode"])("",!0)])):Object(c["createCommentVNode"])("",!0)])})),128))])]),Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",er,[Object(c["createElementVNode"])("button",{class:"cancel",onClick:t[4]||(t[4]=Object(c["withModifiers"])((function(t){return e.$router.push("/profile/sports")}),["prevent"]))},Object(c["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",tr,[Object(c["createElementVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/profile/edit/sports")})},Object(c["toDisplayString"])(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),Object(c["createElementVNode"])("button",{onClick:t[6]||(t[6]=function(t){return e.$router.push("/")})},Object(c["toDisplayString"])(e.$t("common.HOME")),1)]))])):Object(c["createCommentVNode"])("",!0)])}}});n("43c0");const rr=I()(nr,[["__scopeId","data-v-4775544a"]]);var cr=rr,ar=n("0613"),or=n("2909"),ir=n("5530"),sr=n("1556"),lr=n("68c6"),ur=function(e){return Object(c["pushScopeId"])("data-v-c9d1f10c"),e=e(),Object(c["popScopeId"])(),e},dr={class:"timeline-workout"},Or={class:"box"},br={class:"workout-user-date"},mr={class:"workout-user"},pr=["title"],Er={key:0},fr={key:1,class:"no-map"},jr={class:"img"},Tr={class:"data"},Sr=ur((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)})),_r={key:0},Ar={class:"data"},Nr=ur((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)})),Rr={key:0,class:"data elevation"},gr=["alt"],kr={class:"data-values"},vr=Object(c["createTextVNode"])("/ "),Ir={key:1,class:"data altitude"},hr=ur((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)})),Cr={class:"data-values"},Dr=Object(c["createTextVNode"])(" +"),yr=Object(c["createTextVNode"])("/- "),Ur=Object(c["defineComponent"])({props:{user:null,useImperialUnits:{type:Boolean},workout:{default:function(){return{}}},sport:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(o["a"])(),r=Object(c["toRefs"])(t),i=r.user,s=r.workout,l=r.sport,u=r.useImperialUnits,d=Object(c["computed"])((function(){return n.getters[a["b"].GETTERS.LOCALE]}));return function(e,t){var n=Object(c["resolveComponent"])("router-link"),r=Object(c["resolveComponent"])("SportImage"),a=Object(c["resolveComponent"])("Distance");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",dr,[Object(c["createElementVNode"])("div",Or,[Object(c["createElementVNode"])("div",br,[Object(c["createElementVNode"])("div",mr,[Object(c["createVNode"])(ve["a"],{user:Object(c["unref"])(i)},null,8,["user"]),Object(c["unref"])(i).username?(Object(c["openBlock"])(),Object(c["createBlock"])(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:Object(c["unref"])(i).username}}},{default:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(Object(c["unref"])(i).username),1)]})),_:1},8,["to"])):Object(c["createCommentVNode"])("",!0)]),Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:Object(c["unref"])(s).id}}},{default:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(Object(c["unref"])(s).title),1)]})),_:1},8,["to"])):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(s).workout_date&&Object(c["unref"])(i)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{key:1,class:"workout-date",title:Object(c["unref"])(Re["a"])(Object(c["unref"])(he["c"])(Object(c["unref"])(s).workout_date,Object(c["unref"])(i).timezone),"dd/MM/yyyy HH:mm")},Object(c["toDisplayString"])(Object(c["unref"])(sr["a"])(new Date(Object(c["unref"])(s).workout_date),new Date,{addSuffix:!0,locale:Object(c["unref"])(d)})),9,pr)):Object(c["createCommentVNode"])("",!0)]),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["workout-map",{"no-cursor":!Object(c["unref"])(s)}]),onClick:t[0]||(t[0]=function(t){return Object(c["unref"])(s).id?e.$router.push({name:"Workout",params:{workoutId:Object(c["unref"])(s).id}}):null})},[Object(c["unref"])(s)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Er,[Object(c["unref"])(s).with_gpx?(Object(c["openBlock"])(),Object(c["createBlock"])(lr["a"],{key:0,workout:Object(c["unref"])(s)},null,8,["workout"])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",fr,Object(c["toDisplayString"])(e.$t("workouts.NO_MAP")),1))])):Object(c["createCommentVNode"])("",!0)],2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["workout-data",{"without-gpx":Object(c["unref"])(s)&&!Object(c["unref"])(s).with_gpx}]),onClick:t[1]||(t[1]=function(t){return Object(c["unref"])(s).id?e.$router.push({name:"Workout",params:{workoutId:Object(c["unref"])(s).id}}):null})},[Object(c["createElementVNode"])("div",jr,[Object(c["unref"])(l).label?(Object(c["openBlock"])(),Object(c["createBlock"])(r,{key:0,"sport-label":Object(c["unref"])(l).label,color:Object(c["unref"])(l).color},null,8,["sport-label","color"])):Object(c["createCommentVNode"])("",!0)]),Object(c["createElementVNode"])("div",Tr,[Sr,Object(c["unref"])(s)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("span",_r,Object(c["toDisplayString"])(Object(c["unref"])(s).moving),1)):Object(c["createCommentVNode"])("",!0)]),Object(c["createElementVNode"])("div",Ar,[Nr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:0,distance:Object(c["unref"])(s).distance,digits:3,unitFrom:"km",useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0)]),Object(c["unref"])(s)&&Object(c["unref"])(s).with_gpx?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Rr,[Object(c["createElementVNode"])("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,gr),Object(c["createElementVNode"])("div",kr,[Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:0,distance:Object(c["unref"])(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0),vr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:1,distance:Object(c["unref"])(s).max_alt,unitFrom:"m",useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0)])])):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(s)&&Object(c["unref"])(s).with_gpx?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ir,[hr,Object(c["createElementVNode"])("div",Cr,[Dr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:0,distance:Object(c["unref"])(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0),yr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:1,distance:Object(c["unref"])(s).descent,unitFrom:"m",useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0)])])):Object(c["createCommentVNode"])("",!0)],2)])])}}});n("4f8e");const Pr=I()(Ur,[["__scopeId","data-v-c9d1f10c"]]);var wr=Pr,Lr=n("1724"),Mr=n("9230"),Br={id:"timeline"},Vr={class:"section-title"},zr={key:0},xr={key:1},Gr={key:1,class:"more-workouts"},Fr=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(o["a"])(),r=Object(c["toRefs"])(t),i=r.sports,s=r.user,l=Object(c["ref"])(1),u=5,d=t.user.nb_workouts>=u?u:t.user.nb_workouts;Object(c["onBeforeMount"])((function(){return m()}));var O=Object(c["computed"])((function(){return n.getters[a["f"].GETTERS.TIMELINE_WORKOUTS]})),b=Object(c["computed"])((function(){return O.value.length>0&&null!==O.value[O.value.length-1].previous_workout}));function m(){n.dispatch(a["f"].ACTIONS.GET_TIMELINE_WORKOUTS,Object(ir["a"])({page:l.value,per_page:u},Mr["a"]))}function p(){l.value+=1,n.dispatch(a["f"].ACTIONS.GET_MORE_TIMELINE_WORKOUTS,Object(ir["a"])({page:l.value,per_page:u},Mr["a"]))}return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Br,[Object(c["createElementVNode"])("div",Vr,Object(c["toDisplayString"])(e.$t("workouts.LATEST_WORKOUTS")),1),Object(c["unref"])(s).nb_workouts>0&&0===Object(c["unref"])(O).length?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",zr,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(or["a"])(Array(Object(c["unref"])(d)).keys()),(function(e){return Object(c["openBlock"])(),Object(c["createBlock"])(wr,{user:Object(c["unref"])(s),useImperialUnits:Object(c["unref"])(s).imperial_units,key:e},null,8,["user","useImperialUnits"])})),128))])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",xr,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(O),(function(e){return Object(c["openBlock"])(),Object(c["createBlock"])(wr,{workout:e,sport:Object(c["unref"])(O).length>0?Object(c["unref"])(i).filter((function(t){return t.id===e.sport_id}))[0]:null,user:Object(c["unref"])(s),useImperialUnits:Object(c["unref"])(s).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])})),128)),0===Object(c["unref"])(O).length?(Object(c["openBlock"])(),Object(c["createBlock"])(Lr["a"],{key:0})):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(b)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Gr,[Object(c["createElementVNode"])("button",{onClick:p},Object(c["toDisplayString"])(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):Object(c["createCommentVNode"])("",!0)]))])}}});n("ba00");const Wr=I()(Fr,[["__scopeId","data-v-9ef2a9ac"]]);var Kr=Wr,$r=n("74b5"),Hr=n("a618"),Yr=n("f7f1"),qr=n("1ba4"),Xr=n("5888"),Zr=n("4e31"),Jr=(n("fb6a"),["title"]),Qr=Object(c["defineComponent"])({props:{workout:null,sportLabel:null,sportColor:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.workout,a=n.sportLabel;return function(t,n){var o=Object(c["resolveComponent"])("SportImage");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:"calendar-workout",onClick:n[0]||(n[0]=function(e){return t.$router.push({name:"Workout",params:{workoutId:Object(c["unref"])(r).id}})})},[Object(c["createVNode"])(o,{"sport-label":Object(c["unref"])(a),title:Object(c["unref"])(r).title,color:e.sportColor},null,8,["sport-label","title","color"]),Object(c["createElementVNode"])("sup",null,[Object(c["unref"])(r).records.length>0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:Object(c["unref"])(r).records.map((function(e){return" ".concat(t.$t("workouts.RECORD_".concat(e.record_type)))}))},null,8,Jr)):Object(c["createCommentVNode"])("",!0)])])}}});n("374b");const ec=Qr;var tc=ec,nc=(n("4fad"),{class:"donut-chart"}),rc={height:"34",width:"34",viewBox:"0 0 34 34"},cc=["stroke","stroke-dashoffset","transform"],ac=Object(c["defineComponent"])({props:{colors:null,datasets:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.colors,a=n.datasets,o=-90,i=16,s=16,l=14,u=2*Math.PI*l;function d(e,t){return t-e*t}function O(e,t){var n="rotate(".concat(o,", ").concat(i,", ").concat(s,")");return o=360*t+o,n}return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",nc,[(Object(c["openBlock"])(),Object(c["createElementBlock"])("svg",rc,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object.entries(Object(c["unref"])(a)),(function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("g",{key:t},[Object(c["createElementVNode"])("circle",{cx:i,cy:s,r:l,fill:"transparent",stroke:Object(c["unref"])(r)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:O(t,e[1].percentage)},null,8,cc)])})),128))]))])}}});const oc=ac;var ic=oc,sc={class:"calendar-workouts-chart"},lc={class:"workouts-count"},uc={key:0,class:"workouts-pane"},dc={class:"more-workouts"},Oc=Object(c["defineComponent"])({props:{colors:null,datasets:null,sports:null,workouts:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.colors,a=n.datasets,o=n.sports,i=n.workouts,s=Object(c["ref"])(!0);function l(e){e.stopPropagation(),s.value=!s.value}return function(e,t){var n=Object(c["resolveDirective"])("click-outside");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",sc,[Object(c["createElementVNode"])("div",{class:"workouts-chart",onClick:l},[Object(c["createElementVNode"])("div",lc,Object(c["toDisplayString"])(Object(c["unref"])(i).length),1),Object(c["createVNode"])(ic,{datasets:Object(c["unref"])(a),colors:Object(c["unref"])(r)},null,8,["datasets","colors"])]),s.value?Object(c["createCommentVNode"])("",!0):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",uc,[Object(c["withDirectives"])((Object(c["openBlock"])(),Object(c["createElementBlock"])("div",dc,[Object(c["createElementVNode"])("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:l}),(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(i),(function(e,t){return Object(c["openBlock"])(),Object(c["createBlock"])(tc,{key:t,workout:e,sportLabel:Object(c["unref"])(ee["b"])(e,Object(c["unref"])(o))},null,8,["workout","sportLabel"])})),128))])),[[n,l]])]))])}}});n("9d02");const bc=I()(Oc,[["__scopeId","data-v-f372901a"]]);var mc=bc,pc={class:"calendar-workouts"},Ec={class:"desktop-display"},fc={key:0,class:"workouts-display"},jc={key:1,class:"donut-display"},Tc={class:"mobile-display"},Sc={key:0,class:"donut-display"},_c=Object(c["defineComponent"])({props:{workouts:null,sports:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.workouts,a=n.sports,o=Object(c["computed"])((function(){return Object(Mr["c"])(t.workouts)})),i=Object(c["computed"])((function(){return Object(ee["d"])(t.sports)})),s=6;return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",pc,[Object(c["createElementVNode"])("div",Ec,[Object(c["unref"])(r).length<=s?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",fc,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(r).slice(0,s),(function(e,t){return Object(c["openBlock"])(),Object(c["createBlock"])(tc,{key:t,workout:e,sportLabel:Object(c["unref"])(ee["b"])(e,Object(c["unref"])(a)),sportColor:Object(c["unref"])(ee["a"])(e,Object(c["unref"])(a))},null,8,["workout","sportLabel","sportColor"])})),128))])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",jc,[Object(c["createVNode"])(mc,{workouts:Object(c["unref"])(r),sports:Object(c["unref"])(a),datasets:Object(c["unref"])(o),colors:Object(c["unref"])(i)},null,8,["workouts","sports","datasets","colors"])]))]),Object(c["createElementVNode"])("div",Tc,[Object(c["unref"])(r).length>0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Sc,[Object(c["createVNode"])(mc,{workouts:Object(c["unref"])(r),sports:Object(c["unref"])(a),datasets:Object(c["unref"])(o),colors:Object(c["unref"])(i)},null,8,["workouts","sports","datasets","colors"])])):Object(c["createCommentVNode"])("",!0)])])}}});n("e0d4");const Ac=_c;var Nc=Ac,Rc={class:"calendar-cells"},gc={class:"calendar-cell-day"},kc=Object(c["defineComponent"])({props:{currentDay:null,endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.currentDay,a=n.endDate,o=n.sports,i=n.startDate,s=n.timezone,l=n.weekStartingMonday,u=n.workouts,d=Object(c["ref"])([]);function O(){d.value=[];var e=i.value;while(e<=a.value){for(var t=[],n=0;n<7;n++)t.push(e),e=Object(Yr["a"])(e,1);d.value.push(t)}}function b(e){return l.value?[5,6].includes(e):[0,6].includes(e)}function m(e,t){return t?t.filter((function(t){return Object(qr["a"])(Object(he["c"])(t.workout_date,s.value),e)})).reverse():[]}return Object(c["onMounted"])((function(){return O()})),Object(c["watch"])((function(){return t.currentDay}),(function(){return O()})),function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Rc,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(d.value,(function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:"calendar-row",key:t},[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(e,(function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:Object(c["normalizeClass"])(["calendar-cell",{"disabled-cell":!Object(c["unref"])(Xr["a"])(e,Object(c["unref"])(r)),"week-end":b(t),today:Object(c["unref"])(Zr["a"])(e)}]),key:t},[Object(c["createVNode"])(Nc,{workouts:m(e,Object(c["unref"])(u)),sports:Object(c["unref"])(o)},null,8,["workouts","sports"]),Object(c["createElementVNode"])("div",gc,Object(c["toDisplayString"])(Object(c["unref"])(Re["a"])(e,"d")),1)],2)})),128))])})),128))])}}});n("9b92");const vc=kc;var Ic=vc,hc={class:"calendar-days"},Cc=Object(c["defineComponent"])({props:{startDate:null,localeOptions:null},setup:function(e){for(var t=e,n=[],r=0;r<7;r++)n.push(Object(Yr["a"])(t.startDate,r));return function(t,r){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",hc,[(Object(c["openBlock"])(),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(n,(function(t,n){return Object(c["createElementVNode"])("div",{class:"calendar-day",key:n},Object(c["toDisplayString"])(Object(c["unref"])(Re["a"])(t,"EEE",{locale:e.localeOptions})),1)})),64))])}}});n("bbab");const Dc=Cc;var yc=Dc,Uc={class:"calendar-header"},Pc=Object(c["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),wc=[Pc],Lc={class:"calendar-month"},Mc=Object(c["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Bc=[Mc],Vc=Object(c["defineComponent"])({props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup:function(e,t){var n=t.emit,r=e,a=Object(c["toRefs"])(r),o=a.day,i=a.localeOptions;return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Uc,[Object(c["createElementVNode"])("div",{class:"calendar-arrow calendar-arrow-left",onClick:t[0]||(t[0]=function(e){return n("displayPreviousMonth")})},wc),Object(c["createElementVNode"])("div",Lc,[Object(c["createElementVNode"])("span",null,Object(c["toDisplayString"])(Object(c["unref"])(Re["a"])(Object(c["unref"])(o),"MMM yyyy",{locale:Object(c["unref"])(i)})),1)]),Object(c["createElementVNode"])("div",{class:"calendar-arrow calendar-arrow-right",onClick:t[1]||(t[1]=function(e){return n("displayNextMonth")})},Bc)])}}});n("68cf");const zc=Vc;var xc=zc,Gc={id:"user-calendar"},Fc={class:"calendar-card box"},Wc=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(o["a"])(),r=Object(c["toRefs"])(t),i=r.sports,s=r.user,l="yyyy-MM-dd",u=Object(c["ref"])(new Date),d=Object(c["ref"])(Object(he["b"])(u.value,t.user.weekm)),O=Object(c["computed"])((function(){return n.getters[a["f"].GETTERS.CALENDAR_WORKOUTS]})),b=Object(c["computed"])((function(){return n.getters[a["b"].GETTERS.LOCALE]}));function m(){d.value=Object(he["b"])(u.value,t.user.weekm);var e=Object(ir["a"])({from:Object(Re["a"])(d.value.start,l),to:Object(Re["a"])(d.value.end,l),page:1,per_page:100},Mr["a"]);n.dispatch(a["f"].ACTIONS.GET_CALENDAR_WORKOUTS,e)}function p(){u.value=Object($r["a"])(u.value,1),m()}function E(){u.value=Object(Hr["a"])(u.value,1),m()}return Object(c["onBeforeMount"])((function(){return m()})),function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Gc,[Object(c["createElementVNode"])("div",Fc,[Object(c["createVNode"])(xc,{day:Object(c["unref"])(u),"locale-options":Object(c["unref"])(b),onDisplayNextMonth:p,onDisplayPreviousMonth:E},null,8,["day","locale-options"]),Object(c["createVNode"])(yc,{"start-date":Object(c["unref"])(d).start,"locale-options":Object(c["unref"])(b)},null,8,["start-date","locale-options"]),Object(c["createVNode"])(Ic,{currentDay:Object(c["unref"])(u),"end-date":Object(c["unref"])(d).end,sports:Object(c["unref"])(i),"start-date":Object(c["unref"])(d).start,timezone:Object(c["unref"])(s).timezone,workouts:Object(c["unref"])(O),weekStartingMonday:Object(c["unref"])(s).weekm},null,8,["currentDay","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])])}}});n("11f9");const Kc=Wc;var $c=Kc,Hc=n("f628"),Yc=n("8cac"),qc=n("ec59"),Xc={class:"user-month-stats"},Zc=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.sports,a=n.user,o=new Date,i={duration:"week",start:Object(Hc["a"])(o),end:Object(Yc["a"])(o)},s=t.sports.map((function(e){return e.id}));return function(e,t){var n=Object(c["resolveComponent"])("Card");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Xc,[Object(c["createVNode"])(n,null,{title:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(e.$t("dashboard.THIS_MONTH")),1)]})),content:Object(c["withCtx"])((function(){return[Object(c["createVNode"])(qc["a"],{sports:Object(c["unref"])(r),user:Object(c["unref"])(a),"chart-params":i,"displayed-sport-ids":Object(c["unref"])(s),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])]})),_:1})])}}});n("7d95");const Jc=I()(Zc,[["__scopeId","data-v-1bcddc12"]]);var Qc=Jc,ea=(n("4e82"),{class:"records-card"}),ta={class:"record-type"},na={class:"record-value"},ra={class:"record-date"},ca=Object(c["defineComponent"])({props:{records:null,sportTranslatedLabel:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.records,a=n.sportTranslatedLabel;return function(e,t){var n=Object(c["resolveComponent"])("SportImage"),o=Object(c["resolveComponent"])("router-link"),i=Object(c["resolveComponent"])("Card");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",ea,[Object(c["createVNode"])(i,null,{title:Object(c["withCtx"])((function(){return[Object(c["createVNode"])(n,{"sport-label":Object(c["unref"])(r).label,color:Object(c["unref"])(r).color},null,8,["sport-label","color"]),Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(Object(c["unref"])(a)),1)]})),content:Object(c["withCtx"])((function(){return[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(r).records,(function(t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:"record",key:t.id},[Object(c["createElementVNode"])("span",ta,Object(c["toDisplayString"])(e.$t("workouts.RECORD_".concat(t.record_type))),1),Object(c["createElementVNode"])("span",na,Object(c["toDisplayString"])(t.value),1),Object(c["createElementVNode"])("span",ra,[Object(c["createVNode"])(o,{to:{name:"Workout",params:{workoutId:t.workout_id}}},{default:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(t.workout_date),1)]})),_:2},1032,["to"])])])})),128))]})),_:1})])}}});n("b4bc");const aa=I()(ca,[["__scopeId","data-v-aee1f956"]]);var oa=aa,ia=(n("7db0"),n("6284")),sa=function(e,t,n){var r,c="km",a=n?ia["c"][c].defaultTarget:c;switch(e.record_type){case"AS":case"MS":r="".concat(Object(ia["a"])(+e.value,c,a,2)," ").concat(a,"/h");break;case"FD":r="".concat(Object(ia["a"])(+e.value,c,a,3)," ").concat(a);break;case"LD":r=e.value;break;default:throw new Error('Invalid record type, expected: "AS", "FD", "LD", "MD", got: "'.concat(e.record_type,'"'))}return{workout_date:Object(he["a"])(Object(he["c"])(e.workout_date,t)).workout_date,workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:r}},la=function(e,t,n,r){return e.reduce((function(e,c){var a=t.find((function(e){return e.id===c.sport_id}));return a&&a.label&&(void 0===e[a.translatedLabel]&&(e[a.translatedLabel]={label:a.label,color:a.color,records:[]}),e[a.translatedLabel].records.push(sa(c,n,r))),e}),{})},ua=function(e){return Object(c["pushScopeId"])("data-v-ae25a82a"),e=e(),Object(c["popScopeId"])(),e},da={class:"user-records-section"},Oa={class:"section-title"},ba=ua((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)})),ma={class:"user-records"},pa={key:0,class:"no-records"},Ea=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(Q["b"])(),r=n.t,a=Object(c["computed"])((function(){return la(t.user.records,Object(ee["e"])(t.sports,r),t.user.timezone,t.user.imperial_units)}));return function(t,n){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",da,[Object(c["createElementVNode"])("div",Oa,[ba,Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(t.$t("workouts.RECORD",2)),1)]),Object(c["createElementVNode"])("div",ma,[0===Object.keys(Object(c["unref"])(a)).length?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",pa,Object(c["toDisplayString"])(t.$t("workouts.NO_RECORDS")),1)):Object(c["createCommentVNode"])("",!0),(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object.keys(Object(c["unref"])(a)).sort(),(function(t){return Object(c["openBlock"])(),Object(c["createBlock"])(oa,{sportTranslatedLabel:t,records:Object(c["unref"])(a)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])})),128))])])}}});n("c53b");const fa=I()(Ea,[["__scopeId","data-v-ae25a82a"]]);var ja=fa,Ta=(n("b680"),n("1276"),{id:"user-stats"}),Sa=Object(c["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(Q["b"])(),r=n.t,a=Object(c["toRefs"])(t),o=a.user,i=Object(c["computed"])((function(){return t.user.total_duration})),s=Object(c["computed"])((function(){return O(i)})),l="km",u=o.value.imperial_units?ia["c"][l].defaultTarget:l,d=o.value.imperial_units?Object(ia["a"])(o.value.total_distance,l,u,2):parseFloat(o.value.total_distance.toFixed(2));function O(e){var t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?"".concat(e.value.split(" ")[0]," ").concat(e.value.match(/days/g)?r("common.DAY",2):r("common.DAY",1)):"0 ".concat(r("common.DAY",2),","),duration:"".concat(t.split(":")[0],"h ").concat(t.split(":")[1],"min")}}return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ta,[Object(c["createVNode"])(V,{icon:"calendar",value:Object(c["unref"])(o).nb_workouts,text:e.$t("workouts.WORKOUT",Object(c["unref"])(o).nb_workouts)},null,8,["value","text"]),Object(c["createVNode"])(V,{icon:"road",value:Object(c["unref"])(d),text:"mi"===Object(c["unref"])(u)?"miles":Object(c["unref"])(u)},null,8,["value","text"]),Object(c["createVNode"])(V,{icon:"clock-o",value:Object(c["unref"])(s).days,text:Object(c["unref"])(s).duration},null,8,["value","text"]),Object(c["createVNode"])(V,{icon:"tags",value:Object(c["unref"])(o).nb_sports,text:e.$t("workouts.SPORT",Object(c["unref"])(o).nb_sports)},null,8,["value","text"])])}}});n("e5d1");const _a=Sa;var Aa=_a,Na=function(e){return Object(c["pushScopeId"])("data-v-2f390f91"),e=e(),Object(c["popScopeId"])(),e},Ra={key:0,id:"dashboard",class:"view"},ga={class:"container mobile-menu"},ka={class:"box"},va=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1)})),Ia=[va],ha=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1)})),Ca=[ha],Da=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1)})),ya=[Da],Ua=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1)})),Pa=[Ua],wa={class:"container"},La={class:"container dashboard-container"},Ma={class:"left-container dashboard-sub-container"},Ba={class:"right-container dashboard-sub-container"},Va=Na((function(){return Object(c["createElementVNode"])("div",{id:"bottom"},null,-1)})),za={key:1,class:"app-loading"},xa=Object(c["defineComponent"])({setup:function(e){var t=Object(o["a"])(),n=Object(c["computed"])((function(){return t.getters[a["a"].GETTERS.AUTH_USER_PROFILE]})),r=Object(c["computed"])((function(){return t.getters[a["c"].GETTERS.SPORTS]})),i=Object(c["ref"])("calendar");function s(e){i.value=e}return function(e,t){var a=Object(c["resolveComponent"])("Loader");return Object(c["unref"])(n).username&&Object(c["unref"])(r).length>0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ra,[Object(c["createElementVNode"])("div",ga,[Object(c["createElementVNode"])("div",ka,[Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:t[0]||(t[0]=function(e){return s("calendar")})},Ia,2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:t[1]||(t[1]=function(e){return s("chart")})},Ca,2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:t[2]||(t[2]=function(e){return s("timeline")})},ya,2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:t[3]||(t[3]=function(e){return s("records")})},Pa,2)])]),Object(c["createElementVNode"])("div",wa,[Object(c["createVNode"])(Aa,{user:Object(c["unref"])(n)},null,8,["user"])]),Object(c["createElementVNode"])("div",La,[Object(c["createElementVNode"])("div",Ma,[Object(c["createVNode"])(Qc,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),Object(c["createVNode"])(ja,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),Object(c["createElementVNode"])("div",Ba,[Object(c["createVNode"])($c,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),Object(c["createVNode"])(Kr,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),Va])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",za,[Object(c["createVNode"])(a)]))}}});n("3d56");const Ga=I()(xa,[["__scopeId","data-v-2f390f91"]]);var Fa=Ga,Wa=n("f7f9"),Ka={class:"not-found view"},$a=Object(c["defineComponent"])({setup:function(e){return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ka,[Object(c["createVNode"])(Wa["a"])])}}});const Ha=$a;var Ya=Ha,qa={id:"bike"},Xa=["src"];function Za(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",qa,[Object(c["createElementVNode"])("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,Xa)])}n("dc71");const Ja={},Qa=I()(Ja,[["render",Za],["__scopeId","data-v-39d425b4"]]);var eo=Qa,to=n("0395"),no={id:"loginOrRegister",class:"view"},ro={class:"container"},co={class:"container-sub"},ao={class:"container-sub"},oo=Object(c["defineComponent"])({props:{action:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.action;return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",no,[Object(c["createElementVNode"])("div",ro,[Object(c["createElementVNode"])("div",co,[Object(c["createVNode"])(eo)]),Object(c["createElementVNode"])("div",ao,[Object(c["createVNode"])(to["a"],{action:Object(c["unref"])(r)},null,8,["action"])])])])}}});n("db41");const io=I()(oo,[["__scopeId","data-v-6a38125b"]]);var so=io,lo=function(e){var t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},uo=[{path:"/",name:"Dashboard",component:Fa},{path:"/login",name:"Login",component:so,props:{action:"login"}},{path:"/register",name:"Register",component:so,props:{action:"register"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"reset"}},{path:"/profile",name:"Profile",component:function(){return n.e("profile").then(n.bind(null,"36e8"))},children:[{path:"",name:"UserProfile",component:st,props:function(e){return{tab:lo(e.path)}},children:[{path:"",name:"UserInfos",component:lt["a"]},{path:"preferences",name:"UserPreferences",component:pt},{path:"sports",name:"UserSportPreferences",component:cr,props:{isEdition:!1}}]},{path:"edit",name:"UserProfileEdition",component:Tt,props:function(e){return{tab:lo(e.path)}},children:[{path:"",name:"UserInfosEdition",component:Wt},{path:"picture",name:"UserPictureEdition",component:nn},{path:"preferences",name:"UserPreferencesEdition",component:In},{path:"sports",name:"UserSportPreferencesEdition",component:cr,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:function(){return n.e("statistics").then(n.bind(null,"ccb2"))}},{path:"/users/:username",name:"User",component:function(){return n.e("profile").then(n.bind(null,"ad3d"))}},{path:"/workouts",name:"Workouts",component:function(){return n.e("workouts").then(n.bind(null,"0385"))}},{path:"/workouts/:workoutId",name:"Workout",component:function(){return n.e("workouts").then(n.bind(null,"304a"))},props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:function(){return n.e("workouts").then(n.bind(null,"8ee9"))}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:function(){return n.e("workouts").then(n.bind(null,"304a"))},props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:function(){return n.e("workouts").then(n.bind(null,"692d"))}},{path:"/admin",name:"Administration",component:function(){return n.e("admin").then(n.bind(null,"89b3"))},children:[{path:"",name:"AdministrationMenu",component:J},{path:"application",name:"ApplicationAdministration",component:C},{path:"application/edit",name:"ApplicationAdministrationEdition",component:C,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:Ne},{path:"users",name:"UsersAdministration",component:Xe}]},{path:"/:pathMatch(.*)*",name:"not-found",component:Ya}],Oo=Object(r["a"])({history:Object(r["b"])("/"),routes:uo}),bo=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register"];Oo.beforeEach((function(e,t,n){ar["a"].dispatch(a["a"].ACTIONS.CHECK_AUTH_USER).then((function(){if(ar["a"].getters[a["a"].GETTERS.IS_AUTHENTICATED]&&bo.includes(e.path))return n("/");if(ar["a"].getters[a["a"].GETTERS.IS_AUTHENTICATED]||bo.includes(e.path))n();else{var t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((function(e){console.error(e),n()}))}));t["a"]=Oo},b3f6:function(e,t,n){"use strict";n("c661")},b4bc:function(e,t,n){"use strict";n("5140")},b633:function(e,t,n){"use strict";n("04be")},ba00:function(e,t,n){"use strict";n("15bf")},bbab:function(e,t,n){"use strict";n("6f5e")},bc3e:function(e,t,n){},be8b:function(e,t,n){"use strict";n("2edc")},c142:function(e,t,n){"use strict";n.r(t);var r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},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."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},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."])},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)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"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."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Password: 8 characters required."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Sorry, that user already exists."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Username: 3 to 12 characters required."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},a={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"])}},o={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems encounter some issues.
Please try 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"])}}},l={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},d={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"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Enter an email address"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirm the 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"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirm Password"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Password confirmation"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_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:{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"])},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"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])}},O={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farest distance"])},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_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}};t["default"]={admin:r,api:c,buttons:a,common:o,dashboard:i,error:s,sports:l,statistics:u,user:d,workouts:O}},c364:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return a}));n("b680"),n("99af");var r=["bytes","KB","MB","GB","TB"],c=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};var c=(e/Math.pow(1024,n)).toFixed(1),a=r[n];return t?"".concat(c).concat(a):{size:c,suffix:a}},a=function(e){var t=e/1048576;return+t.toFixed(2)}},c46a:function(e,t,n){"use strict";n("99af");var r=n("7a23"),c=n("d257"),a={class:"user-picture"},o=["alt","src"],i={key:1,class:"no-picture"},s=Object(r["createElementVNode"])("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),l=[s],u=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["computed"])((function(){return t.user.picture?"".concat(Object(c["a"])(),"users/").concat(t.user.username,"/picture"):""}));return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,[""!==Object(r["unref"])(n)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:Object(r["unref"])(n)},null,8,o)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,l))])}}});n("aa08");const d=u;t["a"]=d},c53b:function(e,t,n){"use strict";n("aa3b")},c57d:function(e,t,n){},c661:function(e,t,n){},cb9e:function(e,t,n){"use strict";n("633e")},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b0c0");var r=n("9b4a"),c=n("d9fa"),a=n("7a23"),o=n("9483");Object(o["a"])("".concat("/","service-worker.js"),{ready:function(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered:function(){console.log("Service worker has been registered.")},cached:function(){console.log("Content has been cached for offline use.")},updatefound:function(){console.log("New content is downloading.")},updated:function(){console.log("New content is available; please refresh.")},offline:function(){console.log("No internet connection found. App is running in offline mode.")},error:function(e){console.error("Error during service worker registration:",e)}});var i=function(e){return Object(a["pushScopeId"])("data-v-75ada372"),e=e(),Object(a["popScopeId"])(),e},s={id:"footer"},l={class:"footer-items"},u={class:"footer-item"},d=i((function(){return Object(a["createElementVNode"])("strong",null,"FitTrackee",-1)})),O=Object(a["createStaticVNode"])('',4),b=Object(a["defineComponent"])({props:{version:null},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.version;return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",s,[Object(a["createElementVNode"])("div",l,[Object(a["createElementVNode"])("div",u,[d,Object(a["createTextVNode"])(" v"+Object(a["toDisplayString"])(Object(a["unref"])(r)),1)]),O])])}}}),m=(n("d4e1"),n("6b0d")),p=n.n(m);const E=p()(b,[["__scopeId","data-v-75ada372"]]);var f=E,j=(n("25f0"),n("47e2")),T=n("c46a"),S=n("dad5"),_=n("2906"),A=n("923f"),N=function(e){return Object(a["pushScopeId"])("data-v-6259410f"),e=e(),Object(a["popScopeId"])(),e},R={id:"nav"},g={class:"nav-container"},k={class:"nav-app-name"},v={class:"nav-items-close"},I=N((function(){return Object(a["createElementVNode"])("div",{class:"app-name"},"FitTrackee",-1)})),h={key:0,class:"nav-items-group"},C=N((function(){return Object(a["createElementVNode"])("div",{class:"nav-item nav-separator"},null,-1)})),D={class:"nav-items-user-menu"},y={key:0,class:"nav-items-group"},U={class:"nav-item nav-profile-img"},P={key:1,class:"nav-items-group"},w=N((function(){return Object(a["createElementVNode"])("i",{class:"fa fa-language"},null,-1)})),L=Object(a["defineComponent"])({emits:["menuInteraction"],setup:function(e,t){var n=t.emit,r=Object(j["b"])(),c=r.locale,o=Object(_["a"])(),i=Object(a["computed"])((function(){return o.getters[S["a"].GETTERS.AUTH_USER_PROFILE]})),s=Object(a["computed"])((function(){return o.getters[S["a"].GETTERS.IS_AUTHENTICATED]})),l=Object(a["computed"])((function(){return o.getters[S["b"].GETTERS.LANGUAGE]})),u=Object(a["ref"])(!1);function d(){u.value=!0,n("menuInteraction",!0)}function O(){u.value=!1,n("menuInteraction",!1)}function b(e){c.value=e.value.toString(),o.commit(S["b"].MUTATIONS.UPDATE_LANG,e.value)}function m(){o.dispatch(S["a"].ACTIONS.LOGOUT)}return function(e,t){var n=Object(a["resolveComponent"])("router-link"),r=Object(a["resolveComponent"])("Dropdown");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",R,[Object(a["createElementVNode"])("div",g,[Object(a["createElementVNode"])("div",k,[Object(a["createElementVNode"])("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=function(t){return e.$router.push("/")})}," FitTrackee ")]),Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["nav-icon-open",{"menu-open":Object(a["unref"])(u)}])},[Object(a["createElementVNode"])("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=function(e){return d()})})],2),Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["nav-items",{"menu-open":Object(a["unref"])(u)}])},[Object(a["createElementVNode"])("div",v,[I,Object(a["createElementVNode"])("i",{class:Object(a["normalizeClass"])(["fa fa-close close-icon nav-item",{"menu-closed":!Object(a["unref"])(u)}]),onClick:t[2]||(t[2]=function(e){return O()})},null,2)]),Object(a["createElementVNode"])("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=function(e){return O()})},[Object(a["unref"])(s)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",h,[Object(a["createVNode"])(n,{class:"nav-item",to:"/"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("dashboard.DASHBOARD")),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/workouts"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(Object(a["capitalize"])(e.$t("workouts.WORKOUT",2))),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/statistics"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("statistics.STATISTICS")),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/workouts/add"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("workouts.ADD_WORKOUT")),1)]})),_:1}),Object(a["unref"])(s)&&Object(a["unref"])(i).admin?(Object(a["openBlock"])(),Object(a["createBlock"])(n,{key:0,class:"nav-item",to:"/admin"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.ADMIN")),1)]})),_:1})):Object(a["createCommentVNode"])("",!0),C])):Object(a["createCommentVNode"])("",!0)]),Object(a["createElementVNode"])("div",D,[Object(a["unref"])(s)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",y,[Object(a["createElementVNode"])("div",U,[Object(a["createVNode"])(T["a"],{user:Object(a["unref"])(i)},null,8,["user"])]),Object(a["createVNode"])(n,{class:"nav-item",to:"/profile",onClick:O},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(Object(a["unref"])(i).username),1)]})),_:1}),Object(a["createElementVNode"])("div",{class:"nav-item nav-link",onClick:m},Object(a["toDisplayString"])(e.$t("user.LOGOUT")),1)])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",P,[Object(a["createVNode"])(n,{class:"nav-item",to:"/login",onClick:O},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.LOGIN")),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/register",onClick:O},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.REGISTER")),1)]})),_:1})])),Object(a["unref"])(A["a"])&&Object(a["unref"])(l)?(Object(a["openBlock"])(),Object(a["createBlock"])(r,{key:2,class:"nav-item",options:Object(a["unref"])(A["a"]),selected:Object(a["unref"])(l),onSelected:b},{default:Object(a["withCtx"])((function(){return[w]})),_:1},8,["options","selected"])):Object(a["createCommentVNode"])("",!0)])],2)])])}}});n("7cc4");const M=p()(L,[["__scopeId","data-v-6259410f"]]);var B=M,V={id:"no-config"},z={class:"error-page"},x=Object(a["createStaticVNode"])('
',1),G=["innerHTML"];function F(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",V,[Object(a["createElementVNode"])("div",z,[x,Object(a["createElementVNode"])("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,G)])])}n("4c29");const W={},K=p()(W,[["render",F],["__scopeId","data-v-1596efb7"]]);var $=K,H=Object(a["createElementVNode"])("div",{id:"top"},null,-1),Y={key:0,class:"app-container"},q={class:"app-loading"},X={class:"container scroll"},Z=Object(a["createElementVNode"])("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),J=[Z],Q=Object(a["defineComponent"])({setup:function(e){var t=Object(_["a"])(),n=Object(a["computed"])((function(){return t.getters[S["b"].GETTERS.APP_CONFIG]})),r=Object(a["computed"])((function(){return t.getters[S["b"].GETTERS.APP_LOADING]})),c=Object(a["ref"])(!1),o=Object(a["ref"])(!1);function i(e){c.value=e}function s(e){return e.getBoundingClientRect().top=0}function l(){window.onscroll=function(){var e=document.querySelector("#bottom");o.value=null!==e&&s(e)}}function u(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((function(){o.value=!1}),300)}return Object(a["onBeforeMount"])((function(){return t.dispatch(S["b"].ACTIONS.GET_APPLICATION_CONFIG)})),Object(a["onMounted"])((function(){return l()})),function(e,t){var s=Object(a["resolveComponent"])("Loader"),l=Object(a["resolveComponent"])("router-view");return Object(a["openBlock"])(),Object(a["createElementBlock"])(a["Fragment"],null,[H,Object(a["createVNode"])(B,{onMenuInteraction:i}),Object(a["unref"])(r)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Y,[Object(a["createElementVNode"])("div",q,[Object(a["createVNode"])(s)])])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:1,class:Object(a["normalizeClass"])(["app-container",{"hide-scroll":c.value}])},[Object(a["unref"])(n)?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0})):(Object(a["openBlock"])(),Object(a["createBlock"])($,{key:1}))],2)),Object(a["createElementVNode"])("div",X,[Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["scroll-button",{"display-button":o.value}]),onClick:u},J,2)]),Object(a["unref"])(n)?(Object(a["openBlock"])(),Object(a["createBlock"])(f,{key:2,version:Object(a["unref"])(n)?Object(a["unref"])(n).version:""},null,8,["version"])):Object(a["createCommentVNode"])("",!0)],64)}}});n("6112");const ee=Q;var te=ee,ne=n("88c3"),re=n("afbc"),ce=n("0613"),ae={class:"alert-message"},oe=["innerHTML"],ie=Object(a["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.message;return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",ae,[Object(a["createElementVNode"])("div",{innerHTML:e.$t(Object(a["unref"])(r))},null,8,oe)])}}});n("268c");const se=p()(ie,[["__scopeId","data-v-69d7e4ff"]]);var le=se,ue=n("19e8"),de={class:"custom-textarea"},Oe=["id","name","maxLenght","disabled"],be={class:"remaining-chars"},me=Object(a["defineComponent"])({props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup:function(e,t){var n=t.emit,r=e,c=Object(a["ref"])("");function o(e){n("updateValue",e.target.value)}return Object(a["watch"])((function(){return r.input}),(function(e){c.value=e})),function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",de,[Object(a["withDirectives"])(Object(a["createElementVNode"])("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=function(e){return Object(a["isRef"])(c)?c.value=e:c=e}),onInput:o},null,40,Oe),[[a["vModelText"],Object(a["unref"])(c)]]),Object(a["createElementVNode"])("div",be,Object(a["toDisplayString"])(t.$t("workouts.REMAINING_CHARS"))+": "+Object(a["toDisplayString"])(Object(a["unref"])(c).length)+"/"+Object(a["toDisplayString"])(e.charLimit),1)])}}});n("f61d");const pe=p()(me,[["__scopeId","data-v-3ec2aca2"]]);var Ee=pe,fe=(n("b680"),n("6284")),je=Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(" ")+" "),Te=Object(a["defineComponent"])({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:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.digits,c=n.displayUnit,o=n.distance,i=n.speed,s=n.strong,l=n.unitFrom,u=n.useImperialUnits,d=Object(a["computed"])((function(){return u.value?fe["c"][l.value].defaultTarget:l.value})),O=Object(a["computed"])((function(){return u.value?Object(fe["a"])(o.value,l.value,d.value,r.value):parseFloat(o.value.toFixed(r.value))}));return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])(a["Fragment"],null,[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])(["distance",{strong:Object(a["unref"])(s)}])},Object(a["toDisplayString"])(Object(a["unref"])(O)),3),je,Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,class:Object(a["normalizeClass"])(["unit",{strong:Object(a["unref"])(s)}])},Object(a["toDisplayString"])(Object(a["unref"])(d))+Object(a["toDisplayString"])(Object(a["unref"])(i)?"/h":""),3)):Object(a["createCommentVNode"])("",!0)],64)}}});n("9aea");const Se=p()(Te,[["__scopeId","data-v-f46ff1d6"]]);var _e=Se,Ae=(n("d81d"),n("6c02")),Ne={class:"dropdown-wrapper"},Re={key:0,class:"dropdown-list"},ge=["onClick"],ke=Object(a["defineComponent"])({props:{options:null,selected:null},emits:{selected:function(e){return e}},setup:function(e,t){var n=t.emit,r=e,c=Object(Ae["c"])(),o=Object(a["ref"])(!1),i=r.options.map((function(e){return e}));function s(){o.value=!o.value}function l(e){n("selected",e),o.value=!1}return Object(a["watch"])((function(){return c.path}),(function(){return o.value=!1})),function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ne,[Object(a["createElementVNode"])("div",{class:"dropdown-selected",onClick:s},[Object(a["renderSlot"])(t.$slots,"default")]),Object(a["unref"])(o)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("ul",Re,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(Object(a["unref"])(i),(function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:function(e){return l(t)}},Object(a["toDisplayString"])(t.label),11,ge)})),128))])):Object(a["createCommentVNode"])("",!0)])}}});n("55a6");const ve=p()(ke,[["__scopeId","data-v-ca61364c"]]);var Ie=ve,he={class:"error-message"},Ce={key:0},De={key:1},ye=Object(a["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.message;return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",he,[Array.isArray(Object(a["unref"])(r))?(Object(a["openBlock"])(),Object(a["createElementBlock"])("ul",Ce,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(Object(a["unref"])(r),(function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{key:n},Object(a["toDisplayString"])(e.$t(t)),1)})),128))])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",De,Object(a["toDisplayString"])(e.$t(Object(a["unref"])(r))),1))])}}});n("3a2a");const Ue=p()(ye,[["__scopeId","data-v-2659a79a"]]);var Pe=Ue,we={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"},Le=Object(a["createElementVNode"])("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Me=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),Be=[Le,Me];function Ve(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",we,Be)}var ze={name:"CyclingSport"};const xe=p()(ze,[["render",Ve]]);var Ge=xe,Fe={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"},We=Object(a["createElementVNode"])("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Ke=Object(a["createElementVNode"])("g",{id:"g147"},[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),$e=[We,Ke];function He(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Fe,$e)}var Ye={name:"CyclingTransport"};const qe=p()(Ye,[["render",He]]);var Xe=qe,Ze={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"},Je=Object(a["createElementVNode"])("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Qe=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),et=[Je,Qe];function tt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Ze,et)}var nt={name:"Hiking"};const rt=p()(nt,[["render",tt]]);var ct=rt,at={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"},ot=Object(a["createElementVNode"])("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),it=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),st=[ot,it];function lt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",at,st)}var ut={name:"MountainBiking"};const dt=p()(ut,[["render",lt]]);var Ot=dt,bt={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"},mt=Object(a["createStaticVNode"])(' silhouette of a person riding an electric mountain bike ',18),pt=[mt];function Et(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",bt,pt)}var ft={name:"MountainBikingElectric"};const jt=p()(ft,[["render",Et]]);var Tt=jt,St={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"},_t=Object(a["createElementVNode"])("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),At=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Nt=[_t,At];function Rt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",St,Nt)}var gt={name:"Rowing"};const kt=p()(gt,[["render",Rt]]);var vt=kt,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 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve"},ht=Object(a["createElementVNode"])("desc",{id:"runningDescription"},"silhouette of a running person",-1),Ct=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),Dt=[ht,Ct];function yt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",It,Dt)}var Ut={name:"Running"};const Pt=p()(Ut,[["render",yt]]);var wt=Pt,Lt={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"},Mt=Object(a["createElementVNode"])("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Bt=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),Vt=[Mt,Bt];function zt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Lt,Vt)}var xt={name:"SkiingAlpine"};const Gt=p()(xt,[["render",zt]]);var Ft=Gt,Wt={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"},Kt=Object(a["createElementVNode"])("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),$t=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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),Ht=[Kt,$t];function Yt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Wt,Ht)}var qt={name:"SkiingCrossCountry"};const Xt=p()(qt,[["render",Yt]]);var Zt=Xt,Jt={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"},Qt=Object(a["createStaticVNode"])('silhouette of a person with snowshoes',6),en=[Qt];function tn(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Jt,en)}var nn={name:"Snowshoes"};const rn=p()(nn,[["render",tn]]);var cn=rn,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 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},on=Object(a["createElementVNode"])("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),sn=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),ln=[on,sn];function un(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",an,ln)}var dn={name:"Trail"};const On=p()(dn,[["render",un]]);var bn=On,mn={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"},pn=Object(a["createStaticVNode"])('silhouette of a walking person',3),En=[pn];function fn(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",mn,En)}var jn={name:"Walking"};const Tn=p()(jn,[["render",fn]]);var Sn=Tn,_n=["title"],An=Object(a["defineComponent"])({props:{sportLabel:null,color:null,title:{default:""}},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.color,c=n.sportLabel,o=n.title,i=Object(a["inject"])("sportColors");return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"sport-img",style:Object(a["normalizeStyle"])({fill:Object(a["unref"])(r)?Object(a["unref"])(r):Object(a["unref"])(i)[Object(a["unref"])(c)]}),title:Object(a["unref"])(o)?Object(a["unref"])(o):e.$t("sports.".concat(Object(a["unref"])(c),".LABEL"))},["Cycling (Sport)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Ge,{key:0})):Object(a["createCommentVNode"])("",!0),"Cycling (Transport)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Xe,{key:1})):Object(a["createCommentVNode"])("",!0),"Hiking"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(ct,{key:2})):Object(a["createCommentVNode"])("",!0),"Mountain Biking"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Ot,{key:3})):Object(a["createCommentVNode"])("",!0),"Mountain Biking (Electric)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Tt,{key:4})):Object(a["createCommentVNode"])("",!0),"Rowing"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(vt,{key:5})):Object(a["createCommentVNode"])("",!0),"Running"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(wt,{key:6})):Object(a["createCommentVNode"])("",!0),"Skiing (Alpine)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Ft,{key:7})):Object(a["createCommentVNode"])("",!0),"Skiing (Cross Country)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Zt,{key:8})):Object(a["createCommentVNode"])("",!0),"Snowshoes"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(cn,{key:9})):Object(a["createCommentVNode"])("",!0),"Trail"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(bn,{key:10})):Object(a["createCommentVNode"])("",!0),"Walking"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Sn,{key:11})):Object(a["createCommentVNode"])("",!0)],12,_n)}}});const Nn=An;var Rn=Nn,gn={class:"loader"};function kn(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",gn)}n("3306");const vn={},In=p()(vn,[["render",kn],["__scopeId","data-v-4c9921ee"]]);var hn=In,Cn={id:"modal"},Dn={class:"custom-modal"},yn={key:0,class:"modal-message"},Un={key:1,class:"modal-message"},Pn={class:"modal-buttons"},wn=Object(a["defineComponent"])({props:{title:null,message:null,strongMessage:{default:function(){return null}}},emits:["cancelAction","confirmAction"],setup:function(e,t){var n=t.emit,r=e,c=Object(_["a"])(),o=Object(a["toRefs"])(r),i=o.title,s=o.message,l=o.strongMessage,u=Object(a["computed"])((function(){return c.getters[S["b"].GETTERS.ERROR_MESSAGES]}));return Object(a["onUnmounted"])((function(){return c.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),function(e,t){var r=Object(a["resolveComponent"])("i18n-t"),c=Object(a["resolveComponent"])("ErrorMessage"),o=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Cn,[Object(a["createElementVNode"])("div",Dn,[Object(a["createVNode"])(o,null,{title:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(Object(a["unref"])(i)),1)]})),content:Object(a["withCtx"])((function(){return[Object(a["unref"])(l)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",yn,[Object(a["createVNode"])(r,{keypath:Object(a["unref"])(s)},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(Object(a["unref"])(l)),1)]})),_:1},8,["keypath"])])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Un,Object(a["toDisplayString"])(Object(a["unref"])(s)),1)),Object(a["unref"])(u)?(Object(a["openBlock"])(),Object(a["createBlock"])(c,{key:2,message:Object(a["unref"])(u)},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Pn,[Object(a["unref"])(u)?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("button",{key:0,class:"confirm",onClick:t[0]||(t[0]=function(e){return n("confirmAction")})},Object(a["toDisplayString"])(e.$t("buttons.YES")),1)),Object(a["createElementVNode"])("button",{class:"cancel",onClick:t[1]||(t[1]=function(e){return n("cancelAction")})},Object(a["toDisplayString"])(e.$t("buttons.".concat(Object(a["unref"])(u)?"CANCEL":"NO"))),1)])]})),_:1})])])}}});n("9303");const Ln=p()(wn,[["__scopeId","data-v-e8fcfaba"]]);var Mn=Ln,Bn=[{target:le,name:"AlertMessage"},{target:ue["a"],name:"Card"},{target:Ee,name:"CustomTextArea"},{target:_e,name:"Distance"},{target:Ie,name:"Dropdown"},{target:Pe,name:"ErrorMessage"},{target:hn,name:"Loader"},{target:Mn,name:"Modal"},{target:Rn,name:"SportImage"}],Vn={mounted:function(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)}},zn=n("1119");r["Chart"].register(r["BarElement"],r["LineElement"],r["PointElement"],r["Legend"],r["Title"],r["Tooltip"],r["Filler"],r["BarController"],r["CategoryScale"],r["LineController"],r["LinearScale"],c["a"]);var xn=Object(a["createApp"])(te).provide("sportColors",zn["c"]).use(ne["a"]).use(ce["a"]).use(re["a"]).directive("click-outside",Vn);Bn.forEach((function(e){xn.component(e.name,e.target)})),xn.mount("#app")},d08c:function(e,t,n){},d23c:function(e,t,n){},d257:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return a}));n("caad"),n("2532"),n("d81d"),n("4de4"),n("d3b7"),n("ac1f"),n("1276");var r=n("dad5"),c=function(){return"/api/"},a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"UNKNOWN",c=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(r["b"].MUTATIONS.SET_ERROR_MESSAGES,c.includes("\n")?c.split("\n").filter((function(e){return""!==e})).map((function(e){return"api.ERROR.".concat(e)})):"api.ERROR.".concat(c))}},d4e1:function(e,t,n){"use strict";n("f59f")},d669:function(e,t,n){"use strict";n("6fd8")},dad5:function(e,t,n){"use strict";var r,c,a,o,i,s,l,u,d,O,b,m,p,E,f;n.d(t,"b",(function(){return T})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return _})),n.d(t,"a",(function(){return A})),n.d(t,"e",(function(){return N})),n.d(t,"f",(function(){return R})),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",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["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",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["USER_LOADING"]="USER_LOADING"}(c||(c={})),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_USER_LOADING"]="UPDATE_USER_LOADING"}(a||(a={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(o||(o={})),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"}(i||(i={})),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"}(s||(s={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(l||(l={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(d||(d={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(O||(O={})),function(e){e["USER_STATS"]="USER_STATS"}(b||(b={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(m||(m={})),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"}(p||(p={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(E||(E={})),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"}(f||(f={}));var j=n("4870"),T={ACTIONS:o,GETTERS:i,MUTATIONS:s},S={ACTIONS:l,GETTERS:u,MUTATIONS:d},_={ACTIONS:O,GETTERS:b,MUTATIONS:m},A={ACTIONS:r,GETTERS:c,MUTATIONS:a},N={ACTIONS:p,GETTERS:E,MUTATIONS:f},R={ACTIONS:j["a"],GETTERS:j["b"],MUTATIONS:j["c"]}},db41:function(e,t,n){"use strict";n("7826")},dbf1:function(e,t,n){},dc71:function(e,t,n){"use strict";n("c57d")},e0d4:function(e,t,n){"use strict";n("6e30")},e5d1:function(e,t,n){"use strict";n("f980")},e7b6:function(e,t,n){var r={"./en/en.ts":"c142","./fr/fr.ts":"663e"};function c(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}c.keys=function(){return Object.keys(r)},c.resolve=a,e.exports=c,c.id="e7b6"},e806:function(e,t,n){"use strict";n("538d")},ec59:function(e,t,n){"use strict";var r=n("7a23"),c={class:"start-chart"},a={key:0},o={key:1},i={class:"chart-radio"},s=["checked"],l=["checked"],u=["checked"],d={key:0},O=["checked"],b={key:1},m=["checked"],p={key:2},E=["checked"];function f(e,t,n,f,j,T){var S=Object(r["resolveComponent"])("Chart");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[e.hideChartIfNoData&&e.emptyStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,Object(r["toDisplayString"])(e.$t("workouts.NO_WORKOUTS")),1)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",o,[Object(r["createElementVNode"])("div",i,[Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,s),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DISTANCE")),1)]),Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,l),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DURATION")),1)]),Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,u),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("label",d,[Object(r["createElementVNode"])("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,O),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.AVERAGE_SPEED")),1)])):Object(r["createCommentVNode"])("",!0),e.fullStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("label",b,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,m),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.ASCENT")),1)])):Object(r["createCommentVNode"])("",!0),e.fullStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("label",p,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,E),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DESCENT")),1)])):Object(r["createCommentVNode"])("",!0)]),e.labels.length>0?(Object(r["openBlock"])(),Object(r["createBlock"])(S,{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"])):Object(r["createCommentVNode"])("",!0)]))])}var j=n("1da1"),T=(n("96cf"),n("b0c0"),n("b64b"),n("b166")),S={class:"chart"};function _(e,t,n,c,a,o){var i=Object(r["resolveComponent"])("BarChart");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",S,[Object(r["createVNode"])(i,Object(r["mergeProps"])(e.barChartProps,{class:"bar-chart"}),null,16)])}n("e9c4"),n("d3b7"),n("d81d");var A=n("b48c"),N=n("47e2"),R=(n("99af"),n("b680"),n("25f0"),n("4d90"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);var r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;var c=String(Math.floor(e/60)).padStart(2,"0"),a=String(e%60).padStart(2,"0");return t?"".concat("0"===n?"":"".concat(n,"d ")).concat("00"===r?"":"".concat(r,"h ")).concat(c,"m ").concat(a,"s"):"".concat("00"===r?"":"".concat(r,":")).concat(c,":").concat(a)}),g=n("6284"),k=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],c="km",a=n?g["c"][c].defaultTarget:c;switch(e){case"average_speed":return"".concat(t.toFixed(2)," ").concat(a,"/h");case"total_duration":return R(t,r);case"total_distance":return"".concat(t.toFixed(2)," ").concat(a);case"total_ascent":case"total_descent":return"".concat((t/1e3).toFixed(2)," ").concat(a);default:return t.toString()}},v=Object(r["defineComponent"])({name:"Chart",components:{BarChart:A["BarChart"]},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:function(e){var t=Object(N["b"])(),n=t.t;function c(e){return isNaN(e)?0:+e}function a(e,t){return c(e)+c(t)}var o=Object(r["computed"])((function(){return{labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}})),i=Object(r["computed"])((function(){return{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 k(e.displayedData,+t,e.useImperialUnits,!1)}},afterFit:function(t){t.width=e.fullStats?75: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 k(e.displayedData,t,e.useImperialUnits,!1);var r=n.chart.data.datasets.map((function(e){return e.data[n.dataIndex]})).reduce((function(e,t){return a(e,t)}),0);return n.datasetIndex===e.displayedSportIds.length-1&&r>0?k(e.displayedData,r,e.useImperialUnits,!1):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(t){var r=n("sports.".concat(t.dataset.label,".LABEL"))||"";return r&&(r+=": "),null!==t.parsed.y&&(r+=k(e.displayedData,t.parsed.y,e.useImperialUnits)),r},footer:function(t){if("average_speed"===e.displayedData)return"";var r=0;return t.map((function(e){r+=e.parsed.y})),"".concat(n("common.TOTAL"),": ")+k(e.displayedData,r,e.useImperialUnits)}}}}}})),s=Object(A["useBarChart"])({chartData:o,options:i}),l=s.barChartProps;return{barChartProps:l}}}),I=n("6b0d"),h=n.n(I);const C=h()(v,[["render",_]]);var D=C,y=n("dad5"),U=n("2906"),P=n("7416"),w=Object(r["defineComponent"])({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:function(){return[]}},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup:function(e){var t=Object(U["a"])(),n=Object(r["ref"])("total_distance"),c=Object(r["computed"])((function(){return t.getters[y["d"].GETTERS.USER_STATS]})),a=Object(r["computed"])((function(){return Object(P["a"])(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,c.value,e.user.imperial_units)}));function o(n){t.dispatch(y["d"].ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function s(e,t){return{from:Object(T["a"])(e.start,"yyyy-MM-dd"),to:Object(T["a"])(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week".concat(t.weekm?"m":""):e.duration}}return Object(r["onBeforeMount"])((function(){return o(s(e.chartParams,e.user))})),Object(r["watch"])((function(){return e.chartParams}),function(){var t=Object(j["a"])(regeneratorRuntime.mark((function t(n){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:o(s(n,e.user));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),{datasets:Object(r["computed"])((function(){return a.value.datasets[n.value]})),labels:Object(r["computed"])((function(){return a.value.labels})),emptyStats:Object(r["computed"])((function(){return 0===Object.keys(c.value).length})),displayedData:n,updateDisplayData:i}}});n("5b6e");const L=h()(w,[["render",f],["__scopeId","data-v-14aef866"]]);t["a"]=L},ef3f:function(e,t,n){},f03a:function(e,t,n){"use strict";n("d23c")},f574:function(e,t,n){"use strict";n("49a7")},f59f:function(e,t,n){},f61d:function(e,t,n){"use strict";n("6ac7")},f7f9:function(e,t,n){"use strict";var r=n("7a23"),c={id:"error"},a={class:"error-content"},o=Object(r["defineComponent"])({props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.buttonText,i=n.title,s=n.message,l=n.path;return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("div",a,[Object(r["createElementVNode"])("h1",null,Object(r["toDisplayString"])(Object(r["unref"])(i)),1),Object(r["createElementVNode"])("p",null,Object(r["toDisplayString"])(Object(r["unref"])(s)),1),Object(r["unref"])(o)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("button",{key:0,onClick:t[0]||(t[0]=function(t){return e.$router.push(Object(r["unref"])(l))}),class:"upper"},Object(r["toDisplayString"])(Object(r["unref"])(o)),1)):Object(r["createCommentVNode"])("",!0)])])}}}),i=(n("7390"),n("6b0d")),s=n.n(i);const l=s()(o,[["__scopeId","data-v-b60bfa80"]]);var u=l,d=Object(r["defineComponent"])({props:{target:{default:"PAGE"}},setup:function(e){var t=e,n=Object(r["toRefs"])(t),c=n.target;return function(e,t){return Object(r["openBlock"])(),Object(r["createBlock"])(u,{title:"404",message:e.$t("error.NOT_FOUND.".concat(Object(r["unref"])(c))),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])}}});const O=d;t["a"]=O},f87a:function(e,t,n){},f980:function(e,t,n){},ff29:function(e,t,n){}}); +//# sourceMappingURL=app.17fba770.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.17fba770.js.map b/fittrackee/dist/static/js/app.17fba770.js.map new file mode 100644 index 00000000..36cd55d2 --- /dev/null +++ b/fittrackee/dist/static/js/app.17fba770.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/User/UserAuthForm.vue","webpack:///./src/components/User/UserAuthForm.vue?f22a","webpack:///./src/api/defaultApi.ts","webpack:///./src/store/modules/users/actions.ts","webpack:///./src/store/modules/authUser/actions.ts","webpack:///./src/store/modules/authUser/getters.ts","webpack:///./src/store/modules/authUser/mutations.ts","webpack:///./src/store/modules/authUser/state.ts","webpack:///./src/store/modules/authUser/index.ts","webpack:///./src/store/modules/root/actions.ts","webpack:///./src/store/modules/root/getters.ts","webpack:///./src/store/modules/root/mutations.ts","webpack:///./src/store/modules/root/state.ts","webpack:///./src/store/modules/sports/actions.ts","webpack:///./src/store/modules/sports/getters.ts","webpack:///./src/store/modules/sports/mutations.ts","webpack:///./src/store/modules/sports/state.ts","webpack:///./src/store/modules/sports/index.ts","webpack:///./src/store/modules/statistics/actions.ts","webpack:///./src/store/modules/statistics/getters.ts","webpack:///./src/store/modules/statistics/mutations.ts","webpack:///./src/store/modules/statistics/state.ts","webpack:///./src/store/modules/statistics/index.ts","webpack:///./src/store/modules/users/getters.ts","webpack:///./src/store/modules/users/mutations.ts","webpack:///./src/store/modules/users/state.ts","webpack:///./src/store/modules/users/index.ts","webpack:///./src/store/modules/workouts/actions.ts","webpack:///./src/store/modules/workouts/getters.ts","webpack:///./src/store/modules/workouts/mutations.ts","webpack:///./src/store/modules/workouts/state.ts","webpack:///./src/store/modules/workouts/index.ts","webpack:///./src/store/modules/root/index.ts","webpack:///./src/store/index.ts","webpack:///./src/components/Administration/AdminMenu.vue?5461","webpack:///./src/components/Common/Card.vue?cc51","webpack:///./src/utils/sports.ts","webpack:///./src/components/Dashboard/UserCalendar/index.vue?32a0","webpack:///./src/components/Workouts/NoWorkouts.vue","webpack:///./src/components/Workouts/NoWorkouts.vue?eff8","webpack:///./src/components/Common/Card.vue","webpack:///./src/components/Common/Card.vue?ecbc","webpack:///./src/components/Common/AlertMessage.vue?744a","webpack:///./src/use/useStore.ts","webpack:///./src/components/Common/Loader.vue?a7b0","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?a919","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkout.vue?a2d9","webpack:///./src/components/Common/ErrorMessage.vue?5516","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?24df","webpack:///./src/views/Dashboard.vue?d83c","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?4316","webpack:///./src/components/User/UserSportPreferences.vue?c52e","webpack:///./src/store/modules/workouts/enums.ts","webpack:///./src/components/NoConfig.vue?cd8b","webpack:///./src/components/Workout/WorkoutCard.vue?17f3","webpack:///./src/components/Common/Dropdown.vue?9d33","webpack:///./src/components/Common/StatsChart/index.vue?359e","webpack:///./src/utils/dates.ts","webpack:///./src/App.vue?c297","webpack:///./src/utils/units.ts","webpack:///./src/locales/fr/administration.json","webpack:///./src/locales/fr/api.json","webpack:///./src/locales/fr/buttons.json","webpack:///./src/locales/fr/common.json","webpack:///./src/locales/fr/dashboard.json","webpack:///./src/locales/fr/error.json","webpack:///./src/locales/fr/sports.json","webpack:///./src/locales/fr/statistics.json","webpack:///./src/locales/fr/user.json","webpack:///./src/locales/fr/workouts.json","webpack:///./src/locales/fr/fr.ts","webpack:///./src/components/Common/StaticMap.vue","webpack:///./src/components/Common/StaticMap.vue?88d8","webpack:///./src/components/Dashboard/UserCalendar/CalendarHeader.vue?e7b0","webpack:///./src/components/Common/Pagination.vue","webpack:///./src/components/Common/Pagination.vue?573e","webpack:///./src/components/Administration/AdminSports.vue?9305","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?9546","webpack:///./src/components/Common/Error.vue?1d33","webpack:///./src/utils/statistics.ts","webpack:///./src/components/User/ProfileDisplay/index.vue?cc48","webpack:///./src/components/NavBar.vue?5e95","webpack:///./src/components/Dashboard/UserMonthStats.vue?6f36","webpack:///./src/i18n.ts","webpack:///./src/components/Common/FilterSelects.vue","webpack:///./src/components/Common/FilterSelects.vue?2f0a","webpack:///./src/utils/workouts.ts","webpack:///./src/utils/locales.ts","webpack:///./src/components/Common/Modal.vue?9294","webpack:///./src/components/Common/StaticMap.vue?cc0b","webpack:///./src/utils/api.ts","webpack:///./src/components/Common/Distance.vue?5eaa","webpack:///./src/components/Dashboard/UserCalendar/CalendarCells.vue?5236","webpack:///./src/api/authApi.ts","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue?3187","webpack:///./src/components/Common/StatCard.vue?b25e","webpack:///./src/components/Administration/AppStatsCards.vue?7172","webpack:///./src/components/Common/FilterSelects.vue?5d42","webpack:///./src/components/User/UserPicture.vue?7532","webpack:///./src/components/Common/Pagination.vue?6a22","webpack:///./src/components/Administration/AdminApplication.vue","webpack:///./src/components/Administration/AdminApplication.vue?9c66","webpack:///./src/components/Common/StatCard.vue","webpack:///./src/components/Common/StatCard.vue?7652","webpack:///./src/components/Administration/AppStatsCards.vue","webpack:///./src/components/Administration/AppStatsCards.vue?5d3b","webpack:///./src/components/Administration/AdminMenu.vue","webpack:///./src/components/Administration/AdminMenu.vue?572b","webpack:///./src/components/Administration/AdminSports.vue","webpack:///./src/components/Administration/AdminSports.vue?8d91","webpack:///./src/components/Administration/AdminUsers.vue","webpack:///./src/components/Administration/AdminUsers.vue?9006","webpack:///./src/components/User/UserProfileTabs.vue","webpack:///./src/components/User/UserProfileTabs.vue?68f5","webpack:///./src/components/User/ProfileDisplay/index.vue","webpack:///./src/components/User/ProfileDisplay/index.vue?d237","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?e51f","webpack:///./src/components/User/ProfileEdition/index.vue","webpack:///./src/components/User/ProfileEdition/index.vue?27de","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?a314","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?6a32","webpack:///./src/utils/timezone.ts","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?2dc4","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?a05c","webpack:///./src/components/User/UserSportPreferences.vue","webpack:///./src/components/User/UserSportPreferences.vue?ec8d","webpack:///./src/components/Workout/WorkoutCard.vue","webpack:///./src/components/Workout/WorkoutCard.vue?1d2c","webpack:///./src/components/Dashboard/Timeline.vue","webpack:///./src/components/Dashboard/Timeline.vue?88d8","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkout.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkout.vue?2cf8","webpack:///./src/components/Dashboard/UserCalendar/DonutChart.vue","webpack:///./src/components/Dashboard/UserCalendar/DonutChart.vue?966a","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue?68ca","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue?332b","webpack:///./src/components/Dashboard/UserCalendar/CalendarCells.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarCells.vue?3329","webpack:///./src/components/Dashboard/UserCalendar/CalendarDays.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarDays.vue?a6f6","webpack:///./src/components/Dashboard/UserCalendar/CalendarHeader.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarHeader.vue?8fbf","webpack:///./src/components/Dashboard/UserCalendar/index.vue","webpack:///./src/components/Dashboard/UserCalendar/index.vue?ac12","webpack:///./src/components/Dashboard/UserMonthStats.vue","webpack:///./src/components/Dashboard/UserMonthStats.vue?47f3","webpack:///./src/components/Dashboard/UserRecords/RecordsCard.vue","webpack:///./src/components/Dashboard/UserRecords/RecordsCard.vue?d39e","webpack:///./src/utils/records.ts","webpack:///./src/components/Dashboard/UserRecords/index.vue","webpack:///./src/components/Dashboard/UserRecords/index.vue?43ac","webpack:///./src/components/Dashboard/UserStatsCards/index.vue","webpack:///./src/components/Dashboard/UserStatsCards/index.vue?1659","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?1521","webpack:///./src/views/NotFoundView.vue","webpack:///./src/views/NotFoundView.vue?24f6","webpack:///./src/components/BikePic.vue","webpack:///./src/components/BikePic.vue?5251","webpack:///./src/views/user/LoginOrRegister.vue","webpack:///./src/views/user/LoginOrRegister.vue?b5b6","webpack:///./src/router/index.ts","webpack:///./src/components/Workouts/NoWorkouts.vue?e37d","webpack:///./src/components/Dashboard/UserRecords/RecordsCard.vue?747d","webpack:///./src/components/User/UserAuthForm.vue?10ec","webpack:///./src/components/Dashboard/Timeline.vue?9451","webpack:///./src/components/Dashboard/UserCalendar/CalendarDays.vue?5c1b","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?ecaf","webpack:///./src/locales/en/administration.json","webpack:///./src/locales/en/api.json","webpack:///./src/locales/en/buttons.json","webpack:///./src/locales/en/common.json","webpack:///./src/locales/en/dashboard.json","webpack:///./src/locales/en/error.json","webpack:///./src/locales/en/sports.json","webpack:///./src/locales/en/statistics.json","webpack:///./src/locales/en/user.json","webpack:///./src/locales/en/workouts.json","webpack:///./src/locales/en/en.ts","webpack:///./src/utils/files.ts","webpack:///./src/components/User/UserPicture.vue","webpack:///./src/components/User/UserPicture.vue?dc88","webpack:///./src/components/Dashboard/UserRecords/index.vue?9c13","webpack:///./src/components/User/UserProfileTabs.vue?9c9b","webpack:///./src/registerServiceWorker.ts","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?14b8","webpack:///./src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?5ec4","webpack:///./src/components/NoConfig.vue","webpack:///./src/components/NoConfig.vue?0078","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/components/Common/AlertMessage.vue","webpack:///./src/components/Common/AlertMessage.vue?7dca","webpack:///./src/components/Common/CustomTextArea.vue","webpack:///./src/components/Common/CustomTextArea.vue?933e","webpack:///./src/components/Common/Distance.vue","webpack:///./src/components/Common/Distance.vue?de84","webpack:///./src/components/Common/Dropdown.vue","webpack:///./src/components/Common/Dropdown.vue?56da","webpack:///./src/components/Common/ErrorMessage.vue","webpack:///./src/components/Common/ErrorMessage.vue?31ca","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue?1dcc","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue?667c","webpack:///./src/components/Common/Images/SportImage/Hiking.vue","webpack:///./src/components/Common/Images/SportImage/Hiking.vue?75de","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue?9b14","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue?adb2","webpack:///./src/components/Common/Images/SportImage/Rowing.vue","webpack:///./src/components/Common/Images/SportImage/Rowing.vue?a825","webpack:///./src/components/Common/Images/SportImage/Running.vue","webpack:///./src/components/Common/Images/SportImage/Running.vue?275d","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue?8028","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue?a0cc","webpack:///./src/components/Common/Images/SportImage/Snowshoes.vue","webpack:///./src/components/Common/Images/SportImage/Snowshoes.vue?8cee","webpack:///./src/components/Common/Images/SportImage/Trail.vue","webpack:///./src/components/Common/Images/SportImage/Trail.vue?43e1","webpack:///./src/components/Common/Images/SportImage/Walking.vue","webpack:///./src/components/Common/Images/SportImage/Walking.vue?ecc5","webpack:///./src/components/Common/Images/SportImage/index.vue","webpack:///./src/components/Common/Images/SportImage/index.vue?1dbe","webpack:///./src/components/Common/Loader.vue","webpack:///./src/components/Common/Loader.vue?bdb0","webpack:///./src/components/Common/Modal.vue","webpack:///./src/components/Common/Modal.vue?1686","webpack:///./src/custom-components.ts","webpack:///./src/directives.ts","webpack:///./src/main.ts","webpack:///./src/utils/index.ts","webpack:///./src/components/Footer.vue?5a8a","webpack:///./src/components/Administration/AdminUsers.vue?7352","webpack:///./src/store/modules/authUser/enums.ts","webpack:///./src/store/modules/root/enums.ts","webpack:///./src/store/modules/sports/enums.ts","webpack:///./src/store/modules/statistics/enums.ts","webpack:///./src/store/modules/users/enums.ts","webpack:///./src/store/constants.ts","webpack:///./src/views/user/LoginOrRegister.vue?d5df","webpack:///./src/components/BikePic.vue?11c5","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue?7ea1","webpack:///./src/components/Dashboard/UserStatsCards/index.vue?8234","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?ebce","webpack:///./src/components/Common/StatsChart/index.vue?6a3d","webpack:///./src/components/Common/StatsChart/Chart.vue?21e7","webpack:///./src/utils/duration.ts","webpack:///./src/utils/tooltip.ts","webpack:///./src/components/Common/StatsChart/Chart.vue","webpack:///./src/components/Common/StatsChart/Chart.vue?4835","webpack:///./src/components/Common/StatsChart/index.vue","webpack:///./src/components/Common/StatsChart/index.vue?c897","webpack:///./src/components/Administration/AdminApplication.vue?4354","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?9fe5","webpack:///./src/components/Common/CustomTextArea.vue?3272","webpack:///./src/components/Common/Error.vue","webpack:///./src/components/Common/Error.vue?5756","webpack:///./src/components/Common/NotFound.vue","webpack:///./src/components/Common/NotFound.vue?8100"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","id","_hoisted_2","_hoisted_3","class","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","props","action","token","default","setup","__props","route","store","useStore","formData","username","email","password","password_conf","buttonText","getButtonText","errorMessages","getters","GETTERS","ERROR_MESSAGES","appConfig","APP_CONFIG","registration_disabled","is_registration_enabled","formErrors","toUpperCase","invalidateForm","onSubmit","actionType","dispatch","ACTIONS","RESET_USER_PASSWORD","commit","MUTATIONS","SET_ERROR_MESSAGES","SEND_PASSWORD_RESET_REQUEST","LOGIN_OR_REGISTER","redirectUrl","query","from","resetFormData","path","EMPTY_ERROR_MESSAGES","_ctx","_cache","_component_AlertMessage","_component_router_link","_component_ErrorMessage","disabled","errors","$event","required","onInvalid","placeholder","$t","includes","to","_","__exports__","api","a","baseURL","context","payload","authApi","delete","res","status","fromAdmin","router","LOGOUT","catch","actions","EMPTY_USER","UPDATE_USER","EMPTY_USERS","UPDATE_USERS","UPDATE_USERS_PAGINATION","GET_USER","UPDATE_USERS_LOADING","users","finally","GET_USERS","params","pagination","patch","admin","UPDATE_USER_IN_USERS","DELETE_USER_ACCOUNT","locale","global","localStorage","removeItem","EMPTY_USER_STATS","CLEAR_AUTH_USER_TOKEN","EMPTY_WORKOUTS","EMPTY_WORKOUT","CHECK_AUTH_USER","authToken","IS_AUTHENTICATED","UPDATE_AUTH_TOKEN","GET_USER_PROFILE","UPDATE_AUTH_USER_PROFILE","language","UPDATE_LANG","GET_SPORTS","post","auth_token","setItem","UPDATE_USER_PROFILE","UPDATE_USER_LOADING","UPDATE_USER_PREFERENCES","RESET_USER_SPORT_PREFERENCES","sportId","UPDATE_USER_SPORT_PREFERENCES","UPDATE_USER_PICTURE","picture","form","FormData","append","headers","DELETE_ACCOUNT","DELETE_PICTURE","AUTH_TOKEN","state","AUTH_USER_PROFILE","authUserProfile","IS_ADMIN","USER_LOADING","loading","mutations","authUserState","authUser","GET_APPLICATION_CONFIG","UPDATE_APPLICATION_LOADING","UPDATE_APPLICATION_CONFIG","GET_APPLICATION_STATS","UPDATE_APPLICATION_STATS","application","config","APP_LOADING","appLoading","APP_STATS","statistics","LANGUAGE","LOCALE","root","sports","uploads_dir_size","workouts","SET_SPORTS","UPDATE_SPORTS","is_active","isActive","SPORTS","sportsState","GET_USER_STATS","filterType","UPDATE_USER_STATS","USER_STATS","statisticsState","USER","user","USERS","USERS_LOADING","USERS_PAGINATION","updatedUser","map","usersState","SET_WORKOUTS_PAGINATION","GET_CALENDAR_WORKOUTS","EMPTY_CALENDAR_WORKOUTS","GET_USER_WORKOUTS","GET_TIMELINE_WORKOUTS","GET_MORE_TIMELINE_WORKOUTS","GET_WORKOUT_DATA","SET_WORKOUT_LOADING","segmentUrl","segmentId","workoutId","workout","segments","SET_WORKOUT","with_gpx","SET_WORKOUT_CHART_DATA","chart_data","SET_WORKOUT_GPX","gpx","DELETE_WORKOUT","EDIT_WORKOUT","ADD_WORKOUT","file","sport_id","notes","ADD_WORKOUT_WITHOUT_GPX","CALENDAR_WORKOUTS","calendar_workouts","TIMELINE_WORKOUTS","timeline_workouts","USER_WORKOUTS","user_workouts","WORKOUT_DATA","workoutData","WORKOUTS_PAGINATION","ADD_TIMELINE_WORKOUTS","concat","SET_CALENDAR_WORKOUTS","SET_TIMELINE_WORKOUTS","SET_USER_WORKOUTS","chartData","workoutsState","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","sportColors","Hiking","Rowing","Running","Snowshoes","Trail","Walking","sportIdColors","colors","sport","color","label","sortSports","b","sportATranslatedLabel","translatedLabel","toLowerCase","sportBTranslatedLabel","translateSports","activeStatus","sportsToInclude","filter","sort","getSportLabel","getSportColor","render","_component_Distance","UserPicture","nb_workouts","distance","total_distance","unitFrom","digits","displayUnit","useImperialUnits","imperial_units","nb_sports","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","getStartDate","duration","day","weekStartingMonday","weekStartsOn","incrementDate","getDateWithTZ","dateInUTC","tz","Date","getCalendarStartAndEnd","date","monthStart","monthEnd","start","end","formatWorkoutDate","dateTime","dateFormat","timeFormat","workout_date","workout_time","units","ft","unit","system","multiplier","defaultTarget","mi","km","factors","metric","imperial","convertDistance","unitTo","convertedDistance","parseFloat","toFixed","convertStatsDistance","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","buttons","common","dashboard","displayHover","Boolean","imageUrl","alt","style","backgroundImage","getQuery","page","cursor","newQuery","assign","has_prev","pages","active","has_next","registrationDate","created_at","format","birthDate","birth_date","displayModal","updateDisplayModal","deleteUserAccount","_component_Modal","title","strongMessage","onConfirmAction","onCancelAction","first_name","last_name","location","bio","onClick","$router","go","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","days","getStatisticsChartDataset","sportLabel","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","datasets","average_speed","total_duration","total_ascent","total_descent","convertStatsValue","datasetKey","formatStats","displayedSportsId","apiStats","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","updateChartParams","chartParams","backward","loadLocaleMessages","locales","messages","keys","forEach","matched","match","legacy","fallbackLocale","globalInjection","order_by","emits","emit","perPage","onSelectUpdate","onChange","order","per_page","nb","speed","borderWidth","yAxisID","elevation","fill","distance_labels","duration_labels","coordinates","latitude","longitude","getDonutDatasets","total","count","percentage","defaultOrder","localeFromLanguage","en","fr","languageLabels","availableLocales","availableLanguages","sortList","defaultPage","defaultPerPage","getNumberQueryValue","queryValue","defaultValue","getStringQueryValue","availableValues","locationQuery","orderByList","defaultOrderBy","options","queryOptions","defaultSort","workoutsPayloadKeys","getRange","stop","Array","rangePagination","currentPage","interceptors","use","auth","Authorization","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","edition","appData","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","onCancel","_component_Card","content","min","step","icon","text","appStatistics","uploadDirSize","StatCard","size","suffix","Card","AppStatsCards","_hoisted_18","_hoisted_19","translatedSports","updateSportStatus","_component_SportImage","danger","has_workouts","loadUsers","queryParams","updateUser","reloadUsers","queryParam","FilterSelects","onUpdateSelect","timezone","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","onInput","_component_router_view","UserHeader","UserProfileTabs","fistDayOfWeek","weekm","_hoisted_20","_hoisted_21","_hoisted_22","userForm","updateUserForm","updateBio","updateProfile","deleteAccount","_component_CustomTextArea","charLimit","input","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","accept","timeZones","isOpen","tzList","focusItemIndex","matchTimezone","onMouseOver","index","onUpdateTimezone","onEnter","preventDefault","firstElementChild","innerHTML","openDropdown","trim","onKeydown","ref_key","ref","focus","onMouseover","autofocus","weekStart","imperialUnits","updateTZ","lang","TimezoneDropdown","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","isEdition","sports_list","sportPayload","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","formatDistance","addSuffix","StaticMap","moving","min_alt","max_alt","ascent","descent","initWorkoutsCount","loadWorkouts","moreWorkoutsExist","previous_workout","loadMoreWorkouts","WorkoutCard","NoWorkouts","sportColor","records","record","record_type","height","width","viewBox","angleOffset","cx","cy","radius","circumference","Math","PI","calculateStrokeDashOffset","returnCircleTransformValue","rotation","entries","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","DonutChart","CalendarWorkout","chartDatasets","displayedWorkoutCount","CalendarWorkoutsChart","currentDay","endDate","startDate","rows","getDays","addDays","isWeekEnd","filterWorkouts","isSameDay","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","calendarWorkouts","getCalendarWorkouts","apiParams","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","startOfMonth","endOfMonth","selectedSportIds","sportTranslatedLabel","workout_id","getRecordsBySports","reduce","sportList","find","recordsBySport","RecordsCard","userTotalDuration","totalDuration","get_duration","defaultUnitFrom","totalDistance","split","isSelected","updateDisplayColumn","_component_Loader","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","BikePic","getTabFromPath","regex","replace","routes","component","Dashboard","LoginOrRegister","children","UserInfos","UserPreferences","UserSportPreferences","ProfileEdition","UserInfosEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","AdminUsers","NotFoundView","history","pathsWithoutAuthentication","beforeEach","next","fullPath","suffixes","getReadableFileSize","fileSize","asText","floor","log","pow","getFileSizeInMB","authUserPictureUrl","ready","registered","cached","updatefound","updated","offline","version","isAuthenticated","isMenuOpen","openMenu","closeMenu","updateLanguage","option","toString","logout","_component_Dropdown","selected","onSelected","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","innerHeight","bottom","scroll","onscroll","querySelector","scrollToTop","scrollTo","behavior","NavBar","onMenuInteraction","NoConfig","Footer","updateText","maxLenght","strong","dropdownOptions","toggleDropdown","updateSelected","$slots","isArray","subMessage","xmlns","xmlns:xlink","x","y","xml:space","xmlns:svg","CyclingSport","CyclingTransport","MountainBiking","MountainBikingElectric","SkiingAlpine","SkiingCrossCountry","_component_i18n_t","keypath","customComponents","AlertMessage","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","register","app","App","provide","i18n","directive","mount","getApiUrl","handleError","msg","response","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ROOT_STORE","SPORTS_STORE","STATS_STORE","AUTH_USER_STORE","USERS_STORE","WORKOUTS_STORE","webpackContext","req","webpackContextResolve","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","components","BarChart","getNumber","isNaN","getSum","JSON","parse","stringify","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","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","Chart","formattedStats","getStatistics","getApiParams","time","newParams"],"mappings":"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ACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,sBACA,oBACA,sBACA,oBACA,kBACA,oBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,iBACA,eACA,sBACA,iBACA,kBACA,iBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,mBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,cACA,aACA,cACA,aACA,cACA,gBACA,cACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,aACA,eACA,gBACA,cACA,eACA,oBACA,mBACA,YACA,YACA,iBACA,iBACA,aACA,gBACA,iBACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,aACA,mBACA,cACA,gBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,kBACA,gBACA,kBACA,mBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,gBACA,gBACA,oBACA,gBACA,eACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,cACA,cACA,gBACA,iBACA,oBACA,eACA,mBACA,iBACA,gBACA,mBACA,kBACA,gBACA,iBACA,mBACA,gBACA,oBACA,gBACA,gBACA,mBACA,eACA,mBACA,cACA,kBACA,mBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,qBACA,iBACA,oBACA,iBACA,oBACA,gBACA,eACA,kBACA,iBACA,oBACA,gBACA,mBACA,kBACA,uBACA,oBACA,iBACA,iBACA,oBACA,eACA,mBCxVI,GAAa,CAAEjhB,GAAI,eACnB,GAAa,CAAC,QAAS,WAAY,aACnC,GAAa,CAAC,UAAW,cAAe,aAWlB,gCAAiB,CAC3Ca,MAAO,CACL2f,MAAO,KACP3c,SAAU,CAAE3H,KAAM+X,QAASjT,SAAS,IAEtCkY,MAAO,CAAC,kBACRjY,MAN2C,SAMrCC,EANqC,GAMf,IAANiY,EAAM,EAANA,KAElBtY,EAAQK,EAMZ,EAA4B,oBAAOL,GAA3B2f,EAAR,EAAQA,MAAO3c,EAAf,EAAeA,SACTmb,EAAwB,iBAAIne,EAAM2f,OAClCU,EAAuB,kBAAI,GAC3BC,EAAuC,iBAAI,MAC3CC,EAA8B,iBAAI,GAExC,SAASC,EAActiB,GACrB,OAAOA,EAAEsQ,cAAcwJ,MAAMmG,EAASlgB,MAAMuQ,eAE9C,SAASiS,EAAYC,GACnBH,EAAetiB,MAAQyiB,EAEzB,SAASC,EAAiB1iB,GACxBkgB,EAASlgB,MAAQA,EACjBoiB,EAAOpiB,OAAQ,EACfqa,EAAK,iBAAkBra,GAEzB,SAAS2iB,EAAQplB,GAA2C,Q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","file":"static/js/app.17fba770.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({\"admin\":\"admin\",\"profile\":\"profile\",\"reset\":\"reset\",\"statistics\":\"statistics\",\"workouts\":\"workouts\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"5f46d0fe\",\"profile\":\"d25975e2\",\"reset\":\"ca898ebe\",\"statistics\":\"d03ca304\",\"workouts\":\"29d99435\",\"chunk-2d0c9189\":\"c81458cc\",\"chunk-2d0cf391\":\"020c75ea\",\"chunk-2d0da8f3\":\"c8c3e7e8\",\"chunk-2d2248b6\":\"d84473c1\",\"chunk-2d22523a\":\"4b710d99\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"admin\":1,\"profile\":1,\"reset\":1,\"statistics\":1,\"workouts\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"static/css/\" + ({\"admin\":\"admin\",\"profile\":\"profile\",\"reset\":\"reset\",\"statistics\":\"statistics\",\"workouts\":\"workouts\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"e77f8b26\",\"profile\":\"8b668068\",\"reset\":\"fc19709e\",\"statistics\":\"2afdc8a9\",\"workouts\":\"45a25b09\",\"chunk-2d0c9189\":\"31d6cfe0\",\"chunk-2d0cf391\":\"31d6cfe0\",\"chunk-2d0da8f3\":\"31d6cfe0\",\"chunk-2d2248b6\":\"31d6cfe0\",\"chunk-2d22523a\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\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\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7d86ac06\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-auth-form\" }\nconst _hoisted_2 = { id: \"user-form\" }\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = [\"disabled\", \"placeholder\"]\nconst _hoisted_6 = [\"disabled\", \"placeholder\"]\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = [\"disabled\"]\nconst _hoisted_9 = { key: 1 }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" - \")\nconst _hoisted_11 = { key: 2 }\nconst _hoisted_12 = { class: \"account\" }\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\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 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 password_conf: '',\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 appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_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 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 password_conf: formData.password_conf,\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 default:\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 formData.password_conf = ''\n }\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\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\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\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 _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _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 onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(formData).username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, _unref(formData).username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"email\",\n disabled: _unref(registration_disabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(formData).email) = $event)),\n placeholder: \n _unref(action) === 'reset-request'\n ? _ctx.$t('user.ENTER_EMAIL')\n : _ctx.$t('user.EMAIL')\n \n }, null, 40, _hoisted_5)), [\n [_vModelText, _unref(formData).email]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset-request')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"password\",\n disabled: _unref(registration_disabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"password\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(formData).password) = $event)),\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n \n }, null, 40, _hoisted_6)), [\n [_vModelText, _unref(formData).password]\n ])\n : _createCommentVNode(\"\", true),\n (['register', 'reset'].includes(_unref(action)))\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 3,\n id: \"confirm-password\",\n disabled: _unref(registration_disabled),\n type: \"password\",\n required: \"\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(formData).password_conf) = $event)),\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD_CONFIRMATION')\n : _ctx.$t('user.PASSWORD_CONFIRM')\n \n }, null, 40, _hoisted_7)), [\n [_vModelText, _unref(formData).password_conf]\n ])\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_8)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\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 _hoisted_10,\n _createVNode(_component_router_link, {\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 ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _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 (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\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=7d86ac06&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7d86ac06\"]])\n\nexport default __exports__","import axios from 'axios'\n\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\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 authApi\n .patch(`users/${payload.username}`, { admin: payload.admin })\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 } 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 createI18n from '@/i18n'\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 IUserDeletionPayload,\n IUserPasswordPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\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 },\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.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\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 api\n .post(`/auth/${data.actionType}`, data.formData)\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(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\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 removeAuthUserData(context)\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_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.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n 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: IUserPasswordPayload\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.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.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 { IUserProfile } 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: IUserProfile\n ) {\n state.authUserProfile = authUserProfile\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 { IUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\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 { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\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}\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\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_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}\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 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 form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.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 { 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 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 * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminMenu.vue?vue&type=style&index=0&id=1bcb269a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\n// TODO: allow user to change colors\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=c1cc8fc8&lang=scss\"","\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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","\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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPictureEdition.vue?vue&type=style&index=0&id=56c3f022&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarWorkout.vue?vue&type=style&index=0&id=26e0330e&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"","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-312cd857\"),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 { toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\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(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(user).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=312cd857&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-312cd857\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Dashboard.vue?vue&type=style&index=0&id=2f390f91&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfos.vue?vue&type=style&index=0&id=7da6fc6b&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserSportPreferences.vue?vue&type=style&index=0&id=4775544a&lang=scss&scoped=true\"","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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NoConfig.vue?vue&type=style&index=0&id=1596efb7&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutCard.vue?vue&type=style&index=0&id=c9d1f10c&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Dropdown.vue?vue&type=style&index=0&id=ca61364c&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=14aef866&lang=scss&scoped=true\"","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\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 if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat),\n workout_time: format(dateTime, timeFormat),\n }\n}\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=54363c57&lang=scss\"","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","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\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([\"Nombre max. de fichiers dans une archive zip \"])}\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([\"Etes-vous sûr de vouloir supprimer le compte de \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\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 \"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 \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les drois d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les drois d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email : une adresse email valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur Réseau.\"])},\n \"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 \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : 8 caractères minimum.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, cet utilisateur existe déjà.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur : 3 à 12 caractères requis.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\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 \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de Bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n }\n}","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 \"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 (Electrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"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([\"Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veullez 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 \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\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 \"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 \"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 \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances \"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])}\n}","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 \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_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_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import 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 SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","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 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__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, 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-462fd850\"),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 } from '@/types/api'\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\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\n }\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(page: number, cursor?: number): TWorkoutsPayload {\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 event: _unref(pagination).has_prev ? 'click' : '',\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')), 1)\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"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 event: _unref(pagination).has_next ? 'click' : '',\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"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=462fd850&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-462fd850\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"","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, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7da6fc6b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"user-bio\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_4 = {\n key: 2,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, Ref, computed, ref, toRefs, withDefaults } from 'vue'\n\n import { AUTH_USER_STORE, USERS_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(new Date(props.user.birth_date), 'dd/MM/yyyy')\n : ''\n )\n let displayModal: Ref = ref(false)\n\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \"admin.CONFIRM_USER_ACCOUNT_DELETION\",\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteUserAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\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_2, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\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=7da6fc6b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7da6fc6b\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"","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 { 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 } from '@/utils/dates'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'dd/MM/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): 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(key, dateFormat.chart)\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n apiStats !== {} &&\n date in apiStats &&\n 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","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=e26535e0&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NavBar.vue?vue&type=style&index=0&id=6259410f&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"","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 */\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: LocaleMessages = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\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","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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","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","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n en: enUS,\n fr: fr,\n}\n\nexport const languageLabels: Record = {\n en: 'English',\n fr: 'Français',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"","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\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarCells.vue?vue&type=style&index=0&id=73426002&lang=scss\"","import axios from 'axios'\n\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport { getApiUrl } from '@/utils'\n\nconst authApi = axios.create({\n baseURL: getApiUrl(),\n})\n\nauthApi.interceptors.request.use(\n (config) => {\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\nexport default authApi\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=f372901a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPicture.vue?vue&type=style&index=0&id=626a8c6d&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Pagination.vue?vue&type=style&index=0&id=462fd850&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4b4a2fb3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"max_users\" }\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = { class: \"user-limit-help\" }\nconst _hoisted_6 = { class: \"info-box\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = { for: \"max_single_file_size\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { for: \"max_zip_file_size\" }\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = { for: \"gpx_limit_import\" }\nconst _hoisted_13 = [\"disabled\"]\nconst _hoisted_14 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\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 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\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\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.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[0] || (_cache[0] = ($event: any) => ((_unref(appData).max_users) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_4), [\n [_vModelText, _unref(appData).max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\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[1] || (_cache[1] = ($event: any) => ((_unref(appData).max_single_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(appData).max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\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[2] || (_cache[2] = ($event: any) => ((_unref(appData).max_zip_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(appData).max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_12, [\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[3] || (_cache[3] = ($event: any) => ((_unref(appData).gpx_limit_import) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_13), [\n [_vModelText, _unref(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 (__props.edition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _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_16)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[4] || (_cache[4] = _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[5] || (_cache[5] = _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=4b4a2fb3&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4b4a2fb3\"]])\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 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 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, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcb269a\"),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 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_4 = { class: \"registration-status\" }\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 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\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1)\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=1bcb269a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcb269a\"]])\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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\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, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-047ae14e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\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: \"left-text\" }\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"cell-heading\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"text-center\" }\nconst _hoisted_12 = { class: \"cell-heading\" }\nconst _hoisted_13 = { class: \"text-center\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-center\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"disabled\", \"onClick\"]\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\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 { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { getDateWithTZ } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\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 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(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 _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_6, _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('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_7, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/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_9, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(format)(\n _unref(getDateWithTZ)(user.created_at, _unref(authUser).timezone),\n 'dd/MM/yyyy HH:mm'\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _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_15, [\n _createElementVNode(\"span\", _hoisted_16, _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_17)\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=047ae14e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-047ae14e\"]])\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 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 'PICTURE':\n return '/profile/edit/picture'\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) === 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=75d6a844&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-e26535e0\"),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 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']\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=e26535e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e26535e0\"]])\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 } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const language = 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\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(language)), 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.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 ]),\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 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', '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 { 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 } from \"vue\"\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: \"email\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_7 = [\"value\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"password\"\n}\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = {\n class: \"form-items\",\n for: \"passwordConfirmation\"\n}\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_13 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_16 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_17 = [\"disabled\"]\nconst _hoisted_18 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_19 = [\"disabled\"]\nconst _hoisted_20 = { class: \"form-items\" }\nconst _hoisted_21 = { class: \"form-buttons\" }\nconst _hoisted_22 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 userForm: IUserPayload = reactive({\n password: '',\n password_conf: '',\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\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 let displayModal: Ref = ref(false)\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 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\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\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 _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"email\",\n value: _unref(user).email,\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\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_7)\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"password\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(userForm).password) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(userForm).password]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_CONFIRMATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"passwordConfirmation\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(userForm).password_conf) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(userForm).password_conf]\n ])\n ]),\n _hoisted_12,\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(userForm).first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_14), [\n [_vModelText, _unref(userForm).first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(userForm).last_name) = $event))\n }, null, 512), [\n [_vModelText, _unref(userForm).last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_16, [\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[6] || (_cache[6] = ($event: any) => ((_unref(userForm).birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_17), [\n [_vModelText, _unref(userForm).birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_18, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(userForm).location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_19), [\n [_vModelText, _unref(userForm).location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_20, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: _unref(userForm).bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", _hoisted_22, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[8] || (_cache[8] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[9] || (_cache[9] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 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=183e33e0&lang=scss\"\n\nconst __exports__ = script;\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-56c3f022\"),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 } 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 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 let 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\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: !_unref(pictureFile)\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=56c3f022&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-56c3f022\"]])\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 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-v16/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 } from \"vue\"\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\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 userForm: IUserPreferencesPayload = reactive({\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'MONDAY',\n value: true,\n },\n {\n label: 'SUNDAY',\n value: false,\n },\n ]\n const imperialUnits = [\n {\n label: 'IMPERIAL',\n value: true,\n },\n {\n label: 'METRIC',\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\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\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.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\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) => ((_unref(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, _unref(userForm).language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: _unref(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.FIRST_DAY_OF_WEEK')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"weekm\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(userForm).weekm) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"option\", {\n value: start.value,\n key: start.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 9, _hoisted_10)\n }), 64))\n ], 8, _hoisted_9), [\n [_vModelSelect, _unref(userForm).weekm]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"imperial_units\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(userForm).imperial_units) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"option\", {\n value: unit.value,\n key: unit.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 9, _hoisted_13)\n }), 64))\n ], 8, _hoisted_12), [\n [_vModelSelect, _unref(userForm).imperial_units]\n ])\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[3] || (_cache[3] = _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\nconst __exports__ = script;\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-4775544a\"),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 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 sportColors = 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 ? sport.color : sportColors[sport.label]\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: _unref(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) && _unref(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: _unref(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 (_unref(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=4775544a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4775544a\"]])\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-c9d1f10c\"),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 = /*#__PURE__*/_createTextVNode(\"/ \")\nconst _hoisted_18 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_20 = { class: \"data-values\" }\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\" +\")\nconst _hoisted_22 = /*#__PURE__*/_createTextVNode(\"/- \")\n\nimport { Locale, format, 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 { getDateWithTZ } 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 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(format)(\n _unref(getDateWithTZ)(_unref(workout).workout_date, _unref(user).timezone),\n 'dd/MM/yyyy HH:mm'\n )\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 _hoisted_17,\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_18, [\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\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 _hoisted_22,\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=c9d1f10c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c9d1f10c\"]])\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-9ef2a9ac\"),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 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 let 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=9ef2a9ac&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9ef2a9ac\"]])\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 workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n\n \n\n const { workout, sportLabel } = 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: __props.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.map(\n (record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`\n )\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=26e0330e&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 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-f372901a\"),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 { 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 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 }, null, 8, [\"workout\", \"sportLabel\"]))\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=f372901a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f372901a\"]])\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 workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workouts: IWorkout[]\n sports: ISport[]\n }\n\n \n\n const { 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 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 : (_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=4663dbac&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 endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n currentDay: null,\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 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 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 }, null, 8, [\"workouts\", \"sports\"]),\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=73426002&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 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 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 { IUserProfile } 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: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 dateFormat = 'yyyy-MM-dd'\n let day = ref(new Date())\n let 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: _unref(day),\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": _unref(calendarDates).start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: _unref(day),\n \"end-date\": _unref(calendarDates).end,\n sports: _unref(sports),\n \"start-date\": _unref(calendarDates).start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"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=c1cc8fc8&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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","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-aee1f956\"),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\n import { IRecordsBySports } from '@/types/workouts'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\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(_unref(records).records, (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.$t(`workouts.RECORD_${record.record_type}`)), 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=aee1f956&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-aee1f956\"]])\n\nexport default __exports__","import { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean\n): Record => {\n const unitFrom: TUnit = 'km'\n const unitTo: TUnit = useImperialUnits\n ? units[unitFrom].defaultTarget\n : unitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n unitFrom,\n unitTo,\n 2\n )} ${unitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(+record.value, unitFrom, unitTo, 3)} ${unitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatWorkoutDate(getDateWithTZ(record.workout_date, tz))\n .workout_date,\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean\n): IRecordsBySports =>\n records.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)\n )\n }\n return sportList\n }, {})\n","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-ae25a82a\"),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 { IUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 { 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 )\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=ae25a82a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae25a82a\"]])\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 { 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 { IUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\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 defaultUnitFrom: TUnit = 'km'\n const unitTo: TUnit = user.value.imperial_units\n ? units[defaultUnitFrom].defaultTarget\n : defaultUnitFrom\n const totalDistance = user.value.imperial_units\n ? convertDistance(user.value.total_distance, defaultUnitFrom, unitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2))\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(unitTo) === 'mi' ? 'miles' : _unref(unitTo)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\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 ]))\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=376a0fe8&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-2f390f91\"),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, 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 { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\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 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=2f390f91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2f390f91\"]])\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 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__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=39d425b4&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=39d425b4&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-39d425b4\"]])\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-6a38125b\"),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 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=6a38125b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a38125b\"]])\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 UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\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: '/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: '/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 },\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: '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',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\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]\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n } else 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 * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./RecordsCard.vue?vue&type=style&index=0&id=aee1f956&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserAuthForm.vue?vue&type=style&index=0&id=7d86ac06&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Timeline.vue?vue&type=style&index=0&id=9ef2a9ac&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"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 \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\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 \"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 \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"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 \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: 8 characters required.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that user already exists.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username: 3 to 12 characters required.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"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 \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems encounter some issues.
Please try 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}","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 \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"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 \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter an email address\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm the 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 \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm Password\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_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 \"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 \"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 \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farest distance\"])},\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_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import 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 SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\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 { 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 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`\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=626a8c6d&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=ae25a82a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserProfileTabs.vue?vue&type=style&index=0&id=75d6a844&lang=scss\"","/* 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, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-75ada372\"),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__*/_createStaticVNode(\"
\", 4)\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n version: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n }\n\n \n\n const { version } = 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 _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5\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=75ada372&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-75ada372\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, normalizeClass as _normalizeClass, 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-6259410f\"),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 import { useI18n } from 'vue-i18n'\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 { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const { locale } = useI18n()\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 let 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 locale.value = option.value.toString()\n store.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, option.value)\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': _unref(isMenuOpen) }])\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': _unref(isMenuOpen) }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !_unref(isMenuOpen) }]),\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=6259410f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6259410f\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./NoConfig.vue?vue&type=template&id=1596efb7&scoped=true\"\nconst script = {}\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=1596efb7&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1596efb7\"]])\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\n \nexport default /*#__PURE__*/_defineComponent({\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(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG))\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 let 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\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 }, null, 8, [\"version\"]))\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=54363c57&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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, isRef as _isRef, 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-3ec2aca2\"),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\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 }\n\n \n\n \n\n let 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\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) => (_isRef(text) ? (text).value = $event : text = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, _unref(text)]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(_unref(text).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=3ec2aca2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3ec2aca2\"]])\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, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f46ff1d6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/_createTextVNode(\" \" + /*#__PURE__*/_toDisplayString(' ') + \" \")\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 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 _hoisted_1,\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-v16/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-ca61364c\"),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 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 let isOpen = ref(false)\n let 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 (_unref(isOpen))\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=ca61364c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ca61364c\"]])\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 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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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 Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n 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) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 11 }))\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-v16/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 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-v16/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'\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 .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/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'\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 error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Footer.vue?vue&type=style&index=0&id=75ada372&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminUsers.vue?vue&type=style&index=0&id=047ae14e&lang=scss&scoped=true\"","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\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 RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\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 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_USER_LOADING = 'UPDATE_USER_LOADING',\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}\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_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}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/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}\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LoginOrRegister.vue?vue&type=style&index=0&id=6a38125b&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BikePic.vue?vue&type=style&index=0&id=39d425b4&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarWorkouts.vue?vue&type=style&index=0&id=4663dbac&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=376a0fe8&lang=scss\"","var map = {\n\t\"./en/en.ts\": \"c142\",\n\t\"./fr/fr.ts\": \"663e\"\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 = \"e7b6\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserHeader.vue?vue&type=style&index=0&id=312cd857&lang=scss&scoped=true\"","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-14aef866\"),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): string => {\n const unitFrom = 'km'\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 return `${value.toFixed(2)} ${unitTo}`\n case 'total_ascent':\n case 'total_descent':\n return `${(value / 1000).toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartData, ChartOptions, LayoutItem } from 'chart.js'\n import { ComputedRef, 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 let chartData: ComputedRef> = 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 )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 75 : 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 )\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 )\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 )\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=7eb1257c&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-v16/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 { IUserProfile } 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 let 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 )\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: IUserProfile\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=14aef866&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=14aef866&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14aef866\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminApplication.vue?vue&type=style&index=0&id=4b4a2fb3&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfosEdition.vue?vue&type=style&index=0&id=183e33e0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CustomTextArea.vue?vue&type=style&index=0&id=3ec2aca2&lang=scss&scoped=true\"","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 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-v16/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 } from \"vue\"\n\nimport { toRefs, withDefaults } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Error, {\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}\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__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.20ff75b6.js b/fittrackee/dist/static/js/app.20ff75b6.js deleted file mode 100644 index 4bd92f53..00000000 --- a/fittrackee/dist/static/js/app.20ff75b6.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var r,c,i=t[0],s=t[1],l=t[2],u=0,d=[];ur?1:n2&&void 0!==arguments[2]?arguments[2]:"all",c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return e.filter((function(e){return"all"===n||(c.includes(e.id)||e[n])})).map((function(e){return Object(r["a"])(Object(r["a"])({},e),{},{translatedLabel:t("sports.".concat(e.label,".LABEL"))})})).sort(o)},s=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.label}))[0]},l=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.color}))[0]}},"11f9":function(e,t,n){"use strict";n("83d9")},"15bf":function(e,t,n){},1724:function(e,t,n){"use strict";var r=n("7a23"),c={class:"no-workouts box"};function a(e,t){var n=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("div",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.NO_WORKOUTS"))+" ",1),Object(r["createVNode"])(n,{to:"/workouts/add"},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)]})),_:1})])])}n("b3f6");var o=n("6b0d"),i=n.n(o);const s={},l=i()(s,[["render",a],["__scopeId","data-v-4b4d15fb"]]);t["a"]=l},"19e8":function(e,t,n){"use strict";var r=n("7a23"),c={class:"card"},a={class:"card-title"},o={class:"card-content"};function i(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("div",a,[Object(r["renderSlot"])(e.$slots,"title")]),Object(r["createElementVNode"])("div",o,[Object(r["renderSlot"])(e.$slots,"content")])])}n("0a85");var s=n("6b0d"),l=n.n(s);const u={},d=l()(u,[["render",i]]);t["a"]=d},"1a78":function(e,t,n){},"1ace":function(e,t,n){},2386:function(e,t,n){},2449:function(e,t,n){},"268c":function(e,t,n){"use strict";n("0c22")},2906:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n("5502");function c(){return Object(r["b"])()}},"2edc":function(e,t,n){},"304f":function(e,t,n){},3306:function(e,t,n){"use strict";n("1ace")},3522:function(e,t,n){},"35e3":function(e,t,n){"use strict";n("0ad9")},"374b":function(e,t,n){"use strict";n("5911")},"3a2a":function(e,t,n){"use strict";n("76bb")},"3c44":function(e,t,n){"use strict";var r=n("7a23"),c=n("c46a"),a={class:"box user-header"},o={class:"user-details"},i={class:"user-name"},s={class:"user-stats"},l={class:"user-stat"},u={class:"stat-number"},d={class:"stat-label"},O={class:"user-stat"},b={class:"stat-label"},m={class:"user-stat hide-small"},p={class:"stat-number"},E={class:"stat-label"},f=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),f=n.user;return function(e,t){var n=Object(r["resolveComponent"])("Distance");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,[Object(r["createVNode"])(c["a"],{user:Object(r["unref"])(f)},null,8,["user"]),Object(r["createElementVNode"])("div",o,[Object(r["createElementVNode"])("div",i,Object(r["toDisplayString"])(Object(r["unref"])(f).username),1),Object(r["createElementVNode"])("div",s,[Object(r["createElementVNode"])("div",l,[Object(r["createElementVNode"])("span",u,Object(r["toDisplayString"])(Object(r["unref"])(f).nb_workouts),1),Object(r["createElementVNode"])("span",d,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",Object(r["unref"])(f).nb_workouts)),1)]),Object(r["createElementVNode"])("div",O,[Object(r["createVNode"])(n,{distance:Object(r["unref"])(f).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:Object(r["unref"])(f).imperial_units},null,8,["distance","useImperialUnits"]),Object(r["createElementVNode"])("span",b,Object(r["toDisplayString"])(Object(r["unref"])(f).imperial_units?"miles":"km"),1)]),Object(r["createElementVNode"])("div",m,[Object(r["createElementVNode"])("span",p,Object(r["toDisplayString"])(Object(r["unref"])(f).nb_sports),1),Object(r["createElementVNode"])("span",E,Object(r["toDisplayString"])(e.$t("workouts.SPORT",Object(r["unref"])(f).nb_sports)),1)])])])])}}}),j=(n("e806"),n("6b0d")),T=n.n(j);const S=T()(f,[["__scopeId","data-v-312cd857"]]);t["a"]=S},"3d56":function(e,t,n){"use strict";n("3522")},"423b":function(e,t,n){"use strict";n("8907")},"43c0":function(e,t,n){"use strict";n("6252")},4870:function(e,t,n){"use strict";var r,c,a;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a})),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"}(c||(c={})),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"}(a||(a={}))},"49a7":function(e,t,n){},"4c29":function(e,t,n){"use strict";n("ff29")},"4e58":function(e,t,n){},"4f8e":function(e,t,n){"use strict";n("4e58")},5140:function(e,t,n){},5172:function(e,t,n){},"538d":function(e,t,n){},"55a6":function(e,t,n){"use strict";n("dbf1")},5643:function(e,t,n){},5911:function(e,t,n){},"5b6e":function(e,t,n){"use strict";n("5643")},"5e65":function(e,t,n){"use strict";n.d(t,"d",(function(){return b})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return p})),n.d(t,"b",(function(){return E})),n.d(t,"a",(function(){return f}));var r=n("69eb"),c=n("d6e9"),a=n("f628"),o=n("f7f1"),i=n("cdb6"),s=n("74b5"),l=n("8cac"),u=n("2fc8"),d=n("b166"),O=n("78b2"),b=function(e,t,n){switch(e){case"week":return Object(r["a"])(t,{weekStartsOn:n?1:0});case"year":return Object(c["a"])(t);case"month":return Object(a["a"])(t);default:throw new Error('Invalid duration, expected: "week", "month", "year", got: "'.concat(e,'"'))}},m=function(e,t){switch(e){case"week":return Object(o["a"])(t,7);case"year":return Object(i["a"])(t,1);case"month":return Object(s["a"])(t,1);default:throw new Error('Invalid duration, expected: "week", "month", "year", got: "'.concat(e,'"'))}},p=function(e,t){return Object(O["a"])(new Date(e),t)},E=function(e,t){var n=Object(a["a"])(e),c=Object(l["a"])(e),o=t?1:0;return{start:Object(r["a"])(n,{weekStartsOn:o}),end:Object(u["a"])(c,{weekStartsOn:o})}},f=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return t||(t="yyyy/MM/dd"),n||(n="HH:mm"),{workout_date:Object(d["a"])(e,t),workout_time:Object(d["a"])(e,n)}}},6112:function(e,t,n){"use strict";n("0180")},6252:function(e,t,n){},6284:function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return o}));n("b680");var 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"}},c={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},a=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3,o=r[t],i=r[n],s=e*o.multiplier*c[o.system][i.system]/i.multiplier;return null!==a?parseFloat(s.toFixed(a)):s},o=function(e,t,n){var c=n?r[e].defaultTarget:e;return n?a(t,e,c,2):t}},"633e":function(e,t,n){},"64bb":function(e,t,n){},"663e":function(e,t,n){"use strict";n.r(t);var r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},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(["Nombre max. de fichiers dans une archive zip "])}},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(["Etes-vous sûr de vouloir supprimer le compte de ",n(r(0))," ? Toutes les données seront définitivement."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},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."])},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)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les drois d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les drois d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email : une adresse email valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur Réseau."])},"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."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Mot de passe : 8 caractères minimum."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Désolé, cet utilisateur existe déjà."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas"])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Nom d'utilisateur : 3 à 12 caractères requis."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},a={BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},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"])}},o={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de Bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}}},l={"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)"])}},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 (Electrique)"])}},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"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},d={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(["Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Saisir une adresse email"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veullez 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"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},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:{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"])},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"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances "])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])}},O={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"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_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_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}};t["default"]={admin:r,api:c,buttons:a,common:o,dashboard:i,error:s,sports:l,statistics:u,user:d,workouts:O}},"68c6":function(e,t,n){"use strict";n("99af"),n("d81d");var r=n("7a23"),c=n("d257"),a=Object(r["createElementVNode"])("div",{class:"map-attribution"},[Object(r["createElementVNode"])("span",{class:"map-attribution-text"},"©"),Object(r["createElementVNode"])("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1),o=Object(r["defineComponent"])({props:{workout:null,displayHover:{type:Boolean,default:!1}},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.displayHover,i="".concat(Object(c["a"])(),"workouts/map/").concat(t.workout.map);return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",{class:Object(r["normalizeClass"])(["static-map",{"display-hover":Object(r["unref"])(o)}])},[Object(r["unref"])(o)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("img",{key:0,src:i,alt:""})):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",{key:1,class:"bg-map-image",style:Object(r["normalizeStyle"])({backgroundImage:"url(".concat(i,")")})},null,4)),a],2)}}});n("96a3");const i=o;t["a"]=i},"68cf":function(e,t,n){"use strict";n("9f7c")},"6ac7":function(e,t,n){},"6d7d":function(e,t,n){"use strict";var r=n("7a23"),c=n("97e5"),a=function(e){return Object(r["pushScopeId"])("data-v-462fd850"),e=e(),Object(r["popScopeId"])(),e},o={class:"pagination-center","aria-label":"navigation"},i={class:"pagination"},s=a((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)})),l={key:0},u=a((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)})),d=Object(r["defineComponent"])({props:{pagination:null,path:null,query:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),a=n.pagination,d=n.path,O=n.query;function b(e,t){var n=Object.assign({},O.value);return n.page=t?e+t:e,n}return function(e,t){var n=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("nav",o,[Object(r["createElementVNode"])("ul",i,[Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-prev",{disabled:!Object(r["unref"])(a).has_prev}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(d),query:b(Object(r["unref"])(a).page,-1)},event:Object(r["unref"])(a).has_prev?"click":"",disabled:!Object(r["unref"])(a).has_prev},{default:Object(r["withCtx"])((function(){return[s,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("api.PAGINATION.PREVIOUS")),1)]})),_:1},8,["to","event","disabled"])],2),(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(c["b"])(Object(r["unref"])(a).pages,Object(r["unref"])(a).page),(function(e){return Object(r["openBlock"])(),Object(r["createElementBlock"])("li",{key:e,class:Object(r["normalizeClass"])(["page",{active:e===Object(r["unref"])(a).page}])},["..."===e?(Object(r["openBlock"])(),Object(r["createElementBlock"])("span",l," ... ")):(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:1,class:"page-link",to:{path:Object(r["unref"])(d),query:b(+e)}},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e),1)]})),_:2},1032,["to"]))],2)})),128)),Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-next",{disabled:!Object(r["unref"])(a).has_next}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(d),query:b(Object(r["unref"])(a).page,1)},event:Object(r["unref"])(a).has_next?"click":"",disabled:!Object(r["unref"])(a).has_next},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("api.PAGINATION.NEXT"))+" ",1),u]})),_:1},8,["to","event","disabled"])],2)])])}}}),O=(n("aacd"),n("6b0d")),b=n.n(O);const m=b()(d,[["__scopeId","data-v-462fd850"]]);t["a"]=m},"6d8e":function(e,t,n){"use strict";n("a620")},"6e30":function(e,t,n){},"6f5e":function(e,t,n){},"6fd8":function(e,t,n){},"71a7":function(e,t,n){"use strict";var r=n("7a23"),c=n("b166"),a=n("dad5"),o=n("2906"),i={id:"user-infos",class:"description-list"},s={class:"user-bio"},l={key:1,class:"profile-buttons"},u={key:2,class:"profile-buttons"},d=Object(r["defineComponent"])({props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup:function(e){var t=e,n=Object(o["a"])(),d=Object(r["toRefs"])(t),O=d.user,b=d.fromAdmin,m=Object(r["computed"])((function(){return n.getters[a["a"].GETTERS.AUTH_USER_PROFILE]})),p=Object(r["computed"])((function(){return t.user.created_at?Object(c["a"])(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):""})),E=Object(r["computed"])((function(){return t.user.birth_date?Object(c["a"])(new Date(t.user.birth_date),"dd/MM/yyyy"):""})),f=Object(r["ref"])(!1);function j(e){f.value=e}function T(e){n.dispatch(a["e"].ACTIONS.DELETE_USER_ACCOUNT,{username:e})}return function(e,t){var n=Object(r["resolveComponent"])("Modal");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,[Object(r["unref"])(f)?(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"admin.CONFIRM_USER_ACCOUNT_DELETION",strongMessage:Object(r["unref"])(O).username,onConfirmAction:t[0]||(t[0]=function(e){return T(Object(r["unref"])(O).username)}),onCancelAction:t[1]||(t[1]=function(e){return j(!1)})},null,8,["title","strongMessage"])):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("dl",null,[Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(p)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(O).first_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(O).last_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(E)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(O).location),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIO"))+":",1),Object(r["createElementVNode"])("dd",s,Object(r["toDisplayString"])(Object(r["unref"])(O).bio),1)]),Object(r["unref"])(b)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",l,[Object(r["unref"])(m).username!==Object(r["unref"])(O).username?(Object(r["openBlock"])(),Object(r["createElementBlock"])("button",{key:0,class:"danger",onClick:t[2]||(t[2]=Object(r["withModifiers"])((function(e){return j(!0)}),["prevent"]))},Object(r["toDisplayString"])(e.$t("admin.DELETE_USER")),1)):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("button",{onClick:t[3]||(t[3]=function(t){return e.$router.go(-1)})},Object(r["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",u,[Object(r["createElementVNode"])("button",{onClick:t[4]||(t[4]=function(t){return e.$router.push("/profile/edit")})},Object(r["toDisplayString"])(e.$t("user.PROFILE.EDIT")),1),Object(r["createElementVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/")})},Object(r["toDisplayString"])(e.$t("common.HOME")),1)]))])}}}),O=(n("423b"),n("6b0d")),b=n.n(O);const m=b()(d,[["__scopeId","data-v-7da6fc6b"]]);t["a"]=m},7390:function(e,t,n){"use strict";n("7415")},7415:function(e,t,n){},7416:function(e,t,n){"use strict";n.d(t,"a",(function(){return g})),n.d(t,"b",(function(){return k})),n.d(t,"c",(function(){return v}));n("d81d"),n("caad"),n("4de4"),n("d3b7"),n("2532");var r=n("b166"),c=n("d6e9"),a=n("b1d0"),o=n("69eb"),i=n("a618"),s=n("f628"),l=n("1aab"),u=n("2fc8"),d=n("8cac"),O=n("cdb6"),b=n("fc4c"),m=n("af8b"),p=n("74b5"),E=n("5e65"),f=n("1119"),j=n("6284"),T={week:{api:"yyyy-MM-dd",chart:"dd/MM/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},S=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],_=function(e,t){for(var n=[],r=Object(E["d"])(e.duration,e.start,t);r<=e.end;r=Object(E["e"])(e.duration,r))n.push(r);return n},A=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},N=function(e){var t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((function(e){var n=e.color?e.color:f["c"][e.label];t.average_speed.push(A(e.label,n,!0)),t.nb_workouts.push(A(e.label,n)),t.total_distance.push(A(e.label,n)),t.total_duration.push(A(e.label,n)),t.total_ascent.push(A(e.label,n)),t.total_descent.push(A(e.label,n))})),t},R=function(e,t,n){switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return Object(j["b"])(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},g=function(e,t,n,c,a,o){var i=_(e,t),s=T[e.duration],l=n.filter((function(e){return c.includes(e.id)})),u=[],d=N(l),O={};return l.map((function(e){return O[e.label]=e.id})),i.map((function(e){var t=Object(r["a"])(e,s.api),n=Object(r["a"])(e,s.chart);u.push(n),S.map((function(e){d[e].map((function(n){n.data.push(a!=={}&&t in a&&O[n.label]in a[t]?R(e,a[t][O[n.label]][e],o):"average_speed"===e?null:0)}))}))})),{labels:u,datasets:d}},k=function(e,t,n){var r=n?1:0,O="year"===t?Object(c["a"])(Object(a["a"])(e,9)):"week"===t?Object(o["a"])(Object(i["a"])(e,2),{weekStartsOn:r}):Object(s["a"])(Object(i["a"])(e,11)),b="year"===t?Object(l["a"])(e):"week"===t?Object(u["a"])(e,{weekStartsOn:r}):Object(d["a"])(e);return{duration:t,end:b,start:O}},v=function(e,t,n){var r=e.duration,E=e.start,f=e.end,j=n?1:0;return{duration:r,end:"year"===r?Object(l["a"])(t?Object(a["a"])(f,1):Object(O["a"])(f,1)):"week"===r?Object(u["a"])(t?Object(b["a"])(f,1):Object(m["a"])(f,1),{weekStartsOn:j}):Object(d["a"])(t?Object(i["a"])(f,1):Object(p["a"])(f,1)),start:"year"===r?Object(c["a"])(t?Object(a["a"])(E,1):Object(O["a"])(E,1)):"week"===r?Object(o["a"])(t?Object(b["a"])(E,1):Object(m["a"])(E,1),{weekStartsOn:j}):Object(s["a"])(t?Object(i["a"])(E,1):Object(p["a"])(E,1))}}},"76bb":function(e,t,n){},7826:function(e,t,n){},7875:function(e,t,n){},"7a25":function(e,t,n){"use strict";n("d08c")},"7a774":function(e,t,n){},"7cc4":function(e,t,n){"use strict";n("64bb")},"7d95":function(e,t,n){"use strict";n("7a774")},"83d9":function(e,t,n){},"88c3":function(e,t,n){"use strict";n("d3b7"),n("159b"),n("ddb0"),n("ac1f"),n("466d");var r=n("47e2");function c(){var e=n("e7b6"),t={};return e.keys().forEach((function(n){var r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){var c=r[1];t[c]=e(n).default}})),t}t["a"]=Object(r["a"])({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:c()})},8907:function(e,t,n){},9176:function(e,t,n){"use strict";n("4e82"),n("99af");var r=n("7a23"),c={class:"table-selects"},a=["value"],o=["value"],i=["value"],s=["value"],l=["value"],u=["value"],d=Object(r["defineComponent"])({props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup:function(e,t){var n=t.emit,d=e,O=Object(r["toRefs"])(d),b=O.order_by,m=O.query,p=O.sort,E=O.message,f=[10,25,50,100];function j(e){n("updateSelect",e.target.id,e.target.value)}return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order_by",id:"order_by",value:Object(r["unref"])(m).order_by,onChange:j},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(b),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("".concat(Object(r["unref"])(E),".").concat(t.toUpperCase()))),9,o)})),128))],40,a)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order",id:"order",value:Object(r["unref"])(m).order,onChange:j},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(p),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.".concat(t.toUpperCase()))),9,s)})),128))],40,i)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"per_page",id:"per_page",value:Object(r["unref"])(m).per_page,onChange:j},[(Object(r["openBlock"])(),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(f,(function(e){return Object(r["createElementVNode"])("option",{value:e,key:e},Object(r["toDisplayString"])(e),9,u)})),64))],40,l)])])}}}),O=(n("a7aa"),n("6b0d")),b=n.n(O);const m=b()(d,[["__scopeId","data-v-72463173"]]);t["a"]=m},9230:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return o}));n("d81d");var r=n("6284"),c=function(e,t,n){var c={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"}},a=[],o=[],i=[];return e.map((function(e){a.push(e.distance),o.push(e.duration),c.speed.data.push(Object(r["b"])("km",e.speed,n)),c.elevation.data.push(Object(r["b"])("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:a,duration_labels:o,datasets:c,coordinates:i}},a=function(e){var t=e.length;if(0===t)return{};var n={};return e.map((function(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},o={order:"desc",order_by:"workout_date"}},"923f":function(e,t,n){"use strict";n.d(t,"c",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return l}));n("d81d");var r=n("8923"),c=n("d481"),a=n("88c3"),o={en:r["a"],fr:c["a"]},i={en:"English",fr:"Français"},s=a["a"].global.availableLocales,l=s.map((function(e){return{label:i[e],value:e}}))},9303:function(e,t,n){"use strict";n("2386")},"96a3":function(e,t,n){"use strict";n("ef3f")},"97e5":function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"b",(function(){return d}));n("caad"),n("2532"),n("a630"),n("3ca3"),n("99af");var r=["asc","desc"],c=1,a=10,o=function(e,t){return e&&"string"===typeof e&&+e>0?+e:t},i=function(e,t,n){return e&&"string"===typeof e&&t.includes(e)?e:n},s=function(e,t,n,s){var l=s||{},u=l.defaultSort||"asc",d={};return d.page=o(e.page,c),d.per_page=o(e.per_page,a),d.order=i(e.order,r,u),d.order_by=i(e.order_by,t,n),d},l=["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=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Array.from({length:e-t+1},(function(e,n){return t+n}))},d=function(e,t){if(e<0)return[];if(e<9)return u(e);var 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]0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Cn,[Object(c["createElementVNode"])("div",Dn,[Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",yn,[Object(c["createElementVNode"])("button",{class:"cancel",onClick:t[0]||(t[0]=Object(c["withModifiers"])((function(t){return e.$router.push("/profile/sports")}),["prevent"]))},Object(c["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Un,[Object(c["createElementVNode"])("button",{onClick:t[1]||(t[1]=function(t){return e.$router.push("/profile/edit/sports")})},Object(c["toDisplayString"])(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),Object(c["createElementVNode"])("button",{onClick:t[2]||(t[2]=function(t){return e.$router.push("/")})},Object(c["toDisplayString"])(e.$t("common.HOME")),1)]))]),Object(c["createElementVNode"])("table",null,[Object(c["createElementVNode"])("thead",null,[Object(c["createElementVNode"])("tr",null,[Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.COLOR")),1),Object(c["createElementVNode"])("th",Pn,Object(c["toDisplayString"])(e.$t("workouts.SPORT",0)),1),Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("workouts.WORKOUT",0)),1),Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),Object(c["createElementVNode"])("th",null,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("th",wn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.ACTION")),1)):Object(c["createCommentVNode"])("",!0)])]),Object(c["createElementVNode"])("tbody",null,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(b),(function(a){return Object(c["openBlock"])(),Object(c["createElementBlock"])("tr",{key:a.id},[Object(c["createElementVNode"])("td",null,[Object(c["createElementVNode"])("span",Ln,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.COLOR")),1),j(a.id)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("input",{key:0,class:"sport-color",type:"color",value:Object(c["unref"])(E).color,onInput:T},null,40,Mn)):(Object(c["openBlock"])(),Object(c["createBlock"])(n,{key:1,title:a.translatedLabel,"sport-label":a.label,color:a.color?a.color:Object(c["unref"])(d)[a.label]},null,8,["title","sport-label","color"]))]),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["sport-label",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",Bn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.LABEL")),1),Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(a.translatedLabel)+" ",1),a.is_active?Object(c["createCommentVNode"])("",!0):(Object(c["openBlock"])(),Object(c["createElementBlock"])("span",Vn," ("+Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),Object(c["unref"])(m)&&j(a.id)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("i",zn)):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(p)&&Object(c["unref"])(E).sport_id===a.id?(Object(c["openBlock"])(),Object(c["createBlock"])(r,{key:2,message:Object(c["unref"])(p)},null,8,["message"])):Object(c["createCommentVNode"])("",!0)],2),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["text-center",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",xn,Object(c["toDisplayString"])(e.$t("workouts.WORKOUT",0)),1),Object(c["createElementVNode"])("i",{class:Object(c["normalizeClass"])("fa fa".concat(Object(c["unref"])(u).sports_list.includes(a.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["text-center",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",Gn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),j(a.id)&&a.is_active?(Object(c["openBlock"])(),Object(c["createElementBlock"])("input",{key:0,type:"checkbox",checked:a.is_active_for_user,onChange:_},null,40,Fn)):(Object(c["openBlock"])(),Object(c["createElementBlock"])("i",{key:1,class:Object(c["normalizeClass"])("fa fa".concat(a.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),Object(c["createElementVNode"])("td",{class:Object(c["normalizeClass"])(["text-center",{"disabled-sport":!a.is_active}])},[Object(c["createElementVNode"])("span",Wn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),j(a.id)&&a.is_active?(Object(c["openBlock"])(),Object(c["createElementBlock"])("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:Object(c["unref"])(E).stopped_speed_threshold,onInput:S},null,40,Kn)):(Object(c["openBlock"])(),Object(c["createElementBlock"])("span",$n,Object(c["toDisplayString"])(a.stopped_speed_threshold),1))],2),Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("td",Hn,[Object(c["createElementVNode"])("span",Yn,Object(c["toDisplayString"])(e.$t("user.PROFILE.SPORT.ACTION")),1),0===Object(c["unref"])(E).sport_id?(Object(c["openBlock"])(),Object(c["createElementBlock"])("button",{key:0,onClick:function(e){return f(a)}},Object(c["toDisplayString"])(e.$t("buttons.EDIT")),9,qn)):Object(c["createCommentVNode"])("",!0),j(a.id)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Xn,[Object(c["createElementVNode"])("button",{disabled:Object(c["unref"])(m),onClick:N},Object(c["toDisplayString"])(e.$t("buttons.SUBMIT")),9,Zn),Object(c["createElementVNode"])("button",{disabled:Object(c["unref"])(m),onClick:function(e){return R(e,a.id)}},Object(c["toDisplayString"])(e.$t("buttons.RESET")),9,Jn),Object(c["createElementVNode"])("button",{disabled:Object(c["unref"])(m),onClick:t[3]||(t[3]=function(e){return f(null)})},Object(c["toDisplayString"])(e.$t("buttons.CANCEL")),9,Qn)])):Object(c["createCommentVNode"])("",!0)])):Object(c["createCommentVNode"])("",!0)])})),128))])]),Object(c["unref"])(l)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",er,[Object(c["createElementVNode"])("button",{class:"cancel",onClick:t[4]||(t[4]=Object(c["withModifiers"])((function(t){return e.$router.push("/profile/sports")}),["prevent"]))},Object(c["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",tr,[Object(c["createElementVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/profile/edit/sports")})},Object(c["toDisplayString"])(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),Object(c["createElementVNode"])("button",{onClick:t[6]||(t[6]=function(t){return e.$router.push("/")})},Object(c["toDisplayString"])(e.$t("common.HOME")),1)]))])):Object(c["createCommentVNode"])("",!0)])}}});n("43c0");const rr=I()(nr,[["__scopeId","data-v-4775544a"]]);var cr=rr,ar=n("0613"),or=n("2909"),ir=n("5530"),sr=n("1556"),lr=n("68c6"),ur=function(e){return Object(c["pushScopeId"])("data-v-c9d1f10c"),e=e(),Object(c["popScopeId"])(),e},dr={class:"timeline-workout"},Or={class:"box"},br={class:"workout-user-date"},mr={class:"workout-user"},pr=["title"],Er={key:0},fr={key:1,class:"no-map"},jr={class:"img"},Tr={class:"data"},Sr=ur((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)})),_r={key:0},Ar={class:"data"},Nr=ur((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)})),Rr={key:0,class:"data elevation"},gr=["alt"],kr={class:"data-values"},vr=Object(c["createTextVNode"])("/ "),Ir={key:1,class:"data altitude"},hr=ur((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)})),Cr={class:"data-values"},Dr=Object(c["createTextVNode"])(" +"),yr=Object(c["createTextVNode"])("/- "),Ur=Object(c["defineComponent"])({props:{user:null,useImperialUnits:{type:Boolean},workout:{default:function(){return{}}},sport:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(o["a"])(),r=Object(c["toRefs"])(t),i=r.user,s=r.workout,l=r.sport,u=r.useImperialUnits,d=Object(c["computed"])((function(){return n.getters[a["b"].GETTERS.LOCALE]}));return function(e,t){var n=Object(c["resolveComponent"])("router-link"),r=Object(c["resolveComponent"])("SportImage"),a=Object(c["resolveComponent"])("Distance");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",dr,[Object(c["createElementVNode"])("div",Or,[Object(c["createElementVNode"])("div",br,[Object(c["createElementVNode"])("div",mr,[Object(c["createVNode"])(ve["a"],{user:Object(c["unref"])(i)},null,8,["user"]),Object(c["unref"])(i).username?(Object(c["openBlock"])(),Object(c["createBlock"])(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:Object(c["unref"])(i).username}}},{default:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(Object(c["unref"])(i).username),1)]})),_:1},8,["to"])):Object(c["createCommentVNode"])("",!0)]),Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:Object(c["unref"])(s).id}}},{default:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(Object(c["unref"])(s).title),1)]})),_:1},8,["to"])):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(s).workout_date&&Object(c["unref"])(i)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{key:1,class:"workout-date",title:Object(c["unref"])(Re["a"])(Object(c["unref"])(he["c"])(Object(c["unref"])(s).workout_date,Object(c["unref"])(i).timezone),"dd/MM/yyyy HH:mm")},Object(c["toDisplayString"])(Object(c["unref"])(sr["a"])(new Date(Object(c["unref"])(s).workout_date),new Date,{addSuffix:!0,locale:Object(c["unref"])(d)})),9,pr)):Object(c["createCommentVNode"])("",!0)]),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["workout-map",{"no-cursor":!Object(c["unref"])(s)}]),onClick:t[0]||(t[0]=function(t){return Object(c["unref"])(s).id?e.$router.push({name:"Workout",params:{workoutId:Object(c["unref"])(s).id}}):null})},[Object(c["unref"])(s)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Er,[Object(c["unref"])(s).with_gpx?(Object(c["openBlock"])(),Object(c["createBlock"])(lr["a"],{key:0,workout:Object(c["unref"])(s)},null,8,["workout"])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",fr,Object(c["toDisplayString"])(e.$t("workouts.NO_MAP")),1))])):Object(c["createCommentVNode"])("",!0)],2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["workout-data",{"without-gpx":Object(c["unref"])(s)&&!Object(c["unref"])(s).with_gpx}]),onClick:t[1]||(t[1]=function(t){return Object(c["unref"])(s).id?e.$router.push({name:"Workout",params:{workoutId:Object(c["unref"])(s).id}}):null})},[Object(c["createElementVNode"])("div",jr,[Object(c["unref"])(l).label?(Object(c["openBlock"])(),Object(c["createBlock"])(r,{key:0,"sport-label":Object(c["unref"])(l).label,color:Object(c["unref"])(l).color},null,8,["sport-label","color"])):Object(c["createCommentVNode"])("",!0)]),Object(c["createElementVNode"])("div",Tr,[Sr,Object(c["unref"])(s)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("span",_r,Object(c["toDisplayString"])(Object(c["unref"])(s).moving),1)):Object(c["createCommentVNode"])("",!0)]),Object(c["createElementVNode"])("div",Ar,[Nr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:0,distance:Object(c["unref"])(s).distance,digits:3,unitFrom:"km",useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0)]),Object(c["unref"])(s)&&Object(c["unref"])(s).with_gpx?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Rr,[Object(c["createElementVNode"])("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,gr),Object(c["createElementVNode"])("div",kr,[Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:0,distance:Object(c["unref"])(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0),vr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:1,distance:Object(c["unref"])(s).max_alt,unitFrom:"m",useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0)])])):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(s)&&Object(c["unref"])(s).with_gpx?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ir,[hr,Object(c["createElementVNode"])("div",Cr,[Dr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:0,distance:Object(c["unref"])(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0),yr,Object(c["unref"])(s).id?(Object(c["openBlock"])(),Object(c["createBlock"])(a,{key:1,distance:Object(c["unref"])(s).descent,unitFrom:"m",useImperialUnits:Object(c["unref"])(u)},null,8,["distance","useImperialUnits"])):Object(c["createCommentVNode"])("",!0)])])):Object(c["createCommentVNode"])("",!0)],2)])])}}});n("4f8e");const Pr=I()(Ur,[["__scopeId","data-v-c9d1f10c"]]);var wr=Pr,Lr=n("1724"),Mr=n("9230"),Br={id:"timeline"},Vr={class:"section-title"},zr={key:0},xr={key:1},Gr={key:1,class:"more-workouts"},Fr=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(o["a"])(),r=Object(c["toRefs"])(t),i=r.sports,s=r.user,l=Object(c["ref"])(1),u=5,d=t.user.nb_workouts>=u?u:t.user.nb_workouts;Object(c["onBeforeMount"])((function(){return m()}));var O=Object(c["computed"])((function(){return n.getters[a["f"].GETTERS.TIMELINE_WORKOUTS]})),b=Object(c["computed"])((function(){return O.value.length>0&&null!==O.value[O.value.length-1].previous_workout}));function m(){n.dispatch(a["f"].ACTIONS.GET_TIMELINE_WORKOUTS,Object(ir["a"])({page:l.value,per_page:u},Mr["a"]))}function p(){l.value+=1,n.dispatch(a["f"].ACTIONS.GET_MORE_TIMELINE_WORKOUTS,Object(ir["a"])({page:l.value,per_page:u},Mr["a"]))}return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Br,[Object(c["createElementVNode"])("div",Vr,Object(c["toDisplayString"])(e.$t("workouts.LATEST_WORKOUTS")),1),Object(c["unref"])(s).nb_workouts>0&&0===Object(c["unref"])(O).length?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",zr,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(or["a"])(Array(Object(c["unref"])(d)).keys()),(function(e){return Object(c["openBlock"])(),Object(c["createBlock"])(wr,{user:Object(c["unref"])(s),useImperialUnits:Object(c["unref"])(s).imperial_units,key:e},null,8,["user","useImperialUnits"])})),128))])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",xr,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(O),(function(e){return Object(c["openBlock"])(),Object(c["createBlock"])(wr,{workout:e,sport:Object(c["unref"])(O).length>0?Object(c["unref"])(i).filter((function(t){return t.id===e.sport_id}))[0]:null,user:Object(c["unref"])(s),useImperialUnits:Object(c["unref"])(s).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])})),128)),0===Object(c["unref"])(O).length?(Object(c["openBlock"])(),Object(c["createBlock"])(Lr["a"],{key:0})):Object(c["createCommentVNode"])("",!0),Object(c["unref"])(b)?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Gr,[Object(c["createElementVNode"])("button",{onClick:p},Object(c["toDisplayString"])(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):Object(c["createCommentVNode"])("",!0)]))])}}});n("ba00");const Wr=I()(Fr,[["__scopeId","data-v-9ef2a9ac"]]);var Kr=Wr,$r=n("74b5"),Hr=n("a618"),Yr=n("f7f1"),qr=n("1ba4"),Xr=n("5888"),Zr=n("4e31"),Jr=(n("fb6a"),["title"]),Qr=Object(c["defineComponent"])({props:{workout:null,sportLabel:null,sportColor:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.workout,a=n.sportLabel;return function(t,n){var o=Object(c["resolveComponent"])("SportImage");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:"calendar-workout",onClick:n[0]||(n[0]=function(e){return t.$router.push({name:"Workout",params:{workoutId:Object(c["unref"])(r).id}})})},[Object(c["createVNode"])(o,{"sport-label":Object(c["unref"])(a),title:Object(c["unref"])(r).title,color:e.sportColor},null,8,["sport-label","title","color"]),Object(c["createElementVNode"])("sup",null,[Object(c["unref"])(r).records.length>0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:Object(c["unref"])(r).records.map((function(e){return" ".concat(t.$t("workouts.RECORD_".concat(e.record_type)))}))},null,8,Jr)):Object(c["createCommentVNode"])("",!0)])])}}});n("374b");const ec=Qr;var tc=ec,nc=(n("4fad"),{class:"donut-chart"}),rc={height:"34",width:"34",viewBox:"0 0 34 34"},cc=["stroke","stroke-dashoffset","transform"],ac=Object(c["defineComponent"])({props:{colors:null,datasets:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.colors,a=n.datasets,o=-90,i=16,s=16,l=14,u=2*Math.PI*l;function d(e,t){return t-e*t}function O(e,t){var n="rotate(".concat(o,", ").concat(i,", ").concat(s,")");return o=360*t+o,n}return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",nc,[(Object(c["openBlock"])(),Object(c["createElementBlock"])("svg",rc,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object.entries(Object(c["unref"])(a)),(function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("g",{key:t},[Object(c["createElementVNode"])("circle",{cx:i,cy:s,r:l,fill:"transparent",stroke:Object(c["unref"])(r)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:O(t,e[1].percentage)},null,8,cc)])})),128))]))])}}});const oc=ac;var ic=oc,sc={class:"calendar-workouts-chart"},lc={class:"workouts-count"},uc={key:0,class:"workouts-pane"},dc={class:"more-workouts"},Oc=Object(c["defineComponent"])({props:{colors:null,datasets:null,sports:null,workouts:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.colors,a=n.datasets,o=n.sports,i=n.workouts,s=Object(c["ref"])(!0);function l(e){e.stopPropagation(),s.value=!s.value}return function(e,t){var n=Object(c["resolveDirective"])("click-outside");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",sc,[Object(c["createElementVNode"])("div",{class:"workouts-chart",onClick:l},[Object(c["createElementVNode"])("div",lc,Object(c["toDisplayString"])(Object(c["unref"])(i).length),1),Object(c["createVNode"])(ic,{datasets:Object(c["unref"])(a),colors:Object(c["unref"])(r)},null,8,["datasets","colors"])]),s.value?Object(c["createCommentVNode"])("",!0):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",uc,[Object(c["withDirectives"])((Object(c["openBlock"])(),Object(c["createElementBlock"])("div",dc,[Object(c["createElementVNode"])("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:l}),(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(i),(function(e,t){return Object(c["openBlock"])(),Object(c["createBlock"])(tc,{key:t,workout:e,sportLabel:Object(c["unref"])(ee["b"])(e,Object(c["unref"])(o))},null,8,["workout","sportLabel"])})),128))])),[[n,l]])]))])}}});n("9d02");const bc=I()(Oc,[["__scopeId","data-v-f372901a"]]);var mc=bc,pc={class:"calendar-workouts"},Ec={class:"desktop-display"},fc={key:0,class:"workouts-display"},jc={key:1,class:"donut-display"},Tc={class:"mobile-display"},Sc={key:0,class:"donut-display"},_c=Object(c["defineComponent"])({props:{workouts:null,sports:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.workouts,a=n.sports,o=Object(c["computed"])((function(){return Object(Mr["c"])(t.workouts)})),i=Object(c["computed"])((function(){return Object(ee["d"])(t.sports)})),s=6;return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",pc,[Object(c["createElementVNode"])("div",Ec,[Object(c["unref"])(r).length<=s?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",fc,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(r).slice(0,s),(function(e,t){return Object(c["openBlock"])(),Object(c["createBlock"])(tc,{key:t,workout:e,sportLabel:Object(c["unref"])(ee["b"])(e,Object(c["unref"])(a)),sportColor:Object(c["unref"])(ee["a"])(e,Object(c["unref"])(a))},null,8,["workout","sportLabel","sportColor"])})),128))])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",jc,[Object(c["createVNode"])(mc,{workouts:Object(c["unref"])(r),sports:Object(c["unref"])(a),datasets:Object(c["unref"])(o),colors:Object(c["unref"])(i)},null,8,["workouts","sports","datasets","colors"])]))]),Object(c["createElementVNode"])("div",Tc,[Object(c["unref"])(r).length>0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Sc,[Object(c["createVNode"])(mc,{workouts:Object(c["unref"])(r),sports:Object(c["unref"])(a),datasets:Object(c["unref"])(o),colors:Object(c["unref"])(i)},null,8,["workouts","sports","datasets","colors"])])):Object(c["createCommentVNode"])("",!0)])])}}});n("e0d4");const Ac=_c;var Nc=Ac,Rc={class:"calendar-cells"},gc={class:"calendar-cell-day"},kc=Object(c["defineComponent"])({props:{currentDay:null,endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.currentDay,a=n.endDate,o=n.sports,i=n.startDate,s=n.timezone,l=n.weekStartingMonday,u=n.workouts,d=Object(c["ref"])([]);function O(){d.value=[];var e=i.value;while(e<=a.value){for(var t=[],n=0;n<7;n++)t.push(e),e=Object(Yr["a"])(e,1);d.value.push(t)}}function b(e){return l.value?[5,6].includes(e):[0,6].includes(e)}function m(e,t){return t?t.filter((function(t){return Object(qr["a"])(Object(he["c"])(t.workout_date,s),e)})).reverse():[]}return Object(c["onMounted"])((function(){return O()})),Object(c["watch"])((function(){return t.currentDay}),(function(){return O()})),function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Rc,[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(d.value,(function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:"calendar-row",key:t},[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(e,(function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:Object(c["normalizeClass"])(["calendar-cell",{"disabled-cell":!Object(c["unref"])(Xr["a"])(e,Object(c["unref"])(r)),"week-end":b(t),today:Object(c["unref"])(Zr["a"])(e)}]),key:t},[Object(c["createVNode"])(Nc,{workouts:m(e,Object(c["unref"])(u)),sports:Object(c["unref"])(o)},null,8,["workouts","sports"]),Object(c["createElementVNode"])("div",gc,Object(c["toDisplayString"])(Object(c["unref"])(Re["a"])(e,"d")),1)],2)})),128))])})),128))])}}});n("e4394");const vc=kc;var Ic=vc,hc={class:"calendar-days"},Cc=Object(c["defineComponent"])({props:{startDate:null,localeOptions:null},setup:function(e){for(var t=e,n=[],r=0;r<7;r++)n.push(Object(Yr["a"])(t.startDate,r));return function(t,r){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",hc,[(Object(c["openBlock"])(),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(n,(function(t,n){return Object(c["createElementVNode"])("div",{class:"calendar-day",key:n},Object(c["toDisplayString"])(Object(c["unref"])(Re["a"])(t,"EEE",{locale:e.localeOptions})),1)})),64))])}}});n("bbab");const Dc=Cc;var yc=Dc,Uc={class:"calendar-header"},Pc=Object(c["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),wc=[Pc],Lc={class:"calendar-month"},Mc=Object(c["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Bc=[Mc],Vc=Object(c["defineComponent"])({props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup:function(e,t){var n=t.emit,r=e,a=Object(c["toRefs"])(r),o=a.day,i=a.localeOptions;return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Uc,[Object(c["createElementVNode"])("div",{class:"calendar-arrow calendar-arrow-left",onClick:t[0]||(t[0]=function(e){return n("displayPreviousMonth")})},wc),Object(c["createElementVNode"])("div",Lc,[Object(c["createElementVNode"])("span",null,Object(c["toDisplayString"])(Object(c["unref"])(Re["a"])(Object(c["unref"])(o),"MMM yyyy",{locale:Object(c["unref"])(i)})),1)]),Object(c["createElementVNode"])("div",{class:"calendar-arrow calendar-arrow-right",onClick:t[1]||(t[1]=function(e){return n("displayNextMonth")})},Bc)])}}});n("68cf");const zc=Vc;var xc=zc,Gc={id:"user-calendar"},Fc={class:"calendar-card box"},Wc=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(o["a"])(),r=Object(c["toRefs"])(t),i=r.sports,s=r.user,l="yyyy-MM-dd",u=Object(c["ref"])(new Date),d=Object(c["ref"])(Object(he["b"])(u.value,t.user.weekm)),O=Object(c["computed"])((function(){return n.getters[a["f"].GETTERS.CALENDAR_WORKOUTS]})),b=Object(c["computed"])((function(){return n.getters[a["b"].GETTERS.LOCALE]}));function m(){d.value=Object(he["b"])(u.value,t.user.weekm);var e=Object(ir["a"])({from:Object(Re["a"])(d.value.start,l),to:Object(Re["a"])(d.value.end,l),page:1,per_page:100},Mr["a"]);n.dispatch(a["f"].ACTIONS.GET_CALENDAR_WORKOUTS,e)}function p(){u.value=Object($r["a"])(u.value,1),m()}function E(){u.value=Object(Hr["a"])(u.value,1),m()}return Object(c["onBeforeMount"])((function(){return m()})),function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Gc,[Object(c["createElementVNode"])("div",Fc,[Object(c["createVNode"])(xc,{day:Object(c["unref"])(u),"locale-options":Object(c["unref"])(b),onDisplayNextMonth:p,onDisplayPreviousMonth:E},null,8,["day","locale-options"]),Object(c["createVNode"])(yc,{"start-date":Object(c["unref"])(d).start,"locale-options":Object(c["unref"])(b)},null,8,["start-date","locale-options"]),Object(c["createVNode"])(Ic,{currentDay:Object(c["unref"])(u),"end-date":Object(c["unref"])(d).end,sports:Object(c["unref"])(i),"start-date":Object(c["unref"])(d).start,timezone:Object(c["unref"])(s).timezone,workouts:Object(c["unref"])(O),weekStartingMonday:Object(c["unref"])(s).weekm},null,8,["currentDay","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])])}}});n("11f9");const Kc=Wc;var $c=Kc,Hc=n("f628"),Yc=n("8cac"),qc=n("ec59"),Xc={class:"user-month-stats"},Zc=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.sports,a=n.user,o=new Date,i={duration:"week",start:Object(Hc["a"])(o),end:Object(Yc["a"])(o)},s=t.sports.map((function(e){return e.id}));return function(e,t){var n=Object(c["resolveComponent"])("Card");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Xc,[Object(c["createVNode"])(n,null,{title:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(e.$t("dashboard.THIS_MONTH")),1)]})),content:Object(c["withCtx"])((function(){return[Object(c["createVNode"])(qc["a"],{sports:Object(c["unref"])(r),user:Object(c["unref"])(a),"chart-params":i,"displayed-sport-ids":Object(c["unref"])(s),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])]})),_:1})])}}});n("7d95");const Jc=I()(Zc,[["__scopeId","data-v-1bcddc12"]]);var Qc=Jc,ea=(n("4e82"),{class:"records-card"}),ta={class:"record-type"},na={class:"record-value"},ra={class:"record-date"},ca=Object(c["defineComponent"])({props:{records:null,sportTranslatedLabel:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.records,a=n.sportTranslatedLabel;return function(e,t){var n=Object(c["resolveComponent"])("SportImage"),o=Object(c["resolveComponent"])("router-link"),i=Object(c["resolveComponent"])("Card");return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",ea,[Object(c["createVNode"])(i,null,{title:Object(c["withCtx"])((function(){return[Object(c["createVNode"])(n,{"sport-label":Object(c["unref"])(r).label,color:Object(c["unref"])(r).color},null,8,["sport-label","color"]),Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(Object(c["unref"])(a)),1)]})),content:Object(c["withCtx"])((function(){return[(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object(c["unref"])(r).records,(function(t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",{class:"record",key:t.id},[Object(c["createElementVNode"])("span",ta,Object(c["toDisplayString"])(e.$t("workouts.RECORD_".concat(t.record_type))),1),Object(c["createElementVNode"])("span",na,Object(c["toDisplayString"])(t.value),1),Object(c["createElementVNode"])("span",ra,[Object(c["createVNode"])(o,{to:{name:"Workout",params:{workoutId:t.workout_id}}},{default:Object(c["withCtx"])((function(){return[Object(c["createTextVNode"])(Object(c["toDisplayString"])(t.workout_date),1)]})),_:2},1032,["to"])])])})),128))]})),_:1})])}}});n("b4bc");const aa=I()(ca,[["__scopeId","data-v-aee1f956"]]);var oa=aa,ia=(n("7db0"),n("6284")),sa=function(e,t,n){var r,c="km",a=n?ia["c"][c].defaultTarget:c;switch(e.record_type){case"AS":case"MS":r="".concat(Object(ia["a"])(+e.value,c,a,2)," ").concat(a,"/h");break;case"FD":r="".concat(Object(ia["a"])(+e.value,c,a,3)," ").concat(a);break;case"LD":r=e.value;break;default:throw new Error('Invalid record type, expected: "AS", "FD", "LD", "MD", got: "'.concat(e.record_type,'"'))}return{workout_date:Object(he["a"])(Object(he["c"])(e.workout_date,t)).workout_date,workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:r}},la=function(e,t,n,r){return e.reduce((function(e,c){var a=t.find((function(e){return e.id===c.sport_id}));return a&&a.label&&(void 0===e[a.translatedLabel]&&(e[a.translatedLabel]={label:a.label,color:a.color,records:[]}),e[a.translatedLabel].records.push(sa(c,n,r))),e}),{})},ua=function(e){return Object(c["pushScopeId"])("data-v-ae25a82a"),e=e(),Object(c["popScopeId"])(),e},da={class:"user-records-section"},Oa={class:"section-title"},ba=ua((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)})),ma={class:"user-records"},pa={key:0,class:"no-records"},Ea=Object(c["defineComponent"])({props:{sports:null,user:null},setup:function(e){var t=e,n=Object(Q["b"])(),r=n.t,a=Object(c["computed"])((function(){return la(t.user.records,Object(ee["e"])(t.sports,r),t.user.timezone,t.user.imperial_units)}));return function(t,n){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",da,[Object(c["createElementVNode"])("div",Oa,[ba,Object(c["createTextVNode"])(" "+Object(c["toDisplayString"])(t.$t("workouts.RECORD",2)),1)]),Object(c["createElementVNode"])("div",ma,[0===Object.keys(Object(c["unref"])(a)).length?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",pa,Object(c["toDisplayString"])(t.$t("workouts.NO_RECORDS")),1)):Object(c["createCommentVNode"])("",!0),(Object(c["openBlock"])(!0),Object(c["createElementBlock"])(c["Fragment"],null,Object(c["renderList"])(Object.keys(Object(c["unref"])(a)).sort(),(function(t){return Object(c["openBlock"])(),Object(c["createBlock"])(oa,{sportTranslatedLabel:t,records:Object(c["unref"])(a)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])})),128))])])}}});n("c53b");const fa=I()(Ea,[["__scopeId","data-v-ae25a82a"]]);var ja=fa,Ta=(n("b680"),n("1276"),{id:"user-stats"}),Sa=Object(c["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(Q["b"])(),r=n.t,a=Object(c["toRefs"])(t),o=a.user,i=Object(c["computed"])((function(){return t.user.total_duration})),s=Object(c["computed"])((function(){return O(i)})),l="km",u=o.value.imperial_units?ia["c"][l].defaultTarget:l,d=o.value.imperial_units?Object(ia["a"])(o.value.total_distance,l,u,2):parseFloat(o.value.total_distance.toFixed(2));function O(e){var t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?"".concat(e.value.split(" ")[0]," ").concat(e.value.match(/days/g)?r("common.DAY",2):r("common.DAY",1)):"0 ".concat(r("common.DAY",2),","),duration:"".concat(t.split(":")[0],"h ").concat(t.split(":")[1],"min")}}return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ta,[Object(c["createVNode"])(V,{icon:"calendar",value:Object(c["unref"])(o).nb_workouts,text:e.$t("workouts.WORKOUT",Object(c["unref"])(o).nb_workouts)},null,8,["value","text"]),Object(c["createVNode"])(V,{icon:"road",value:Object(c["unref"])(d),text:"mi"===Object(c["unref"])(u)?"miles":Object(c["unref"])(u)},null,8,["value","text"]),Object(c["createVNode"])(V,{icon:"clock-o",value:Object(c["unref"])(s).days,text:Object(c["unref"])(s).duration},null,8,["value","text"]),Object(c["createVNode"])(V,{icon:"tags",value:Object(c["unref"])(o).nb_sports,text:e.$t("workouts.SPORT",Object(c["unref"])(o).nb_sports)},null,8,["value","text"])])}}});n("e5d1");const _a=Sa;var Aa=_a,Na=function(e){return Object(c["pushScopeId"])("data-v-2f390f91"),e=e(),Object(c["popScopeId"])(),e},Ra={key:0,id:"dashboard",class:"view"},ga={class:"container mobile-menu"},ka={class:"box"},va=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1)})),Ia=[va],ha=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1)})),Ca=[ha],Da=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1)})),ya=[Da],Ua=Na((function(){return Object(c["createElementVNode"])("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1)})),Pa=[Ua],wa={class:"container"},La={class:"container dashboard-container"},Ma={class:"left-container dashboard-sub-container"},Ba={class:"right-container dashboard-sub-container"},Va=Na((function(){return Object(c["createElementVNode"])("div",{id:"bottom"},null,-1)})),za={key:1,class:"app-loading"},xa=Object(c["defineComponent"])({setup:function(e){var t=Object(o["a"])(),n=Object(c["computed"])((function(){return t.getters[a["a"].GETTERS.AUTH_USER_PROFILE]})),r=Object(c["computed"])((function(){return t.getters[a["c"].GETTERS.SPORTS]})),i=Object(c["ref"])("calendar");function s(e){i.value=e}return function(e,t){var a=Object(c["resolveComponent"])("Loader");return Object(c["unref"])(n).username&&Object(c["unref"])(r).length>0?(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ra,[Object(c["createElementVNode"])("div",ga,[Object(c["createElementVNode"])("div",ka,[Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:t[0]||(t[0]=function(e){return s("calendar")})},Ia,2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:t[1]||(t[1]=function(e){return s("chart")})},Ca,2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:t[2]||(t[2]=function(e){return s("timeline")})},ya,2),Object(c["createElementVNode"])("div",{class:Object(c["normalizeClass"])(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:t[3]||(t[3]=function(e){return s("records")})},Pa,2)])]),Object(c["createElementVNode"])("div",wa,[Object(c["createVNode"])(Aa,{user:Object(c["unref"])(n)},null,8,["user"])]),Object(c["createElementVNode"])("div",La,[Object(c["createElementVNode"])("div",Ma,[Object(c["createVNode"])(Qc,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),Object(c["createVNode"])(ja,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),Object(c["createElementVNode"])("div",Ba,[Object(c["createVNode"])($c,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),Object(c["createVNode"])(Kr,{sports:Object(c["unref"])(r),user:Object(c["unref"])(n),class:Object(c["normalizeClass"])({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),Va])):(Object(c["openBlock"])(),Object(c["createElementBlock"])("div",za,[Object(c["createVNode"])(a)]))}}});n("3d56");const Ga=I()(xa,[["__scopeId","data-v-2f390f91"]]);var Fa=Ga,Wa=n("f7f9"),Ka={class:"not-found view"},$a=Object(c["defineComponent"])({setup:function(e){return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",Ka,[Object(c["createVNode"])(Wa["a"])])}}});const Ha=$a;var Ya=Ha,qa={id:"bike"},Xa=["src"];function Za(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",qa,[Object(c["createElementVNode"])("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,Xa)])}n("dc71");const Ja={},Qa=I()(Ja,[["render",Za],["__scopeId","data-v-39d425b4"]]);var eo=Qa,to=n("0395"),no={id:"loginOrRegister",class:"view"},ro={class:"container"},co={class:"container-sub"},ao={class:"container-sub"},oo=Object(c["defineComponent"])({props:{action:null},setup:function(e){var t=e,n=Object(c["toRefs"])(t),r=n.action;return function(e,t){return Object(c["openBlock"])(),Object(c["createElementBlock"])("div",no,[Object(c["createElementVNode"])("div",ro,[Object(c["createElementVNode"])("div",co,[Object(c["createVNode"])(eo)]),Object(c["createElementVNode"])("div",ao,[Object(c["createVNode"])(to["a"],{action:Object(c["unref"])(r)},null,8,["action"])])])])}}});n("db41");const io=I()(oo,[["__scopeId","data-v-6a38125b"]]);var so=io,lo=function(e){var t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},uo=[{path:"/",name:"Dashboard",component:Fa},{path:"/login",name:"Login",component:so,props:{action:"login"}},{path:"/register",name:"Register",component:so,props:{action:"register"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:function(){return n.e("reset").then(n.bind(null,"364c"))},props:{action:"reset"}},{path:"/profile",name:"Profile",component:function(){return n.e("profile").then(n.bind(null,"36e8"))},children:[{path:"",name:"UserProfile",component:st,props:function(e){return{tab:lo(e.path)}},children:[{path:"",name:"UserInfos",component:lt["a"]},{path:"preferences",name:"UserPreferences",component:pt},{path:"sports",name:"UserSportPreferences",component:cr,props:{isEdition:!1}}]},{path:"edit",name:"UserProfileEdition",component:Tt,props:function(e){return{tab:lo(e.path)}},children:[{path:"",name:"UserInfosEdition",component:Wt},{path:"picture",name:"UserPictureEdition",component:nn},{path:"preferences",name:"UserPreferencesEdition",component:In},{path:"sports",name:"UserSportPreferencesEdition",component:cr,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:function(){return n.e("statistics").then(n.bind(null,"ccb2"))}},{path:"/users/:username",name:"User",component:function(){return n.e("profile").then(n.bind(null,"ad3d"))}},{path:"/workouts",name:"Workouts",component:function(){return n.e("workouts").then(n.bind(null,"0385"))}},{path:"/workouts/:workoutId",name:"Workout",component:function(){return n.e("workouts").then(n.bind(null,"304a"))},props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:function(){return n.e("workouts").then(n.bind(null,"8ee9"))}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:function(){return n.e("workouts").then(n.bind(null,"304a"))},props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:function(){return n.e("workouts").then(n.bind(null,"692d"))}},{path:"/admin",name:"Administration",component:function(){return n.e("admin").then(n.bind(null,"89b3"))},children:[{path:"",name:"AdministrationMenu",component:J},{path:"application",name:"ApplicationAdministration",component:C},{path:"application/edit",name:"ApplicationAdministrationEdition",component:C,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:Ne},{path:"users",name:"UsersAdministration",component:Xe}]},{path:"/:pathMatch(.*)*",name:"not-found",component:Ya}],Oo=Object(r["a"])({history:Object(r["b"])("/"),routes:uo}),bo=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register"];Oo.beforeEach((function(e,t,n){ar["a"].dispatch(a["a"].ACTIONS.CHECK_AUTH_USER).then((function(){if(ar["a"].getters[a["a"].GETTERS.IS_AUTHENTICATED]&&bo.includes(e.path))return n("/");if(ar["a"].getters[a["a"].GETTERS.IS_AUTHENTICATED]||bo.includes(e.path))n();else{var t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((function(e){console.error(e),n()}))}));t["a"]=Oo},b3f6:function(e,t,n){"use strict";n("c661")},b4bc:function(e,t,n){"use strict";n("5140")},b633:function(e,t,n){"use strict";n("04be")},ba00:function(e,t,n){"use strict";n("15bf")},bbab:function(e,t,n){"use strict";n("6f5e")},bc3e:function(e,t,n){},be8b:function(e,t,n){"use strict";n("2edc")},c142:function(e,t,n){"use strict";n.r(t);var r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},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."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},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."])},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)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"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."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Password: 8 characters required."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Sorry, that user already exists."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Username: 3 to 12 characters required."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},a={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"])}},o={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems encounter some issues.
Please try 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"])}}},l={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},d={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"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Enter an email address"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirm the 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"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirm Password"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Password confirmation"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_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:{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"])},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"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])}},O={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farest distance"])},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_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}};t["default"]={admin:r,api:c,buttons:a,common:o,dashboard:i,error:s,sports:l,statistics:u,user:d,workouts:O}},c364:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return a}));n("b680"),n("99af");var r=["bytes","KB","MB","GB","TB"],c=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};var c=(e/Math.pow(1024,n)).toFixed(1),a=r[n];return t?"".concat(c).concat(a):{size:c,suffix:a}},a=function(e){var t=e/1048576;return+t.toFixed(2)}},c46a:function(e,t,n){"use strict";n("99af");var r=n("7a23"),c=n("d257"),a={class:"user-picture"},o=["alt","src"],i={key:1,class:"no-picture"},s=Object(r["createElementVNode"])("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),l=[s],u=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["computed"])((function(){return t.user.picture?"".concat(Object(c["a"])(),"users/").concat(t.user.username,"/picture"):""}));return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,[""!==Object(r["unref"])(n)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:Object(r["unref"])(n)},null,8,o)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,l))])}}});n("aa08");const d=u;t["a"]=d},c53b:function(e,t,n){"use strict";n("aa3b")},c57d:function(e,t,n){},c651:function(e,t,n){},c661:function(e,t,n){},cb9e:function(e,t,n){"use strict";n("633e")},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b0c0");var r=n("9b4a"),c=n("d9fa"),a=n("7a23"),o=n("9483");Object(o["a"])("".concat("/","service-worker.js"),{ready:function(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered:function(){console.log("Service worker has been registered.")},cached:function(){console.log("Content has been cached for offline use.")},updatefound:function(){console.log("New content is downloading.")},updated:function(){console.log("New content is available; please refresh.")},offline:function(){console.log("No internet connection found. App is running in offline mode.")},error:function(e){console.error("Error during service worker registration:",e)}});var i=function(e){return Object(a["pushScopeId"])("data-v-75ada372"),e=e(),Object(a["popScopeId"])(),e},s={id:"footer"},l={class:"footer-items"},u={class:"footer-item"},d=i((function(){return Object(a["createElementVNode"])("strong",null,"FitTrackee",-1)})),O=Object(a["createStaticVNode"])('',4),b=Object(a["defineComponent"])({props:{version:null},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.version;return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",s,[Object(a["createElementVNode"])("div",l,[Object(a["createElementVNode"])("div",u,[d,Object(a["createTextVNode"])(" v"+Object(a["toDisplayString"])(Object(a["unref"])(r)),1)]),O])])}}}),m=(n("d4e1"),n("6b0d")),p=n.n(m);const E=p()(b,[["__scopeId","data-v-75ada372"]]);var f=E,j=(n("25f0"),n("47e2")),T=n("c46a"),S=n("dad5"),_=n("2906"),A=n("923f"),N=function(e){return Object(a["pushScopeId"])("data-v-6259410f"),e=e(),Object(a["popScopeId"])(),e},R={id:"nav"},g={class:"nav-container"},k={class:"nav-app-name"},v={class:"nav-items-close"},I=N((function(){return Object(a["createElementVNode"])("div",{class:"app-name"},"FitTrackee",-1)})),h={key:0,class:"nav-items-group"},C=N((function(){return Object(a["createElementVNode"])("div",{class:"nav-item nav-separator"},null,-1)})),D={class:"nav-items-user-menu"},y={key:0,class:"nav-items-group"},U={class:"nav-item nav-profile-img"},P={key:1,class:"nav-items-group"},w=N((function(){return Object(a["createElementVNode"])("i",{class:"fa fa-language"},null,-1)})),L=Object(a["defineComponent"])({emits:["menuInteraction"],setup:function(e,t){var n=t.emit,r=Object(j["b"])(),c=r.locale,o=Object(_["a"])(),i=Object(a["computed"])((function(){return o.getters[S["a"].GETTERS.AUTH_USER_PROFILE]})),s=Object(a["computed"])((function(){return o.getters[S["a"].GETTERS.IS_AUTHENTICATED]})),l=Object(a["computed"])((function(){return o.getters[S["b"].GETTERS.LANGUAGE]})),u=Object(a["ref"])(!1);function d(){u.value=!0,n("menuInteraction",!0)}function O(){u.value=!1,n("menuInteraction",!1)}function b(e){c.value=e.value.toString(),o.commit(S["b"].MUTATIONS.UPDATE_LANG,e.value)}function m(){o.dispatch(S["a"].ACTIONS.LOGOUT)}return function(e,t){var n=Object(a["resolveComponent"])("router-link"),r=Object(a["resolveComponent"])("Dropdown");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",R,[Object(a["createElementVNode"])("div",g,[Object(a["createElementVNode"])("div",k,[Object(a["createElementVNode"])("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=function(t){return e.$router.push("/")})}," FitTrackee ")]),Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["nav-icon-open",{"menu-open":Object(a["unref"])(u)}])},[Object(a["createElementVNode"])("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=function(e){return d()})})],2),Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["nav-items",{"menu-open":Object(a["unref"])(u)}])},[Object(a["createElementVNode"])("div",v,[I,Object(a["createElementVNode"])("i",{class:Object(a["normalizeClass"])(["fa fa-close close-icon nav-item",{"menu-closed":!Object(a["unref"])(u)}]),onClick:t[2]||(t[2]=function(e){return O()})},null,2)]),Object(a["createElementVNode"])("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=function(e){return O()})},[Object(a["unref"])(s)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",h,[Object(a["createVNode"])(n,{class:"nav-item",to:"/"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("dashboard.DASHBOARD")),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/workouts"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(Object(a["capitalize"])(e.$t("workouts.WORKOUT",2))),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/statistics"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("statistics.STATISTICS")),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/workouts/add"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("workouts.ADD_WORKOUT")),1)]})),_:1}),Object(a["unref"])(s)&&Object(a["unref"])(i).admin?(Object(a["openBlock"])(),Object(a["createBlock"])(n,{key:0,class:"nav-item",to:"/admin"},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.ADMIN")),1)]})),_:1})):Object(a["createCommentVNode"])("",!0),C])):Object(a["createCommentVNode"])("",!0)]),Object(a["createElementVNode"])("div",D,[Object(a["unref"])(s)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",y,[Object(a["createElementVNode"])("div",U,[Object(a["createVNode"])(T["a"],{user:Object(a["unref"])(i)},null,8,["user"])]),Object(a["createVNode"])(n,{class:"nav-item",to:"/profile",onClick:O},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(Object(a["unref"])(i).username),1)]})),_:1}),Object(a["createElementVNode"])("div",{class:"nav-item nav-link",onClick:m},Object(a["toDisplayString"])(e.$t("user.LOGOUT")),1)])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",P,[Object(a["createVNode"])(n,{class:"nav-item",to:"/login",onClick:O},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.LOGIN")),1)]})),_:1}),Object(a["createVNode"])(n,{class:"nav-item",to:"/register",onClick:O},{default:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.REGISTER")),1)]})),_:1})])),Object(a["unref"])(A["a"])&&Object(a["unref"])(l)?(Object(a["openBlock"])(),Object(a["createBlock"])(r,{key:2,class:"nav-item",options:Object(a["unref"])(A["a"]),selected:Object(a["unref"])(l),onSelected:b},{default:Object(a["withCtx"])((function(){return[w]})),_:1},8,["options","selected"])):Object(a["createCommentVNode"])("",!0)])],2)])])}}});n("7cc4");const M=p()(L,[["__scopeId","data-v-6259410f"]]);var B=M,V={id:"no-config"},z={class:"error-page"},x=Object(a["createStaticVNode"])('
',1),G=["innerHTML"];function F(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",V,[Object(a["createElementVNode"])("div",z,[x,Object(a["createElementVNode"])("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,G)])])}n("4c29");const W={},K=p()(W,[["render",F],["__scopeId","data-v-1596efb7"]]);var $=K,H=Object(a["createElementVNode"])("div",{id:"top"},null,-1),Y={key:0,class:"app-container"},q={class:"app-loading"},X={class:"container scroll"},Z=Object(a["createElementVNode"])("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),J=[Z],Q=Object(a["defineComponent"])({setup:function(e){var t=Object(_["a"])(),n=Object(a["computed"])((function(){return t.getters[S["b"].GETTERS.APP_CONFIG]})),r=Object(a["computed"])((function(){return t.getters[S["b"].GETTERS.APP_LOADING]})),c=Object(a["ref"])(!1),o=Object(a["ref"])(!1);function i(e){c.value=e}function s(e){return e.getBoundingClientRect().top=0}function l(){window.onscroll=function(){var e=document.querySelector("#bottom");o.value=null!==e&&s(e)}}function u(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((function(){o.value=!1}),300)}return Object(a["onBeforeMount"])((function(){return t.dispatch(S["b"].ACTIONS.GET_APPLICATION_CONFIG)})),Object(a["onMounted"])((function(){return l()})),function(e,t){var s=Object(a["resolveComponent"])("Loader"),l=Object(a["resolveComponent"])("router-view");return Object(a["openBlock"])(),Object(a["createElementBlock"])(a["Fragment"],null,[H,Object(a["createVNode"])(B,{onMenuInteraction:i}),Object(a["unref"])(r)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Y,[Object(a["createElementVNode"])("div",q,[Object(a["createVNode"])(s)])])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{key:1,class:Object(a["normalizeClass"])(["app-container",{"hide-scroll":c.value}])},[Object(a["unref"])(n)?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0})):(Object(a["openBlock"])(),Object(a["createBlock"])($,{key:1}))],2)),Object(a["createElementVNode"])("div",X,[Object(a["createElementVNode"])("div",{class:Object(a["normalizeClass"])(["scroll-button",{"display-button":o.value}]),onClick:u},J,2)]),Object(a["unref"])(n)?(Object(a["openBlock"])(),Object(a["createBlock"])(f,{key:2,version:Object(a["unref"])(n)?Object(a["unref"])(n).version:""},null,8,["version"])):Object(a["createCommentVNode"])("",!0)],64)}}});n("6112");const ee=Q;var te=ee,ne=n("88c3"),re=n("afbc"),ce=n("0613"),ae={class:"alert-message"},oe=["innerHTML"],ie=Object(a["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.message;return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",ae,[Object(a["createElementVNode"])("div",{innerHTML:e.$t(Object(a["unref"])(r))},null,8,oe)])}}});n("268c");const se=p()(ie,[["__scopeId","data-v-69d7e4ff"]]);var le=se,ue=n("19e8"),de={class:"custom-textarea"},Oe=["id","name","maxLenght","disabled"],be={class:"remaining-chars"},me=Object(a["defineComponent"])({props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup:function(e,t){var n=t.emit,r=e,c=Object(a["ref"])("");function o(e){n("updateValue",e.target.value)}return Object(a["watch"])((function(){return r.input}),(function(e){c.value=e})),function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",de,[Object(a["withDirectives"])(Object(a["createElementVNode"])("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=function(e){return Object(a["isRef"])(c)?c.value=e:c=e}),onInput:o},null,40,Oe),[[a["vModelText"],Object(a["unref"])(c)]]),Object(a["createElementVNode"])("div",be,Object(a["toDisplayString"])(t.$t("workouts.REMAINING_CHARS"))+": "+Object(a["toDisplayString"])(Object(a["unref"])(c).length)+"/"+Object(a["toDisplayString"])(e.charLimit),1)])}}});n("f61d");const pe=p()(me,[["__scopeId","data-v-3ec2aca2"]]);var Ee=pe,fe=(n("b680"),n("6284")),je=Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(" ")+" "),Te=Object(a["defineComponent"])({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:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.digits,c=n.displayUnit,o=n.distance,i=n.speed,s=n.strong,l=n.unitFrom,u=n.useImperialUnits,d=Object(a["computed"])((function(){return u.value?fe["c"][l.value].defaultTarget:l.value})),O=Object(a["computed"])((function(){return u.value?Object(fe["a"])(o.value,l.value,d.value,r.value):parseFloat(o.value.toFixed(r.value))}));return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])(a["Fragment"],null,[Object(a["createElementVNode"])("span",{class:Object(a["normalizeClass"])(["distance",{strong:Object(a["unref"])(s)}])},Object(a["toDisplayString"])(Object(a["unref"])(O)),3),je,Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("span",{key:0,class:Object(a["normalizeClass"])(["unit",{strong:Object(a["unref"])(s)}])},Object(a["toDisplayString"])(Object(a["unref"])(d))+Object(a["toDisplayString"])(Object(a["unref"])(i)?"/h":""),3)):Object(a["createCommentVNode"])("",!0)],64)}}});n("9aea");const Se=p()(Te,[["__scopeId","data-v-f46ff1d6"]]);var _e=Se,Ae=(n("d81d"),n("6c02")),Ne={class:"dropdown-wrapper"},Re={key:0,class:"dropdown-list"},ge=["onClick"],ke=Object(a["defineComponent"])({props:{options:null,selected:null},emits:{selected:function(e){return e}},setup:function(e,t){var n=t.emit,r=e,c=Object(Ae["c"])(),o=Object(a["ref"])(!1),i=r.options.map((function(e){return e}));function s(){o.value=!o.value}function l(e){n("selected",e),o.value=!1}return Object(a["watch"])((function(){return c.path}),(function(){return o.value=!1})),function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Ne,[Object(a["createElementVNode"])("div",{class:"dropdown-selected",onClick:s},[Object(a["renderSlot"])(t.$slots,"default")]),Object(a["unref"])(o)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("ul",Re,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(Object(a["unref"])(i),(function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{class:Object(a["normalizeClass"])(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:function(e){return l(t)}},Object(a["toDisplayString"])(t.label),11,ge)})),128))])):Object(a["createCommentVNode"])("",!0)])}}});n("55a6");const ve=p()(ke,[["__scopeId","data-v-ca61364c"]]);var Ie=ve,he={class:"error-message"},Ce={key:0},De={key:1},ye=Object(a["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.message;return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",he,[Array.isArray(Object(a["unref"])(r))?(Object(a["openBlock"])(),Object(a["createElementBlock"])("ul",Ce,[(Object(a["openBlock"])(!0),Object(a["createElementBlock"])(a["Fragment"],null,Object(a["renderList"])(Object(a["unref"])(r),(function(t,n){return Object(a["openBlock"])(),Object(a["createElementBlock"])("li",{key:n},Object(a["toDisplayString"])(e.$t(t)),1)})),128))])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",De,Object(a["toDisplayString"])(e.$t(Object(a["unref"])(r))),1))])}}});n("3a2a");const Ue=p()(ye,[["__scopeId","data-v-2659a79a"]]);var Pe=Ue,we={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"},Le=Object(a["createElementVNode"])("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Me=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),Be=[Le,Me];function Ve(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",we,Be)}var ze={name:"CyclingSport"};const xe=p()(ze,[["render",Ve]]);var Ge=xe,Fe={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"},We=Object(a["createElementVNode"])("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Ke=Object(a["createElementVNode"])("g",{id:"g147"},[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),$e=[We,Ke];function He(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Fe,$e)}var Ye={name:"CyclingTransport"};const qe=p()(Ye,[["render",He]]);var Xe=qe,Ze={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"},Je=Object(a["createElementVNode"])("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Qe=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),et=[Je,Qe];function tt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Ze,et)}var nt={name:"Hiking"};const rt=p()(nt,[["render",tt]]);var ct=rt,at={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"},ot=Object(a["createElementVNode"])("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),it=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),st=[ot,it];function lt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",at,st)}var ut={name:"MountainBiking"};const dt=p()(ut,[["render",lt]]);var Ot=dt,bt={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"},mt=Object(a["createStaticVNode"])(' silhouette of a person riding an electric mountain bike ',18),pt=[mt];function Et(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",bt,pt)}var ft={name:"MountainBikingElectric"};const jt=p()(ft,[["render",Et]]);var Tt=jt,St={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"},_t=Object(a["createElementVNode"])("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),At=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Nt=[_t,At];function Rt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",St,Nt)}var gt={name:"Rowing"};const kt=p()(gt,[["render",Rt]]);var vt=kt,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 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve"},ht=Object(a["createElementVNode"])("desc",{id:"runningDescription"},"silhouette of a running person",-1),Ct=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),Dt=[ht,Ct];function yt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",It,Dt)}var Ut={name:"Running"};const Pt=p()(Ut,[["render",yt]]);var wt=Pt,Lt={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"},Mt=Object(a["createElementVNode"])("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Bt=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),Vt=[Mt,Bt];function zt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Lt,Vt)}var xt={name:"SkiingAlpine"};const Gt=p()(xt,[["render",zt]]);var Ft=Gt,Wt={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"},Kt=Object(a["createElementVNode"])("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),$t=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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),Ht=[Kt,$t];function Yt(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Wt,Ht)}var qt={name:"SkiingCrossCountry"};const Xt=p()(qt,[["render",Yt]]);var Zt=Xt,Jt={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"},Qt=Object(a["createStaticVNode"])('silhouette of a person with snowshoes',6),en=[Qt];function tn(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",Jt,en)}var nn={name:"Snowshoes"};const rn=p()(nn,[["render",tn]]);var cn=rn,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 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},on=Object(a["createElementVNode"])("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),sn=Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("g",null,[Object(a["createElementVNode"])("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"}),Object(a["createElementVNode"])("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),ln=[on,sn];function un(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",an,ln)}var dn={name:"Trail"};const On=p()(dn,[["render",un]]);var bn=On,mn={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"},pn=Object(a["createStaticVNode"])('silhouette of a walking person',3),En=[pn];function fn(e,t,n,r,c,o){return Object(a["openBlock"])(),Object(a["createElementBlock"])("svg",mn,En)}var jn={name:"Walking"};const Tn=p()(jn,[["render",fn]]);var Sn=Tn,_n=["title"],An=Object(a["defineComponent"])({props:{sportLabel:null,color:null,title:{default:""}},setup:function(e){var t=e,n=Object(a["toRefs"])(t),r=n.color,c=n.sportLabel,o=n.title,i=Object(a["inject"])("sportColors");return function(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",{class:"sport-img",style:Object(a["normalizeStyle"])({fill:Object(a["unref"])(r)?Object(a["unref"])(r):Object(a["unref"])(i)[Object(a["unref"])(c)]}),title:Object(a["unref"])(o)?Object(a["unref"])(o):e.$t("sports.".concat(Object(a["unref"])(c),".LABEL"))},["Cycling (Sport)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Ge,{key:0})):Object(a["createCommentVNode"])("",!0),"Cycling (Transport)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Xe,{key:1})):Object(a["createCommentVNode"])("",!0),"Hiking"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(ct,{key:2})):Object(a["createCommentVNode"])("",!0),"Mountain Biking"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Ot,{key:3})):Object(a["createCommentVNode"])("",!0),"Mountain Biking (Electric)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Tt,{key:4})):Object(a["createCommentVNode"])("",!0),"Rowing"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(vt,{key:5})):Object(a["createCommentVNode"])("",!0),"Running"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(wt,{key:6})):Object(a["createCommentVNode"])("",!0),"Skiing (Alpine)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Ft,{key:7})):Object(a["createCommentVNode"])("",!0),"Skiing (Cross Country)"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Zt,{key:8})):Object(a["createCommentVNode"])("",!0),"Snowshoes"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(cn,{key:9})):Object(a["createCommentVNode"])("",!0),"Trail"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(bn,{key:10})):Object(a["createCommentVNode"])("",!0),"Walking"===Object(a["unref"])(c)?(Object(a["openBlock"])(),Object(a["createBlock"])(Sn,{key:11})):Object(a["createCommentVNode"])("",!0)],12,_n)}}});const Nn=An;var Rn=Nn,gn={class:"loader"};function kn(e,t){return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",gn)}n("3306");const vn={},In=p()(vn,[["render",kn],["__scopeId","data-v-4c9921ee"]]);var hn=In,Cn={id:"modal"},Dn={class:"custom-modal"},yn={key:0,class:"modal-message"},Un={key:1,class:"modal-message"},Pn={class:"modal-buttons"},wn=Object(a["defineComponent"])({props:{title:null,message:null,strongMessage:{default:function(){return null}}},emits:["cancelAction","confirmAction"],setup:function(e,t){var n=t.emit,r=e,c=Object(_["a"])(),o=Object(a["toRefs"])(r),i=o.title,s=o.message,l=o.strongMessage,u=Object(a["computed"])((function(){return c.getters[S["b"].GETTERS.ERROR_MESSAGES]}));return Object(a["onUnmounted"])((function(){return c.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),function(e,t){var r=Object(a["resolveComponent"])("i18n-t"),c=Object(a["resolveComponent"])("ErrorMessage"),o=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Cn,[Object(a["createElementVNode"])("div",Dn,[Object(a["createVNode"])(o,null,{title:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(Object(a["unref"])(i)),1)]})),content:Object(a["withCtx"])((function(){return[Object(a["unref"])(l)?(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",yn,[Object(a["createVNode"])(r,{keypath:Object(a["unref"])(s)},{default:Object(a["withCtx"])((function(){return[Object(a["createElementVNode"])("span",null,Object(a["toDisplayString"])(Object(a["unref"])(l)),1)]})),_:1},8,["keypath"])])):(Object(a["openBlock"])(),Object(a["createElementBlock"])("div",Un,Object(a["toDisplayString"])(Object(a["unref"])(s)),1)),Object(a["unref"])(u)?(Object(a["openBlock"])(),Object(a["createBlock"])(c,{key:2,message:Object(a["unref"])(u)},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createElementVNode"])("div",Pn,[Object(a["unref"])(u)?Object(a["createCommentVNode"])("",!0):(Object(a["openBlock"])(),Object(a["createElementBlock"])("button",{key:0,class:"confirm",onClick:t[0]||(t[0]=function(e){return n("confirmAction")})},Object(a["toDisplayString"])(e.$t("buttons.YES")),1)),Object(a["createElementVNode"])("button",{class:"cancel",onClick:t[1]||(t[1]=function(e){return n("cancelAction")})},Object(a["toDisplayString"])(e.$t("buttons.".concat(Object(a["unref"])(u)?"CANCEL":"NO"))),1)])]})),_:1})])])}}});n("9303");const Ln=p()(wn,[["__scopeId","data-v-e8fcfaba"]]);var Mn=Ln,Bn=[{target:le,name:"AlertMessage"},{target:ue["a"],name:"Card"},{target:Ee,name:"CustomTextArea"},{target:_e,name:"Distance"},{target:Ie,name:"Dropdown"},{target:Pe,name:"ErrorMessage"},{target:hn,name:"Loader"},{target:Mn,name:"Modal"},{target:Rn,name:"SportImage"}],Vn={mounted:function(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)}},zn=n("1119");r["Chart"].register(r["BarElement"],r["LineElement"],r["PointElement"],r["Legend"],r["Title"],r["Tooltip"],r["Filler"],r["BarController"],r["CategoryScale"],r["LineController"],r["LinearScale"],c["a"]);var xn=Object(a["createApp"])(te).provide("sportColors",zn["c"]).use(ne["a"]).use(ce["a"]).use(re["a"]).directive("click-outside",Vn);Bn.forEach((function(e){xn.component(e.name,e.target)})),xn.mount("#app")},d08c:function(e,t,n){},d23c:function(e,t,n){},d257:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return a}));n("caad"),n("2532"),n("d81d"),n("4de4"),n("d3b7"),n("ac1f"),n("1276");var r=n("dad5"),c=function(){return"/api/"},a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"UNKNOWN",c=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(r["b"].MUTATIONS.SET_ERROR_MESSAGES,c.includes("\n")?c.split("\n").filter((function(e){return""!==e})).map((function(e){return"api.ERROR.".concat(e)})):"api.ERROR.".concat(c))}},d4e1:function(e,t,n){"use strict";n("f59f")},d669:function(e,t,n){"use strict";n("6fd8")},dad5:function(e,t,n){"use strict";var r,c,a,o,i,s,l,u,d,O,b,m,p,E,f;n.d(t,"b",(function(){return T})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return _})),n.d(t,"a",(function(){return A})),n.d(t,"e",(function(){return N})),n.d(t,"f",(function(){return R})),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",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["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",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["USER_LOADING"]="USER_LOADING"}(c||(c={})),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_USER_LOADING"]="UPDATE_USER_LOADING"}(a||(a={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(o||(o={})),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"}(i||(i={})),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"}(s||(s={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(l||(l={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(d||(d={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(O||(O={})),function(e){e["USER_STATS"]="USER_STATS"}(b||(b={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(m||(m={})),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"}(p||(p={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(E||(E={})),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"}(f||(f={}));var j=n("4870"),T={ACTIONS:o,GETTERS:i,MUTATIONS:s},S={ACTIONS:l,GETTERS:u,MUTATIONS:d},_={ACTIONS:O,GETTERS:b,MUTATIONS:m},A={ACTIONS:r,GETTERS:c,MUTATIONS:a},N={ACTIONS:p,GETTERS:E,MUTATIONS:f},R={ACTIONS:j["a"],GETTERS:j["b"],MUTATIONS:j["c"]}},db41:function(e,t,n){"use strict";n("7826")},dbf1:function(e,t,n){},dc71:function(e,t,n){"use strict";n("c57d")},e0d4:function(e,t,n){"use strict";n("6e30")},e4394:function(e,t,n){"use strict";n("c651")},e5d1:function(e,t,n){"use strict";n("f980")},e7b6:function(e,t,n){var r={"./en/en.ts":"c142","./fr/fr.ts":"663e"};function c(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}c.keys=function(){return Object.keys(r)},c.resolve=a,e.exports=c,c.id="e7b6"},e806:function(e,t,n){"use strict";n("538d")},ec59:function(e,t,n){"use strict";var r=n("7a23"),c={class:"start-chart"},a={key:0},o={key:1},i={class:"chart-radio"},s=["checked"],l=["checked"],u=["checked"],d={key:0},O=["checked"],b={key:1},m=["checked"],p={key:2},E=["checked"];function f(e,t,n,f,j,T){var S=Object(r["resolveComponent"])("Chart");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[e.hideChartIfNoData&&e.emptyStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,Object(r["toDisplayString"])(e.$t("workouts.NO_WORKOUTS")),1)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",o,[Object(r["createElementVNode"])("div",i,[Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,s),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DISTANCE")),1)]),Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,l),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DURATION")),1)]),Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,u),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("label",d,[Object(r["createElementVNode"])("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,O),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.AVERAGE_SPEED")),1)])):Object(r["createCommentVNode"])("",!0),e.fullStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("label",b,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,m),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.ASCENT")),1)])):Object(r["createCommentVNode"])("",!0),e.fullStats?(Object(r["openBlock"])(),Object(r["createElementBlock"])("label",p,[Object(r["createElementVNode"])("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=function(){return e.updateDisplayData&&e.updateDisplayData.apply(e,arguments)})},null,8,E),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DESCENT")),1)])):Object(r["createCommentVNode"])("",!0)]),e.labels.length>0?(Object(r["openBlock"])(),Object(r["createBlock"])(S,{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"])):Object(r["createCommentVNode"])("",!0)]))])}var j=n("1da1"),T=(n("96cf"),n("b0c0"),n("b64b"),n("b166")),S={class:"chart"};function _(e,t,n,c,a,o){var i=Object(r["resolveComponent"])("BarChart");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",S,[Object(r["createVNode"])(i,Object(r["mergeProps"])(e.barChartProps,{class:"bar-chart"}),null,16)])}n("e9c4"),n("d3b7"),n("d81d");var A=n("b48c"),N=n("47e2"),R=(n("99af"),n("b680"),n("25f0"),n("4d90"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);var r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;var c=String(Math.floor(e/60)).padStart(2,"0"),a=String(e%60).padStart(2,"0");return t?"".concat("0"===n?"":"".concat(n,"d ")).concat("00"===r?"":"".concat(r,"h ")).concat(c,"m ").concat(a,"s"):"".concat("00"===r?"":"".concat(r,":")).concat(c,":").concat(a)}),g=n("6284"),k=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],c="km",a=n?g["c"][c].defaultTarget:c;switch(e){case"average_speed":return"".concat(t.toFixed(2)," ").concat(a,"/h");case"total_duration":return R(t,r);case"total_distance":return"".concat(t.toFixed(2)," ").concat(a);case"total_ascent":case"total_descent":return"".concat((t/1e3).toFixed(2)," ").concat(a);default:return t.toString()}},v=Object(r["defineComponent"])({name:"Chart",components:{BarChart:A["BarChart"]},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:function(e){var t=Object(N["b"])(),n=t.t;function c(e){return isNaN(e)?0:+e}function a(e,t){return c(e)+c(t)}var o=Object(r["computed"])((function(){return{labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}})),i=Object(r["computed"])((function(){return{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 k(e.displayedData,+t,e.useImperialUnits,!1)}},afterFit:function(t){t.width=e.fullStats?75: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 k(e.displayedData,t,e.useImperialUnits,!1);var r=n.chart.data.datasets.map((function(e){return e.data[n.dataIndex]})).reduce((function(e,t){return a(e,t)}),0);return n.datasetIndex===e.displayedSportIds.length-1&&r>0?k(e.displayedData,r,e.useImperialUnits,!1):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(t){var r=n("sports.".concat(t.dataset.label,".LABEL"))||"";return r&&(r+=": "),null!==t.parsed.y&&(r+=k(e.displayedData,t.parsed.y,e.useImperialUnits)),r},footer:function(t){if("average_speed"===e.displayedData)return"";var r=0;return t.map((function(e){r+=e.parsed.y})),"".concat(n("common.TOTAL"),": ")+k(e.displayedData,r,e.useImperialUnits)}}}}}})),s=Object(A["useBarChart"])({chartData:o,options:i}),l=s.barChartProps;return{barChartProps:l}}}),I=n("6b0d"),h=n.n(I);const C=h()(v,[["render",_]]);var D=C,y=n("dad5"),U=n("2906"),P=n("7416"),w=Object(r["defineComponent"])({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:function(){return[]}},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup:function(e){var t=Object(U["a"])(),n=Object(r["ref"])("total_distance"),c=Object(r["computed"])((function(){return t.getters[y["d"].GETTERS.USER_STATS]})),a=Object(r["computed"])((function(){return Object(P["a"])(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,c.value,e.user.imperial_units)}));function o(n){t.dispatch(y["d"].ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function s(e,t){return{from:Object(T["a"])(e.start,"yyyy-MM-dd"),to:Object(T["a"])(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week".concat(t.weekm?"m":""):e.duration}}return Object(r["onBeforeMount"])((function(){return o(s(e.chartParams,e.user))})),Object(r["watch"])((function(){return e.chartParams}),function(){var t=Object(j["a"])(regeneratorRuntime.mark((function t(n){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:o(s(n,e.user));case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),{datasets:Object(r["computed"])((function(){return a.value.datasets[n.value]})),labels:Object(r["computed"])((function(){return a.value.labels})),emptyStats:Object(r["computed"])((function(){return 0===Object.keys(c.value).length})),displayedData:n,updateDisplayData:i}}});n("5b6e");const L=h()(w,[["render",f],["__scopeId","data-v-14aef866"]]);t["a"]=L},ef3f:function(e,t,n){},f03a:function(e,t,n){"use strict";n("d23c")},f574:function(e,t,n){"use strict";n("49a7")},f59f:function(e,t,n){},f61d:function(e,t,n){"use strict";n("6ac7")},f7f9:function(e,t,n){"use strict";var r=n("7a23"),c={id:"error"},a={class:"error-content"},o=Object(r["defineComponent"])({props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.buttonText,i=n.title,s=n.message,l=n.path;return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("div",a,[Object(r["createElementVNode"])("h1",null,Object(r["toDisplayString"])(Object(r["unref"])(i)),1),Object(r["createElementVNode"])("p",null,Object(r["toDisplayString"])(Object(r["unref"])(s)),1),Object(r["unref"])(o)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("button",{key:0,onClick:t[0]||(t[0]=function(t){return e.$router.push(Object(r["unref"])(l))}),class:"upper"},Object(r["toDisplayString"])(Object(r["unref"])(o)),1)):Object(r["createCommentVNode"])("",!0)])])}}}),i=(n("7390"),n("6b0d")),s=n.n(i);const l=s()(o,[["__scopeId","data-v-b60bfa80"]]);var u=l,d=Object(r["defineComponent"])({props:{target:{default:"PAGE"}},setup:function(e){var t=e,n=Object(r["toRefs"])(t),c=n.target;return function(e,t){return Object(r["openBlock"])(),Object(r["createBlock"])(u,{title:"404",message:e.$t("error.NOT_FOUND.".concat(Object(r["unref"])(c))),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])}}});const O=d;t["a"]=O},f87a:function(e,t,n){},f980:function(e,t,n){},ff29:function(e,t,n){}}); -//# sourceMappingURL=app.20ff75b6.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.20ff75b6.js.map b/fittrackee/dist/static/js/app.20ff75b6.js.map deleted file mode 100644 index 7409cb64..00000000 --- a/fittrackee/dist/static/js/app.20ff75b6.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/User/UserAuthForm.vue","webpack:///./src/components/User/UserAuthForm.vue?f22a","webpack:///./src/api/defaultApi.ts","webpack:///./src/store/modules/users/actions.ts","webpack:///./src/store/modules/authUser/actions.ts","webpack:///./src/store/modules/authUser/getters.ts","webpack:///./src/store/modules/authUser/mutations.ts","webpack:///./src/store/modules/authUser/state.ts","webpack:///./src/store/modules/authUser/index.ts","webpack:///./src/store/modules/root/actions.ts","webpack:///./src/store/modules/root/getters.ts","webpack:///./src/store/modules/root/mutations.ts","webpack:///./src/store/modules/root/state.ts","webpack:///./src/store/modules/sports/actions.ts","webpack:///./src/store/modules/sports/getters.ts","webpack:///./src/store/modules/sports/mutations.ts","webpack:///./src/store/modules/sports/state.ts","webpack:///./src/store/modules/sports/index.ts","webpack:///./src/store/modules/statistics/actions.ts","webpack:///./src/store/modules/statistics/getters.ts","webpack:///./src/store/modules/statistics/mutations.ts","webpack:///./src/store/modules/statistics/state.ts","webpack:///./src/store/modules/statistics/index.ts","webpack:///./src/store/modules/users/getters.ts","webpack:///./src/store/modules/users/mutations.ts","webpack:///./src/store/modules/users/state.ts","webpack:///./src/store/modules/users/index.ts","webpack:///./src/store/modules/workouts/actions.ts","webpack:///./src/store/modules/workouts/getters.ts","webpack:///./src/store/modules/workouts/mutations.ts","webpack:///./src/store/modules/workouts/state.ts","webpack:///./src/store/modules/workouts/index.ts","webpack:///./src/store/modules/root/index.ts","webpack:///./src/store/index.ts","webpack:///./src/components/Administration/AdminMenu.vue?5461","webpack:///./src/components/Common/Card.vue?cc51","webpack:///./src/utils/sports.ts","webpack:///./src/components/Dashboard/UserCalendar/index.vue?32a0","webpack:///./src/components/Workouts/NoWorkouts.vue","webpack:///./src/components/Workouts/NoWorkouts.vue?eff8","webpack:///./src/components/Common/Card.vue","webpack:///./src/components/Common/Card.vue?ecbc","webpack:///./src/components/Common/AlertMessage.vue?744a","webpack:///./src/use/useStore.ts","webpack:///./src/components/Common/Loader.vue?a7b0","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?a919","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkout.vue?a2d9","webpack:///./src/components/Common/ErrorMessage.vue?5516","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?24df","webpack:///./src/views/Dashboard.vue?d83c","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?4316","webpack:///./src/components/User/UserSportPreferences.vue?c52e","webpack:///./src/store/modules/workouts/enums.ts","webpack:///./src/components/NoConfig.vue?cd8b","webpack:///./src/components/Workout/WorkoutCard.vue?17f3","webpack:///./src/components/Common/Dropdown.vue?9d33","webpack:///./src/components/Common/StatsChart/index.vue?359e","webpack:///./src/utils/dates.ts","webpack:///./src/App.vue?c297","webpack:///./src/utils/units.ts","webpack:///./src/locales/fr/administration.json","webpack:///./src/locales/fr/api.json","webpack:///./src/locales/fr/buttons.json","webpack:///./src/locales/fr/common.json","webpack:///./src/locales/fr/dashboard.json","webpack:///./src/locales/fr/error.json","webpack:///./src/locales/fr/sports.json","webpack:///./src/locales/fr/statistics.json","webpack:///./src/locales/fr/user.json","webpack:///./src/locales/fr/workouts.json","webpack:///./src/locales/fr/fr.ts","webpack:///./src/components/Common/StaticMap.vue","webpack:///./src/components/Common/StaticMap.vue?88d8","webpack:///./src/components/Dashboard/UserCalendar/CalendarHeader.vue?e7b0","webpack:///./src/components/Common/Pagination.vue","webpack:///./src/components/Common/Pagination.vue?573e","webpack:///./src/components/Administration/AdminSports.vue?9305","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?9546","webpack:///./src/components/Common/Error.vue?1d33","webpack:///./src/utils/statistics.ts","webpack:///./src/components/User/ProfileDisplay/index.vue?cc48","webpack:///./src/components/NavBar.vue?5e95","webpack:///./src/components/Dashboard/UserMonthStats.vue?6f36","webpack:///./src/i18n.ts","webpack:///./src/components/Common/FilterSelects.vue","webpack:///./src/components/Common/FilterSelects.vue?2f0a","webpack:///./src/utils/workouts.ts","webpack:///./src/utils/locales.ts","webpack:///./src/components/Common/Modal.vue?9294","webpack:///./src/components/Common/StaticMap.vue?cc0b","webpack:///./src/utils/api.ts","webpack:///./src/components/Common/Distance.vue?5eaa","webpack:///./src/api/authApi.ts","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue?3187","webpack:///./src/components/Common/StatCard.vue?b25e","webpack:///./src/components/Administration/AppStatsCards.vue?7172","webpack:///./src/components/Common/FilterSelects.vue?5d42","webpack:///./src/components/User/UserPicture.vue?7532","webpack:///./src/components/Common/Pagination.vue?6a22","webpack:///./src/components/Administration/AdminApplication.vue","webpack:///./src/components/Administration/AdminApplication.vue?9c66","webpack:///./src/components/Common/StatCard.vue","webpack:///./src/components/Common/StatCard.vue?7652","webpack:///./src/components/Administration/AppStatsCards.vue","webpack:///./src/components/Administration/AppStatsCards.vue?5d3b","webpack:///./src/components/Administration/AdminMenu.vue","webpack:///./src/components/Administration/AdminMenu.vue?572b","webpack:///./src/components/Administration/AdminSports.vue","webpack:///./src/components/Administration/AdminSports.vue?8d91","webpack:///./src/components/Administration/AdminUsers.vue","webpack:///./src/components/Administration/AdminUsers.vue?9006","webpack:///./src/components/User/UserProfileTabs.vue","webpack:///./src/components/User/UserProfileTabs.vue?68f5","webpack:///./src/components/User/ProfileDisplay/index.vue","webpack:///./src/components/User/ProfileDisplay/index.vue?d237","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?e51f","webpack:///./src/components/User/ProfileEdition/index.vue","webpack:///./src/components/User/ProfileEdition/index.vue?27de","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?a314","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?6a32","webpack:///./src/utils/timezone.ts","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?2dc4","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?a05c","webpack:///./src/components/User/UserSportPreferences.vue","webpack:///./src/components/User/UserSportPreferences.vue?ec8d","webpack:///./src/components/Workout/WorkoutCard.vue","webpack:///./src/components/Workout/WorkoutCard.vue?1d2c","webpack:///./src/components/Dashboard/Timeline.vue","webpack:///./src/components/Dashboard/Timeline.vue?88d8","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkout.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkout.vue?2cf8","webpack:///./src/components/Dashboard/UserCalendar/DonutChart.vue","webpack:///./src/components/Dashboard/UserCalendar/DonutChart.vue?966a","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue?68ca","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue?332b","webpack:///./src/components/Dashboard/UserCalendar/CalendarCells.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarCells.vue?3329","webpack:///./src/components/Dashboard/UserCalendar/CalendarDays.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarDays.vue?a6f6","webpack:///./src/components/Dashboard/UserCalendar/CalendarHeader.vue","webpack:///./src/components/Dashboard/UserCalendar/CalendarHeader.vue?8fbf","webpack:///./src/components/Dashboard/UserCalendar/index.vue","webpack:///./src/components/Dashboard/UserCalendar/index.vue?ac12","webpack:///./src/components/Dashboard/UserMonthStats.vue","webpack:///./src/components/Dashboard/UserMonthStats.vue?47f3","webpack:///./src/components/Dashboard/UserRecords/RecordsCard.vue","webpack:///./src/components/Dashboard/UserRecords/RecordsCard.vue?d39e","webpack:///./src/utils/records.ts","webpack:///./src/components/Dashboard/UserRecords/index.vue","webpack:///./src/components/Dashboard/UserRecords/index.vue?43ac","webpack:///./src/components/Dashboard/UserStatsCards/index.vue","webpack:///./src/components/Dashboard/UserStatsCards/index.vue?1659","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?1521","webpack:///./src/views/NotFoundView.vue","webpack:///./src/views/NotFoundView.vue?24f6","webpack:///./src/components/BikePic.vue","webpack:///./src/components/BikePic.vue?5251","webpack:///./src/views/user/LoginOrRegister.vue","webpack:///./src/views/user/LoginOrRegister.vue?b5b6","webpack:///./src/router/index.ts","webpack:///./src/components/Workouts/NoWorkouts.vue?e37d","webpack:///./src/components/Dashboard/UserRecords/RecordsCard.vue?747d","webpack:///./src/components/User/UserAuthForm.vue?10ec","webpack:///./src/components/Dashboard/Timeline.vue?9451","webpack:///./src/components/Dashboard/UserCalendar/CalendarDays.vue?5c1b","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?ecaf","webpack:///./src/locales/en/administration.json","webpack:///./src/locales/en/api.json","webpack:///./src/locales/en/buttons.json","webpack:///./src/locales/en/common.json","webpack:///./src/locales/en/dashboard.json","webpack:///./src/locales/en/error.json","webpack:///./src/locales/en/sports.json","webpack:///./src/locales/en/statistics.json","webpack:///./src/locales/en/user.json","webpack:///./src/locales/en/workouts.json","webpack:///./src/locales/en/en.ts","webpack:///./src/utils/files.ts","webpack:///./src/components/User/UserPicture.vue","webpack:///./src/components/User/UserPicture.vue?dc88","webpack:///./src/components/Dashboard/UserRecords/index.vue?9c13","webpack:///./src/components/User/UserProfileTabs.vue?9c9b","webpack:///./src/registerServiceWorker.ts","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?14b8","webpack:///./src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?5ec4","webpack:///./src/components/NoConfig.vue","webpack:///./src/components/NoConfig.vue?0078","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/components/Common/AlertMessage.vue","webpack:///./src/components/Common/AlertMessage.vue?7dca","webpack:///./src/components/Common/CustomTextArea.vue","webpack:///./src/components/Common/CustomTextArea.vue?933e","webpack:///./src/components/Common/Distance.vue","webpack:///./src/components/Common/Distance.vue?de84","webpack:///./src/components/Common/Dropdown.vue","webpack:///./src/components/Common/Dropdown.vue?56da","webpack:///./src/components/Common/ErrorMessage.vue","webpack:///./src/components/Common/ErrorMessage.vue?31ca","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue?1dcc","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue?667c","webpack:///./src/components/Common/Images/SportImage/Hiking.vue","webpack:///./src/components/Common/Images/SportImage/Hiking.vue?75de","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue?9b14","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue?adb2","webpack:///./src/components/Common/Images/SportImage/Rowing.vue","webpack:///./src/components/Common/Images/SportImage/Rowing.vue?a825","webpack:///./src/components/Common/Images/SportImage/Running.vue","webpack:///./src/components/Common/Images/SportImage/Running.vue?275d","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue?8028","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue?a0cc","webpack:///./src/components/Common/Images/SportImage/Snowshoes.vue","webpack:///./src/components/Common/Images/SportImage/Snowshoes.vue?8cee","webpack:///./src/components/Common/Images/SportImage/Trail.vue","webpack:///./src/components/Common/Images/SportImage/Trail.vue?43e1","webpack:///./src/components/Common/Images/SportImage/Walking.vue","webpack:///./src/components/Common/Images/SportImage/Walking.vue?ecc5","webpack:///./src/components/Common/Images/SportImage/index.vue","webpack:///./src/components/Common/Images/SportImage/index.vue?1dbe","webpack:///./src/components/Common/Loader.vue","webpack:///./src/components/Common/Loader.vue?bdb0","webpack:///./src/components/Common/Modal.vue","webpack:///./src/components/Common/Modal.vue?1686","webpack:///./src/custom-components.ts","webpack:///./src/directives.ts","webpack:///./src/main.ts","webpack:///./src/utils/index.ts","webpack:///./src/components/Footer.vue?5a8a","webpack:///./src/components/Administration/AdminUsers.vue?7352","webpack:///./src/store/modules/authUser/enums.ts","webpack:///./src/store/modules/root/enums.ts","webpack:///./src/store/modules/sports/enums.ts","webpack:///./src/store/modules/statistics/enums.ts","webpack:///./src/store/modules/users/enums.ts","webpack:///./src/store/constants.ts","webpack:///./src/views/user/LoginOrRegister.vue?d5df","webpack:///./src/components/BikePic.vue?11c5","webpack:///./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue?7ea1","webpack:///./src/components/Dashboard/UserCalendar/CalendarCells.vue?160e","webpack:///./src/components/Dashboard/UserStatsCards/index.vue?8234","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?ebce","webpack:///./src/components/Common/StatsChart/index.vue?6a3d","webpack:///./src/components/Common/StatsChart/Chart.vue?21e7","webpack:///./src/utils/duration.ts","webpack:///./src/utils/tooltip.ts","webpack:///./src/components/Common/StatsChart/Chart.vue","webpack:///./src/components/Common/StatsChart/Chart.vue?4835","webpack:///./src/components/Common/StatsChart/index.vue","webpack:///./src/components/Common/StatsChart/index.vue?c897","webpack:///./src/components/Administration/AdminApplication.vue?4354","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?9fe5","webpack:///./src/components/Common/CustomTextArea.vue?3272","webpack:///./src/components/Common/Error.vue","webpack:///./src/components/Common/Error.vue?5756","webpack:///./src/components/Common/NotFound.vue","webpack:///./src/components/Common/NotFound.vue?8100"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","id","_hoisted_2","_hoisted_3","class","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","props","action","token","default","setup","__props","route","store","useStore","formData","username","email","password","password_conf","buttonText","getButtonText","errorMessages","getters","GETTERS","ERROR_MESSAGES","appConfig","APP_CONFIG","registration_disabled","is_registration_enabled","formErrors","toUpperCase","invalidateForm","onSubmit","actionType","dispatch","ACTIONS","RESET_USER_PASSWORD","commit","MUTATIONS","SET_ERROR_MESSAGES","SEND_PASSWORD_RESET_REQUEST","LOGIN_OR_REGISTER","redirectUrl","query","from","resetFormData","path","EMPTY_ERROR_MESSAGES","_ctx","_cache","_component_AlertMessage","_component_router_link","_component_ErrorMessage","disabled","errors","$event","required","onInvalid","placeholder","$t","includes","to","_","__exports__","api","a","baseURL","context","payload","authApi","delete","res","status","fromAdmin","router","LOGOUT","catch","actions","EMPTY_USER","UPDATE_USER","EMPTY_USERS","UPDATE_USERS","UPDATE_USERS_PAGINATION","GET_USER","UPDATE_USERS_LOADING","users","finally","GET_USERS","params","pagination","patch","admin","UPDATE_USER_IN_USERS","DELETE_USER_ACCOUNT","locale","global","localStorage","removeItem","EMPTY_USER_STATS","CLEAR_AUTH_USER_TOKEN","EMPTY_WORKOUTS","EMPTY_WORKOUT","CHECK_AUTH_USER","authToken","IS_AUTHENTICATED","UPDATE_AUTH_TOKEN","GET_USER_PROFILE","UPDATE_AUTH_USER_PROFILE","language","UPDATE_LANG","GET_SPORTS","post","auth_token","setItem","UPDATE_USER_PROFILE","UPDATE_USER_LOADING","UPDATE_USER_PREFERENCES","RESET_USER_SPORT_PREFERENCES","sportId","UPDATE_USER_SPORT_PREFERENCES","UPDATE_USER_PICTURE","picture","form","FormData","append","headers","DELETE_ACCOUNT","DELETE_PICTURE","AUTH_TOKEN","state","AUTH_USER_PROFILE","authUserProfile","IS_ADMIN","USER_LOADING","loading","mutations","authUserState","authUser","GET_APPLICATION_CONFIG","UPDATE_APPLICATION_LOADING","UPDATE_APPLICATION_CONFIG","GET_APPLICATION_STATS","UPDATE_APPLICATION_STATS","application","config","APP_LOADING","appLoading","APP_STATS","statistics","LANGUAGE","LOCALE","root","sports","uploads_dir_size","workouts","SET_SPORTS","UPDATE_SPORTS","is_active","isActive","SPORTS","sportsState","GET_USER_STATS","filterType","UPDATE_USER_STATS","USER_STATS","statisticsState","USER","user","USERS","USERS_LOADING","USERS_PAGINATION","updatedUser","map","usersState","SET_WORKOUTS_PAGINATION","GET_CALENDAR_WORKOUTS","EMPTY_CALENDAR_WORKOUTS","GET_USER_WORKOUTS","GET_TIMELINE_WORKOUTS","GET_MORE_TIMELINE_WORKOUTS","GET_WORKOUT_DATA","SET_WORKOUT_LOADING","segmentUrl","segmentId","workoutId","workout","segments","SET_WORKOUT","with_gpx","SET_WORKOUT_CHART_DATA","chart_data","SET_WORKOUT_GPX","gpx","DELETE_WORKOUT","EDIT_WORKOUT","ADD_WORKOUT","file","sport_id","notes","ADD_WORKOUT_WITHOUT_GPX","CALENDAR_WORKOUTS","calendar_workouts","TIMELINE_WORKOUTS","timeline_workouts","USER_WORKOUTS","user_workouts","WORKOUT_DATA","workoutData","WORKOUTS_PAGINATION","ADD_TIMELINE_WORKOUTS","concat","SET_CALENDAR_WORKOUTS","SET_TIMELINE_WORKOUTS","SET_USER_WORKOUTS","chartData","workoutsState","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","sportColors","Hiking","Rowing","Running","Snowshoes","Trail","Walking","sportIdColors","colors","sport","color","label","sortSports","b","sportATranslatedLabel","translatedLabel","toLowerCase","sportBTranslatedLabel","translateSports","activeStatus","sportsToInclude","filter","sort","getSportLabel","getSportColor","render","_component_Distance","UserPicture","nb_workouts","distance","total_distance","unitFrom","digits","displayUnit","useImperialUnits","imperial_units","nb_sports","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","getStartDate","duration","day","weekStartingMonday","weekStartsOn","incrementDate","getDateWithTZ","dateInUTC","tz","Date","getCalendarStartAndEnd","date","monthStart","monthEnd","start","end","formatWorkoutDate","dateTime","dateFormat","timeFormat","workout_date","workout_time","units","ft","unit","system","multiplier","defaultTarget","mi","km","factors","metric","imperial","convertDistance","unitTo","convertedDistance","parseFloat","toFixed","convertStatsDistance","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","buttons","common","dashboard","displayHover","Boolean","imageUrl","alt","style","backgroundImage","getQuery","page","cursor","newQuery","assign","has_prev","pages","active","has_next","registrationDate","created_at","format","birthDate","birth_date","displayModal","updateDisplayModal","deleteUserAccount","_component_Modal","title","strongMessage","onConfirmAction","onCancelAction","first_name","last_name","location","bio","onClick","$router","go","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","days","getStatisticsChartDataset","sportLabel","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","datasets","average_speed","total_duration","total_ascent","total_descent","convertStatsValue","datasetKey","formatStats","displayedSportsId","apiStats","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","updateChartParams","chartParams","backward","loadLocaleMessages","locales","messages","keys","forEach","matched","match","legacy","fallbackLocale","globalInjection","order_by","emits","emit","perPage","onSelectUpdate","onChange","order","per_page","nb","speed","borderWidth","yAxisID","elevation","fill","distance_labels","duration_labels","coordinates","latitude","longitude","getDonutDatasets","total","count","percentage","defaultOrder","localeFromLanguage","en","fr","languageLabels","availableLocales","availableLanguages","sortList","defaultPage","defaultPerPage","getNumberQueryValue","queryValue","defaultValue","getStringQueryValue","availableValues","locationQuery","orderByList","defaultOrderBy","options","queryOptions","defaultSort","workoutsPayloadKeys","getRange","stop","Array","rangePagination","currentPage","interceptors","use","auth","Authorization","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","edition","appData","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","onCancel","_component_Card","content","min","step","icon","text","appStatistics","uploadDirSize","StatCard","size","suffix","Card","AppStatsCards","_hoisted_18","_hoisted_19","translatedSports","updateSportStatus","_component_SportImage","danger","has_workouts","loadUsers","queryParams","updateUser","reloadUsers","queryParam","FilterSelects","onUpdateSelect","timezone","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","onInput","_component_router_view","UserHeader","UserProfileTabs","fistDayOfWeek","weekm","_hoisted_20","_hoisted_21","_hoisted_22","userForm","updateUserForm","updateBio","updateProfile","deleteAccount","_component_CustomTextArea","charLimit","input","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","accept","timeZones","isOpen","tzList","focusItemIndex","matchTimezone","onMouseOver","index","onUpdateTimezone","onEnter","preventDefault","firstElementChild","innerHTML","openDropdown","trim","onKeydown","ref_key","ref","focus","onMouseover","autofocus","weekStart","imperialUnits","updateTZ","lang","TimezoneDropdown","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","isEdition","sports_list","sportPayload","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","formatDistance","addSuffix","StaticMap","moving","min_alt","max_alt","ascent","descent","initWorkoutsCount","loadWorkouts","moreWorkoutsExist","previous_workout","loadMoreWorkouts","WorkoutCard","NoWorkouts","sportColor","records","record","record_type","height","width","viewBox","angleOffset","cx","cy","radius","circumference","Math","PI","calculateStrokeDashOffset","returnCircleTransformValue","rotation","entries","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","DonutChart","CalendarWorkout","chartDatasets","displayedWorkoutCount","CalendarWorkoutsChart","currentDay","endDate","startDate","rows","getDays","addDays","isWeekEnd","filterWorkouts","isSameDay","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","calendarWorkouts","getCalendarWorkouts","apiParams","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","startOfMonth","endOfMonth","selectedSportIds","sportTranslatedLabel","workout_id","getRecordsBySports","reduce","sportList","find","recordsBySport","RecordsCard","userTotalDuration","totalDuration","get_duration","defaultUnitFrom","totalDistance","split","isSelected","updateDisplayColumn","_component_Loader","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","BikePic","getTabFromPath","regex","replace","routes","component","Dashboard","LoginOrRegister","children","UserInfos","UserPreferences","UserSportPreferences","ProfileEdition","UserInfosEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","AdminUsers","NotFoundView","history","pathsWithoutAuthentication","beforeEach","next","fullPath","suffixes","getReadableFileSize","fileSize","asText","floor","log","pow","getFileSizeInMB","authUserPictureUrl","ready","registered","cached","updatefound","updated","offline","version","isAuthenticated","isMenuOpen","openMenu","closeMenu","updateLanguage","option","toString","logout","_component_Dropdown","selected","onSelected","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","innerHeight","bottom","scroll","onscroll","querySelector","scrollToTop","scrollTo","behavior","NavBar","onMenuInteraction","NoConfig","Footer","updateText","maxLenght","strong","dropdownOptions","toggleDropdown","updateSelected","$slots","isArray","subMessage","xmlns","xmlns:xlink","x","y","xml:space","xmlns:svg","CyclingSport","CyclingTransport","MountainBiking","MountainBikingElectric","SkiingAlpine","SkiingCrossCountry","_component_i18n_t","keypath","customComponents","AlertMessage","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","register","app","App","provide","i18n","directive","mount","getApiUrl","handleError","msg","response","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ROOT_STORE","SPORTS_STORE","STATS_STORE","AUTH_USER_STORE","USERS_STORE","WORKOUTS_STORE","webpackContext","req","webpackContextResolve","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","components","BarChart","getNumber","isNaN","getSum","JSON","parse","stringify","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","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","Chart","formattedStats","getStatistics","getApiParams","time","newParams"],"mappings":"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A,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,sBACA,oBACA,sBACA,oBACA,kBACA,oBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,iBACA,eACA,sBACA,iBACA,kBACA,iBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,mBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,cACA,aACA,cACA,aACA,cACA,gBACA,cACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,aACA,eACA,gBACA,cACA,eACA,oBACA,mBACA,YACA,YACA,iBACA,iBACA,aACA,gBACA,iBACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,aACA,mBACA,cACA,gBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,kBACA,gBACA,kBACA,mBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,gBACA,gBACA,oBACA,gBACA,eACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,cACA,cACA,gBACA,iBACA,oBACA,eACA,mBACA,iBACA,gBACA,mBACA,kBACA,gBACA,iBACA,mBACA,gBACA,oBACA,gBACA,gBACA,mBACA,eACA,mBACA,cACA,kBACA,mBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,qBACA,iBACA,oBACA,iBACA,oBACA,gBACA,eACA,kBACA,iBACA,oBACA,gBACA,mBACA,kBACA,uBACA,oBACA,iBACA,iBACA,oBACA,eACA,mBCxVI,GAAa,CAAEjhB,GAAI,eACnB,GAAa,CAAC,QAAS,WAAY,aACnC,GAAa,CAAC,UAAW,cAAe,aAWlB,gCAAiB,CAC3Ca,MAAO,CACL2f,MAAO,KACP3c,SAAU,CAAE3H,KAAM+X,QAASjT,SAAS,IAEtCkY,MAAO,CAAC,kBACRjY,MAN2C,SAMrCC,EANqC,GAMf,IAANiY,EAAM,EAANA,KAElBtY,EAAQK,EAMZ,EAA4B,oBAAOL,GAA3B2f,EAAR,EAAQA,MAAO3c,EAAf,EAAeA,SACTmb,EAAwB,iBAAIne,EAAM2f,OAClCU,EAAuB,kBAAI,GAC3BC,EAAuC,iBAAI,MAC3CC,EAA8B,iBAAI,GAExC,SAASC,EAActiB,GACrB,OAAOA,EAAEsQ,cAAcwJ,MAAMmG,EAASlgB,MAAMuQ,eAE9C,SAASiS,EAAYC,GACnBH,EAAetiB,MAAQyiB,EAEzB,SAASC,EAAiB1iB,GACxBkgB,EAASlgB,MAAQA,EACjBoiB,EAAOpiB,OAAQ,EACfqa,EAAK,iBAAkBra,GAEzB,SAAS2iB,EAAQplB,GAA2C,QAEV,KADh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","file":"static/js/app.20ff75b6.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({\"admin\":\"admin\",\"profile\":\"profile\",\"reset\":\"reset\",\"statistics\":\"statistics\",\"workouts\":\"workouts\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"5f46d0fe\",\"profile\":\"d25975e2\",\"reset\":\"ca898ebe\",\"statistics\":\"d03ca304\",\"workouts\":\"29d99435\",\"chunk-2d0c9189\":\"c81458cc\",\"chunk-2d0cf391\":\"020c75ea\",\"chunk-2d0da8f3\":\"c8c3e7e8\",\"chunk-2d2248b6\":\"d84473c1\",\"chunk-2d22523a\":\"4b710d99\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"admin\":1,\"profile\":1,\"reset\":1,\"statistics\":1,\"workouts\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"static/css/\" + ({\"admin\":\"admin\",\"profile\":\"profile\",\"reset\":\"reset\",\"statistics\":\"statistics\",\"workouts\":\"workouts\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"e77f8b26\",\"profile\":\"8b668068\",\"reset\":\"fc19709e\",\"statistics\":\"2afdc8a9\",\"workouts\":\"45a25b09\",\"chunk-2d0c9189\":\"31d6cfe0\",\"chunk-2d0cf391\":\"31d6cfe0\",\"chunk-2d0da8f3\":\"31d6cfe0\",\"chunk-2d2248b6\":\"31d6cfe0\",\"chunk-2d22523a\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\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\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7d86ac06\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-auth-form\" }\nconst _hoisted_2 = { id: \"user-form\" }\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = [\"disabled\", \"placeholder\"]\nconst _hoisted_6 = [\"disabled\", \"placeholder\"]\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = [\"disabled\"]\nconst _hoisted_9 = { key: 1 }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" - \")\nconst _hoisted_11 = { key: 2 }\nconst _hoisted_12 = { class: \"account\" }\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\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 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 password_conf: '',\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 appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_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 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 password_conf: formData.password_conf,\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 default:\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 formData.password_conf = ''\n }\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\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\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\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 _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _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 onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(formData).username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, _unref(formData).username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"email\",\n disabled: _unref(registration_disabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(formData).email) = $event)),\n placeholder: \n _unref(action) === 'reset-request'\n ? _ctx.$t('user.ENTER_EMAIL')\n : _ctx.$t('user.EMAIL')\n \n }, null, 40, _hoisted_5)), [\n [_vModelText, _unref(formData).email]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset-request')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"password\",\n disabled: _unref(registration_disabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"password\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(formData).password) = $event)),\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n \n }, null, 40, _hoisted_6)), [\n [_vModelText, _unref(formData).password]\n ])\n : _createCommentVNode(\"\", true),\n (['register', 'reset'].includes(_unref(action)))\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 3,\n id: \"confirm-password\",\n disabled: _unref(registration_disabled),\n type: \"password\",\n required: \"\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(formData).password_conf) = $event)),\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD_CONFIRMATION')\n : _ctx.$t('user.PASSWORD_CONFIRM')\n \n }, null, 40, _hoisted_7)), [\n [_vModelText, _unref(formData).password_conf]\n ])\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_8)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\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 _hoisted_10,\n _createVNode(_component_router_link, {\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 ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _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 (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\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=7d86ac06&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7d86ac06\"]])\n\nexport default __exports__","import axios from 'axios'\n\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\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 authApi\n .patch(`users/${payload.username}`, { admin: payload.admin })\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 } 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 createI18n from '@/i18n'\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 IUserDeletionPayload,\n IUserPasswordPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\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 },\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.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\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 api\n .post(`/auth/${data.actionType}`, data.formData)\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(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\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 removeAuthUserData(context)\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_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.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n 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: IUserPasswordPayload\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.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.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 { IUserProfile } 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: IUserProfile\n ) {\n state.authUserProfile = authUserProfile\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 { IUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\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 { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\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}\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\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_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}\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 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 form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.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 { 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 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 * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminMenu.vue?vue&type=style&index=0&id=1bcb269a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\n// TODO: allow user to change colors\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=c1cc8fc8&lang=scss\"","\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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","\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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPictureEdition.vue?vue&type=style&index=0&id=56c3f022&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarWorkout.vue?vue&type=style&index=0&id=26e0330e&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"","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-312cd857\"),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 { toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\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(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(user).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=312cd857&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-312cd857\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Dashboard.vue?vue&type=style&index=0&id=2f390f91&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfos.vue?vue&type=style&index=0&id=7da6fc6b&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserSportPreferences.vue?vue&type=style&index=0&id=4775544a&lang=scss&scoped=true\"","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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NoConfig.vue?vue&type=style&index=0&id=1596efb7&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutCard.vue?vue&type=style&index=0&id=c9d1f10c&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Dropdown.vue?vue&type=style&index=0&id=ca61364c&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=14aef866&lang=scss&scoped=true\"","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\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 if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat),\n workout_time: format(dateTime, timeFormat),\n }\n}\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=54363c57&lang=scss\"","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","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\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([\"Nombre max. de fichiers dans une archive zip \"])}\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([\"Etes-vous sûr de vouloir supprimer le compte de \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\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 \"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 \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les drois d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les drois d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email : une adresse email valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur Réseau.\"])},\n \"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 \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : 8 caractères minimum.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, cet utilisateur existe déjà.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur : 3 à 12 caractères requis.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\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 \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de Bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n }\n}","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 \"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 (Electrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"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([\"Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veullez 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 \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\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 \"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 \"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 \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances \"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])}\n}","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 \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_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_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import 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 SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","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 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__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, 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-462fd850\"),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 } from '@/types/api'\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\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\n }\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(page: number, cursor?: number): TWorkoutsPayload {\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 event: _unref(pagination).has_prev ? 'click' : '',\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')), 1)\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"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 event: _unref(pagination).has_next ? 'click' : '',\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"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=462fd850&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-462fd850\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"","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, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7da6fc6b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"user-bio\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_4 = {\n key: 2,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, Ref, computed, ref, toRefs, withDefaults } from 'vue'\n\n import { AUTH_USER_STORE, USERS_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(new Date(props.user.birth_date), 'dd/MM/yyyy')\n : ''\n )\n let displayModal: Ref = ref(false)\n\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \"admin.CONFIRM_USER_ACCOUNT_DELETION\",\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteUserAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\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_2, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\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=7da6fc6b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7da6fc6b\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"","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 { 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 } from '@/utils/dates'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'dd/MM/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): 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(key, dateFormat.chart)\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n apiStats !== {} &&\n date in apiStats &&\n 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","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=e26535e0&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NavBar.vue?vue&type=style&index=0&id=6259410f&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"","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 */\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: LocaleMessages = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\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","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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","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","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n en: enUS,\n fr: fr,\n}\n\nexport const languageLabels: Record = {\n en: 'English',\n fr: 'Français',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"","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\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"","import axios from 'axios'\n\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport { getApiUrl } from '@/utils'\n\nconst authApi = axios.create({\n baseURL: getApiUrl(),\n})\n\nauthApi.interceptors.request.use(\n (config) => {\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\nexport default authApi\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=f372901a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPicture.vue?vue&type=style&index=0&id=626a8c6d&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Pagination.vue?vue&type=style&index=0&id=462fd850&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4b4a2fb3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"max_users\" }\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = { class: \"user-limit-help\" }\nconst _hoisted_6 = { class: \"info-box\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = { for: \"max_single_file_size\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { for: \"max_zip_file_size\" }\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = { for: \"gpx_limit_import\" }\nconst _hoisted_13 = [\"disabled\"]\nconst _hoisted_14 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\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 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\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\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.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[0] || (_cache[0] = ($event: any) => ((_unref(appData).max_users) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_4), [\n [_vModelText, _unref(appData).max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\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[1] || (_cache[1] = ($event: any) => ((_unref(appData).max_single_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(appData).max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\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[2] || (_cache[2] = ($event: any) => ((_unref(appData).max_zip_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(appData).max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_12, [\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[3] || (_cache[3] = ($event: any) => ((_unref(appData).gpx_limit_import) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_13), [\n [_vModelText, _unref(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 (__props.edition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _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_16)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[4] || (_cache[4] = _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[5] || (_cache[5] = _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=4b4a2fb3&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4b4a2fb3\"]])\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 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 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, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcb269a\"),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 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_4 = { class: \"registration-status\" }\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 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\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1)\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=1bcb269a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcb269a\"]])\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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\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, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-047ae14e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\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: \"left-text\" }\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"cell-heading\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"text-center\" }\nconst _hoisted_12 = { class: \"cell-heading\" }\nconst _hoisted_13 = { class: \"text-center\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-center\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"disabled\", \"onClick\"]\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\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 { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { getDateWithTZ } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\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 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(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 _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_6, _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('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_7, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/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_9, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(format)(\n _unref(getDateWithTZ)(user.created_at, _unref(authUser).timezone),\n 'dd/MM/yyyy HH:mm'\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _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_15, [\n _createElementVNode(\"span\", _hoisted_16, _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_17)\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=047ae14e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-047ae14e\"]])\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 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 'PICTURE':\n return '/profile/edit/picture'\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) === 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=75d6a844&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-e26535e0\"),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 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']\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=e26535e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e26535e0\"]])\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 } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const language = 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\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(language)), 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.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 ]),\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 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', '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 { 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 } from \"vue\"\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: \"email\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_7 = [\"value\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"password\"\n}\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = {\n class: \"form-items\",\n for: \"passwordConfirmation\"\n}\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_13 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_16 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_17 = [\"disabled\"]\nconst _hoisted_18 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_19 = [\"disabled\"]\nconst _hoisted_20 = { class: \"form-items\" }\nconst _hoisted_21 = { class: \"form-buttons\" }\nconst _hoisted_22 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 userForm: IUserPayload = reactive({\n password: '',\n password_conf: '',\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\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 let displayModal: Ref = ref(false)\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 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\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\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 _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"email\",\n value: _unref(user).email,\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\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_7)\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"password\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(userForm).password) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(userForm).password]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_CONFIRMATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"passwordConfirmation\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(userForm).password_conf) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(userForm).password_conf]\n ])\n ]),\n _hoisted_12,\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(userForm).first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_14), [\n [_vModelText, _unref(userForm).first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(userForm).last_name) = $event))\n }, null, 512), [\n [_vModelText, _unref(userForm).last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_16, [\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[6] || (_cache[6] = ($event: any) => ((_unref(userForm).birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_17), [\n [_vModelText, _unref(userForm).birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_18, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(userForm).location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_19), [\n [_vModelText, _unref(userForm).location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_20, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: _unref(userForm).bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", _hoisted_22, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[8] || (_cache[8] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[9] || (_cache[9] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 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=183e33e0&lang=scss\"\n\nconst __exports__ = script;\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-56c3f022\"),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 } 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 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 let 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\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: !_unref(pictureFile)\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=56c3f022&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-56c3f022\"]])\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 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-v16/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 } from \"vue\"\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\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 userForm: IUserPreferencesPayload = reactive({\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'MONDAY',\n value: true,\n },\n {\n label: 'SUNDAY',\n value: false,\n },\n ]\n const imperialUnits = [\n {\n label: 'IMPERIAL',\n value: true,\n },\n {\n label: 'METRIC',\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\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\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.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\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) => ((_unref(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, _unref(userForm).language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: _unref(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.FIRST_DAY_OF_WEEK')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"weekm\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(userForm).weekm) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"option\", {\n value: start.value,\n key: start.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 9, _hoisted_10)\n }), 64))\n ], 8, _hoisted_9), [\n [_vModelSelect, _unref(userForm).weekm]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"imperial_units\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(userForm).imperial_units) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"option\", {\n value: unit.value,\n key: unit.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 9, _hoisted_13)\n }), 64))\n ], 8, _hoisted_12), [\n [_vModelSelect, _unref(userForm).imperial_units]\n ])\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[3] || (_cache[3] = _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\nconst __exports__ = script;\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-4775544a\"),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 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 sportColors = 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 ? sport.color : sportColors[sport.label]\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: _unref(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) && _unref(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: _unref(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 (_unref(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=4775544a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4775544a\"]])\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-c9d1f10c\"),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 = /*#__PURE__*/_createTextVNode(\"/ \")\nconst _hoisted_18 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_20 = { class: \"data-values\" }\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\" +\")\nconst _hoisted_22 = /*#__PURE__*/_createTextVNode(\"/- \")\n\nimport { Locale, format, 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 { getDateWithTZ } 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 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(format)(\n _unref(getDateWithTZ)(_unref(workout).workout_date, _unref(user).timezone),\n 'dd/MM/yyyy HH:mm'\n )\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 _hoisted_17,\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_18, [\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\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 _hoisted_22,\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=c9d1f10c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c9d1f10c\"]])\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-9ef2a9ac\"),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 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 let 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=9ef2a9ac&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9ef2a9ac\"]])\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 workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n\n \n\n const { workout, sportLabel } = 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: __props.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.map(\n (record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`\n )\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=26e0330e&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 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-f372901a\"),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 { 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 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 }, null, 8, [\"workout\", \"sportLabel\"]))\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=f372901a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f372901a\"]])\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 workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workouts: IWorkout[]\n sports: ISport[]\n }\n\n \n\n const { 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 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 : (_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=4663dbac&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 endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n currentDay: null,\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 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 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), 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 }, null, 8, [\"workouts\", \"sports\"]),\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=47c7443f&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 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 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 { IUserProfile } 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: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 dateFormat = 'yyyy-MM-dd'\n let day = ref(new Date())\n let 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: _unref(day),\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": _unref(calendarDates).start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: _unref(day),\n \"end-date\": _unref(calendarDates).end,\n sports: _unref(sports),\n \"start-date\": _unref(calendarDates).start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"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=c1cc8fc8&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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","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-aee1f956\"),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\n import { IRecordsBySports } from '@/types/workouts'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\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(_unref(records).records, (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.$t(`workouts.RECORD_${record.record_type}`)), 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=aee1f956&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-aee1f956\"]])\n\nexport default __exports__","import { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean\n): Record => {\n const unitFrom: TUnit = 'km'\n const unitTo: TUnit = useImperialUnits\n ? units[unitFrom].defaultTarget\n : unitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n unitFrom,\n unitTo,\n 2\n )} ${unitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(+record.value, unitFrom, unitTo, 3)} ${unitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatWorkoutDate(getDateWithTZ(record.workout_date, tz))\n .workout_date,\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean\n): IRecordsBySports =>\n records.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)\n )\n }\n return sportList\n }, {})\n","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-ae25a82a\"),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 { IUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 { 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 )\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=ae25a82a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae25a82a\"]])\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 { 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 { IUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\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 defaultUnitFrom: TUnit = 'km'\n const unitTo: TUnit = user.value.imperial_units\n ? units[defaultUnitFrom].defaultTarget\n : defaultUnitFrom\n const totalDistance = user.value.imperial_units\n ? convertDistance(user.value.total_distance, defaultUnitFrom, unitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2))\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(unitTo) === 'mi' ? 'miles' : _unref(unitTo)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\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 ]))\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=376a0fe8&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-2f390f91\"),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, 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 { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\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 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=2f390f91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2f390f91\"]])\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 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__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=39d425b4&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=39d425b4&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-39d425b4\"]])\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-6a38125b\"),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 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=6a38125b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a38125b\"]])\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 UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\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: '/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: '/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 },\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: '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',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\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]\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n } else 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 * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./RecordsCard.vue?vue&type=style&index=0&id=aee1f956&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserAuthForm.vue?vue&type=style&index=0&id=7d86ac06&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Timeline.vue?vue&type=style&index=0&id=9ef2a9ac&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"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 \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\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 \"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 \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"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 \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: 8 characters required.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that user already exists.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username: 3 to 12 characters required.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"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 \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems encounter some issues.
Please try 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}","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 \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"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 \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter an email address\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm the 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 \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm Password\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_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 \"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 \"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 \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farest distance\"])},\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_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import 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 SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\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 { 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 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`\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=626a8c6d&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=ae25a82a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserProfileTabs.vue?vue&type=style&index=0&id=75d6a844&lang=scss\"","/* 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, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-75ada372\"),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__*/_createStaticVNode(\"
\", 4)\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n version: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n }\n\n \n\n const { version } = 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 _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5\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=75ada372&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-75ada372\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, normalizeClass as _normalizeClass, 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-6259410f\"),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 import { useI18n } from 'vue-i18n'\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 { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const { locale } = useI18n()\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 let 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 locale.value = option.value.toString()\n store.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, option.value)\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': _unref(isMenuOpen) }])\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': _unref(isMenuOpen) }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !_unref(isMenuOpen) }]),\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=6259410f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6259410f\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./NoConfig.vue?vue&type=template&id=1596efb7&scoped=true\"\nconst script = {}\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=1596efb7&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1596efb7\"]])\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\n \nexport default /*#__PURE__*/_defineComponent({\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(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG))\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 let 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\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 }, null, 8, [\"version\"]))\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=54363c57&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 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-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, isRef as _isRef, 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-3ec2aca2\"),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\n }\n \nexport default /*#__PURE__*/_defineComponent({\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 }\n\n \n\n \n\n let 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\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) => (_isRef(text) ? (text).value = $event : text = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, _unref(text)]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(_unref(text).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=3ec2aca2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3ec2aca2\"]])\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, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f46ff1d6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/_createTextVNode(\" \" + /*#__PURE__*/_toDisplayString(' ') + \" \")\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 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 _hoisted_1,\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-v16/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-ca61364c\"),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 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 let isOpen = ref(false)\n let 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 (_unref(isOpen))\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=ca61364c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ca61364c\"]])\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 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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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-v16/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 Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n 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) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 11 }))\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-v16/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 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-v16/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'\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 .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/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'\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 error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.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","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Footer.vue?vue&type=style&index=0&id=75ada372&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminUsers.vue?vue&type=style&index=0&id=047ae14e&lang=scss&scoped=true\"","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\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 RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\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 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_USER_LOADING = 'UPDATE_USER_LOADING',\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}\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_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}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/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}\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LoginOrRegister.vue?vue&type=style&index=0&id=6a38125b&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BikePic.vue?vue&type=style&index=0&id=39d425b4&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarWorkouts.vue?vue&type=style&index=0&id=4663dbac&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CalendarCells.vue?vue&type=style&index=0&id=47c7443f&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=376a0fe8&lang=scss\"","var map = {\n\t\"./en/en.ts\": \"c142\",\n\t\"./fr/fr.ts\": \"663e\"\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 = \"e7b6\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserHeader.vue?vue&type=style&index=0&id=312cd857&lang=scss&scoped=true\"","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-14aef866\"),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): string => {\n const unitFrom = 'km'\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 return `${value.toFixed(2)} ${unitTo}`\n case 'total_ascent':\n case 'total_descent':\n return `${(value / 1000).toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartData, ChartOptions, LayoutItem } from 'chart.js'\n import { ComputedRef, 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 let chartData: ComputedRef> = 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 )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 75 : 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 )\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 )\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 )\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=7eb1257c&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-v16/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 { IUserProfile } 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 let 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 )\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: IUserProfile\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=14aef866&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=14aef866&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-14aef866\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminApplication.vue?vue&type=style&index=0&id=4b4a2fb3&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfosEdition.vue?vue&type=style&index=0&id=183e33e0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CustomTextArea.vue?vue&type=style&index=0&id=3ec2aca2&lang=scss&scoped=true\"","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 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-v16/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 } from \"vue\"\n\nimport { toRefs, withDefaults } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\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\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Error, {\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}\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__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarCells.vue b/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarCells.vue index c01f10e4..1973a5a0 100644 --- a/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarCells.vue +++ b/fittrackee_client/src/components/Dashboard/UserCalendar/CalendarCells.vue @@ -77,7 +77,7 @@ if (workouts) { return workouts .filter((workout) => - isSameDay(getDateWithTZ(workout.workout_date, timezone), day) + isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day) ) .reverse() } From a2ea4c212d9c8f2cea477ea365ca3739997eb1da Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 1 Jan 2022 22:47:01 +0100 Subject: [PATCH 2/2] bump version to 0.5.4 --- CHANGELOG.md | 11 + VERSION | 2 +- docs/.buildinfo | 2 +- docs/_images/fittrackee_screenshot-01.png | Bin 549015 -> 549185 bytes docs/_images/fittrackee_screenshot-02.png | Bin 362059 -> 362230 bytes docs/_images/fittrackee_screenshot-03.png | Bin 206795 -> 206958 bytes docs/_images/fittrackee_screenshot-04.png | Bin 71321 -> 71483 bytes docs/_images/fittrackee_screenshot-05.png | Bin 72429 -> 72598 bytes docs/_images/fittrackee_screenshot-06.png | Bin 105352 -> 105516 bytes docs/_sources/changelog.md.txt | 11 + docs/_sources/installation.rst.txt | 16 +- docs/_static/documentation_options.js | 2 +- docs/api/auth.html | 4 +- docs/api/configuration.html | 6 +- docs/api/index.html | 4 +- docs/api/records.html | 4 +- docs/api/sports.html | 4 +- docs/api/stats.html | 4 +- docs/api/users.html | 4 +- docs/api/workouts.html | 4 +- docs/changelog.html | 358 +++++++++--------- docs/features.html | 4 +- docs/genindex.html | 4 +- docs/http-routingtable.html | 4 +- docs/index.html | 4 +- docs/installation.html | 20 +- docs/objects.inv | Bin 1266 -> 1266 bytes docs/search.html | 4 +- docs/searchindex.js | 2 +- docs/troubleshooting/administrator.html | 4 +- docs/troubleshooting/index.html | 4 +- docs/troubleshooting/user.html | 4 +- .../_images/fittrackee_screenshot-01.png | Bin 549015 -> 549185 bytes .../_images/fittrackee_screenshot-02.png | Bin 362059 -> 362230 bytes .../_images/fittrackee_screenshot-03.png | Bin 206795 -> 206958 bytes .../_images/fittrackee_screenshot-04.png | Bin 71321 -> 71483 bytes .../_images/fittrackee_screenshot-05.png | Bin 72429 -> 72598 bytes .../_images/fittrackee_screenshot-06.png | Bin 105352 -> 105516 bytes docsrc/source/installation.rst | 16 +- fittrackee/__init__.py | 2 +- fittrackee/application/app_config.py | 2 +- fittrackee_client/package.json | 2 +- pyproject.toml | 2 +- 43 files changed, 278 insertions(+), 236 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1db2b4f..b1d9daeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Change log +## Version 0.5.4 (2022/01/01) + +### Issues Closed + +#### Bugs Fixed + +* [#131](https://github.com/SamR1/FitTrackee/issues/131) - No workouts displayed on calendar + +In this release 1 issue was closed. + + ## Version 0.5.3 (2022/01/01) ### Issues Closed diff --git a/VERSION b/VERSION index be14282b..7d856835 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.5.3 +0.5.4 diff --git a/docs/.buildinfo b/docs/.buildinfo index 5e4742a7..d7d3e2d7 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 1cf0418942439ae0988c1a23aa3ddc9b +config: c9a9eb2cfc8c23c5c4d08b5c1bd190ca tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png index 57b281878bad3033b6a0999dfd87c76bdfbed9c2..bff294de3d3800c2cb5211fcdb2633fe84aa441a 100644 GIT binary patch delta 18880 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� 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 N@O1TaS?83{1OPR>W*`6n delta 18867 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 diff --git a/docs/_images/fittrackee_screenshot-02.png b/docs/_images/fittrackee_screenshot-02.png index f371029f52b78fa6a0354821ab7067b95a6c49c1..3d72b92412dc934aed1a0271e61301613a92ed02 100644 GIT binary patch delta 21381 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 fNtlu>XHR70aE0x|LZ7qyL7S}jo delta 21356 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∓uXxtX92r~ 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 diff --git a/docs/_images/fittrackee_screenshot-03.png b/docs/_images/fittrackee_screenshot-03.png index e6fe4ffeeb3fa1a6c6e1f0bd064ff86f7596ed19..85bdd58e803d780f6a6ba72383ebb12842a20e47 100644 GIT binary patch delta 27262 zcmW(+Wn2_r8(mrvK?Ov*J6%A!1f-j#ySuxF5~RDkVJYcu>5`>eV(E~Ue)+%iyZ77N z`S8R!=Q%SoI*D=e8zYtqAs~*L6i`nlY)KY>{v1w%$ig3j)TTC>8@hfk##WRlJvnoj zqox)o3x4H1{`rT?F7R~U`n;(xU(=Fk&Deo6*)^kr6@)k5^*nH4At(?tDI_?V;|_SP z&+cz|quB4y-e=gueH*K9g!KP;HTIN0*yc70l8)&M?d{hEUM~yhgypN@03J0$NLQ1> zpW8_n%>B>oMpM=fZkWd|1cA=ykbvhb5+mP%r_V#DT_w_&Zad?jdc!^n#E>_-BPczi z;i0h}`C?3Jx64l&N9t=+lL6t=F+disE;HxjS-yVl`PQucB0(NVH2Fp{KcQtKM?rIQqIGwZSTD4C$osRH7Exqy{*;IX%3q$$lv>fm_X z{uTO{QN^9hAyboIC$y!vum8?Zo<1keOQP20SA5(@cIy-!vk{6T6AX*iN%izw?mu|K z5dM+MTlXo##J@swOl@rb9TY#nhRWjS4Dk>gV{$HL3#(4$;}(wX?&atk z1a@$oaahvICAXxSG>~>zR;DCMIhg4*K|R0XG+FQ~UYez7hC-2ub8g$Js%UP>s=A;* zS<9|yc23K_Ae01Qd_|_Z<7#ctV4`Oz$R3O3lW_>XdHUiw_|T?qvW6}vNlnjmc2-T_ zIFy*{U(IM$+i~Y$jVOJV%Q<~Xw%Z+kigMf3s>=m))0*2oF(6cXEp@2x_w;SkU#12!uH-#qD$&zT(_#@h5QEBh@oes!za$JTUMZCT2#F%x1|5=Ge7#Kz-Z zl)$r9z$*cItufkmLEuqjl=%@cdR_P1lcquP4_Be)XytJZn0XNBKD)A^ryTzVSFvw%{X{HkyCc)u1S=+RB_mAtT3>z2Hb zabVfy+F>cV_lqnK7)+T;)xm1tQH>kcUW0lo_{3Z z`~b)dYzQIShij^h4q<=wikUc>sMK*CP4eBadG^^0--uvd1KMAcIMRLdy@zLpF3zd7 zLWdk{zUeL}?Ctjibi0;s;CYeLT~dtz2%NUM4vIhDepCZ?>Da*s!;DECkyV8FrCL_o z_=CsyCTjWq(VgZ(%au^MyKh7W^H2U2iWibkB%&~~w>`~scmPH`}+ z;eL00P-1E;_%eGBobPBvtIp93NxrU^GW3UP6?uj4M!ZHIHRrna*xF-4F_?z9z*MG9 z;oi{)kywy3A$4ORG?J|`k%OMP2@;=ja@eDbMhLpptM4N485hKc9*?}4=DiU`0ADM& z%TIo$)Am!8%Ze46jx8BJ^{0^_*)(MF@`fxe%-xx;053OzvccQe4ukYXbf@Dz0QdjL(I)6OZ8xIvy8Jju$ z%imb46+pIerRb$Uw|DgOA>&lq2bNC)BJ;R%LrQJeUX{^!#o*KsJtIQBOQ!)P3xD=E zL-8YV4g7jV+3zyCTNY(K^t9>ALqv^WBPD#YHmFQaw@hr(2V?BH_Pre73Z9RFG#`^S z#RD9=c1He&?4MI(HyI1dCcYtFmBGL@PA7GLPb!#U8HCuslXW;8z3!gV1Y}xxcHTeo zCQdqW7^^pArztYl^~xjRC*xsK{lq4)#>+fE2zK8al@eLBMpvf{R-$fh&q$Omqa(yo zvZO696M@!oHGhx7#pZ$6fr_!r<>1tKF5J0m!fI41blvsBh<@_mS& zRk%zM(Bm)0WTq@A?kmYNiHe!>>bpLHNrDvpew5o7r1d7(7iMTMgq73vBvY|qs4^33 ziO(6pLGKD7MnXmmBh-P)2Tc-U75?0m=amJ)6udaH-$iMXq#PZUfH@jn94!!PJxc4Z zYMgh$uz(hYUQGpv)gOXaE-*FO!H@Q9`(;NMWMQ60M1b z+Ql`iu=6MdPj$=CJEYfLJ$D6`$BLsC?r6IrDkbCxQSBc*xPkg@a{~qZ+|C7<3KwgPz@y5n^c~f#P3j{)9djJAzU&8-O%ANL_HVgq~07t2I_R*!SjF3sRh3x zopiPnGau3=&;u|G_VNz&RHsI7AgKDwUmadeSh4@uPBQ&apT=3{Z^7@dy)^Oab9li$ z{kj6RBIgz1&;5tsKq>3q*FT^Ece&+`ax+~asJd9Mm-Pl&iTfI}-l8LpeifL1^EHo& zA(rky06Dx_jBSXk)XcagRu~6rC^ed;mnAOqne)6^S{f0E1gSzr??hc}II( z$b?(*gre){n?$LlWv9*@0&tgLpHaml-(pZQU;fp0#V#g!dOMNHgqIMh+Vguy}>-CKg5cu8V#r*kW zfsj+KulcbVP)q1I4+2@G*p_oTBz$j13`)2%QKKLnQI%w;%aAj~(DJL$zqu3l>HGTn zMyxJLg!2>Q7a=s;lD9ShF*Y)oyq!T-g<(@G8# zqcf%Er&#m;HBA>*Q$c!zQXImFxl$e@g#$?E-BaXS;!OuClU66u^Bw}9 zg!`|EZijW5)5s;)1%ImP-d+#tm@*_6#Z!65Vguz!=H^DnI+|vYAwXW1nb!vB3>7g zl77Off8%6uD&a-;JN_YSpdGU^JW5Z(fa#CkpWoC&ydi<*@I~RT%r5Ji{_n9gOUk$6 zMaKc$pANSk=&5h3{GE;HKLl57+nyItl*k|i<~vl^d{9>RP54);CoX7tUWHwTO`IGI zcVX);oW4Fr4@ZxS;=rO#5U!sSJE^L&rY9wHJ(%&fWhed^;2P}|K7s@ZRk6=l3h=J^ znL4LfYQWU=JzIctZuX9YwGsZxgf2Cjwlx@7*9kWG)kju3vD+q}xd*#u&_J|7KW1p! zBSPf-rA33lFgCQahN6H9)yqU}z@_8WrN{~!N%ZO0(`EZ+LY5XQ{mSEAJID`Y02mle zd~N)eSF1!h2F&6@N7ApevpwD!k0dOZYN?r1s${QaGk%Ab>C9AUgn&h&UX7D>Gq?bF zGW$otiXU2c|AN50e?KWp7Jiyt;lbu7>IrA&;-S0aRbE61s54GPPC#Cb7f>AtS0rx+ zMv8|WH3Kd`aPQT|r7`D;OR5OzRd0sZ?y6AV%DoM(3D7stW563CR#@dA=0Yxb`uWb^ zS&t*{WQMG(F_D19ZAP;glhV4VC~P>_l!`1htV4aB;#aTVw zgy!vPWe7%MgWc+)^EOz~@)FG?T5?3vpNgDUT5E#9tU$QP0`VYZn?kvRc3BnZ^ic~G zLgf>E=eNkT4Q{CUA{@3QzHzCvdh=$1_&n!83?dptm3Esp&$u}=)jihzPH}kdECR=> zZ_C}V{qR$#e{dgDH(IH#+HdzHX8h)onQ#u#_;Lw|BC(0_Q2wIPZbI*(A6gf2{pVQ9 zls_WbICasq9etIG4DdxYyM$4hO0{AS>fXU+}@xD`&%>tNir$bzt#`_ z-4V=&jt^mSbU*%9<|KD$&7&bp2nx&XLp)r=S)0BfQU3|oU|sm3e`ztlTgn?_X(5?g zo)(Qm;ga)v9ugT^)O~9!+8HQE`CH1=lIRX`h5DHkU&KgP{0;k0mu_ zPZ<;;Uv7W>_)SwM_XBB$5@04Kcf{nMwtkZzC9vsM*rfkET`-MF>;^@N{T(u?*Q$oh zq`)dtG8sj`&v6H7l%SYs`v(iOz(*`ubWRZY#R4kzD+pN#e{_G`YwKi*Yw&w>*98-!Prp-T$;|K2fK3-8Ht_~h>Dq=nX=f8aN) zDk#VmQ6ivfruUe}nBQK0r`qaUecz6M+pKmymRMW}i^42M4GaJXz4U4EUvWWcv@;M` zgb@!aa=ggEyn*ElXkt5Z)+fFJQS+`Ha$LuXn|N%qiqM zH}PZ6LDK$89^<%QVD+%aPif^B*ih6OET-`5crAzg_i=(lZ}@ttQPuvq(mLfxAbDir z`~i2fn8@}1NkRZpFfPg8;!@Y;rMbbaq%!1#$7Ey={mvC2d1p4Q| zcZ?VO7<%fV&B5??f9EFo*~_mzMVhq?pzprt_?=Xff(HO65XAP__XuI`?k$w$kG@z) zIq`kp_n(s6$0-);u=m7g_au|Yl#v|9_nrOgJE*HHTHMhf9QC_a_Rrs)fizMXSA7#Z zu0sXP--U;{Qq5Mft3mNW?M>WeiMv=n27j~JgkH@ zIFL-iFXI6;1r!_c!E2sTe=%alzdQoLs7xYFLKFw}{;M7rd4Iy=8007%h3yi#SH}bM z8svYWotx=?vl*Q3ThKzifYH^udEoDqH2&~*?m(Caj2;E*kH8S9 z)D4GE(wVKE@JR-UzWOR&Hr29a*>!EF(iEsjiG&68d%ydN6tAd=EeZ)gGDLfho1YxN zc<1o(50%$fO?>FG16C3L=iJ1SARPgYewSKh*ksFlr6~iNIuMa+BPBwYB6Z=WD;*~} ze{h{gl5B;ZnztiG~dK)pgR%1whJv)d=`AC)MKCMJSv3qjt-~C=G??*$( zKdecmyg8XAGE*q=2Fk@&rmfxEBU6-YJ%&&=pXd)dPscVJH@n5>U-698V_LJ(VZ`73 zHAxSH+5Y@>bDQi4?n`;vH+?>0$ntDB0?B{00%isqg%EnW?vI|PS)TxcA6`ENFU=)U z2jjlJeuRI>M=FoNzy%DK9b6JQY-2tU@MirwrSPD8SIborEm3Eews&ge^26aOC7S&8 zLMfPa*yzVYUJ$EjZ`0>{n7%}o)S;WNlzSF~vJ{r<&aP~Bpz7r8ws3I~AKMVJ7z@b{ zKOi8PyiZPHCM)N`|>4{5=L69KM40UrWG$rBn1`lKY6ZW8^KJp@50!uX054^vWEz|5|ekegE5 z(D4(-X4xFE58x6VTHpI@QpT^*FeAY?006VXIp!8awvVpxXT(YzrcK4U@*EHd;k%`% zsG^jpD4Bzky_uzrDG20|=^G~?*{6u}T|q@WE<6ZVj0ijvXdt5cOQ~Ej7(GwTVzy_y z2>4w{{xaC%=)A#vVp1d4$#ivfz(wvMeJ4RnD~?Bh)>-(QVt|n3misij&-(@e_}VeX zQEp81+htjndeexejlr#hLU6n!Aht4Zkg$`Bs&)M+x8}lnDPXq!&oJTT# zv0S?de}^Su=1o{%1zq{C-CxEu#IgV44#NlSGvBbh;b*rgR=N0PXjJoiK$@^FzwEuj zdkIy!5+Cxdni0>4I<>0W9iH2_q5zMtY1(0ZNL)8XGMPwlAcHhr-?zvoUiy#9^`tjv zSS@~GI_NFZ2HP6KC3=GJgp+V(<4qCFqS%$WDN)_4{(M7#G3js&#AfAO1P z+E3ENskc-eb1(`C;q@;Lj;pXlfj>@YpM1b3DsDw&%;Y&}Ym<9vwZhNLznSZH#w%N5 zrqRgc>ZI2|XraRO!i$H3Hz#&E%UuHFw~rv(YNw(IDL-To2nSsE4KEy#ijAAo(3H!> zh?(u>V&(vUHfH8FGBIQ3G2`Sk=HURdv6-d{=#g=X=KdI@tKE>+2{+HlbM~(^fTD_3mXRqCwoF3q4+y6Gu!8vr3wb~ za)5c+ztk~O*u6r2=uH$($YNke!)2hwp3}i~*XgLLMGCc0sLB=xr35h@;><)9-OYmg%1(1m23u|k^9W9*9 z3RT9in`4=4XmzD}=-8tZK@fJioJiBbFaZIp6K}9lL0^SfN>S(C!mYZYCJpXh2cEM0 zC4XVr>3|?d%|vEC@Ax(ARF9a3+DyEqWbxq4Tu>c^y+9wpmjV}xjm+F}@m<~6PeOQ& zM9pN6(JMpBx_}${I?`OClA@HYm=D6!p(CJekTv#14}z)UM?DaSc$CaIXs2o zXk1VzbRXjEoPbGMr9PVX~Fq<%WEUSo-wN0&|t?2+w;rZLt(1H>r zt46CZf!2=#u0u!cd84dM;%(jn*5anorvuow#02*-yLNYP_d_ChFhX-#{(VgGRcs z)**&7)tUJZs=`~=1b`qop3BUV@E$MxmQ5U$6mZ1JCTW4caCdd3~z%6Gr~MT!WKraNqNVAjIe=#~+s_HNva*XajoNls{!(#taFDpXrOut171vr` z?)>k0CsUA~os7CQDFvPWUDRIIJeSpcfM~e6k@O&VtMTUUuv*Q~Fb}5owM^_whxN(f z?8RiYx}Kh7fUtp%qNb8!ZqVCfD}i=t^RXZ)%u{O zyIHrgo?~NVt)%J_qaK63I6V<=bCmne}T_ z!!*7<`gS7=ynBb!)sNBe!zd-TG>T zT1!qgc`c%@$Ee~nJ*WJ;f0%BL@-CWAp;4a=%?7O{ z#=`}~SM$~Z#%RCQ6+>h0X4xa6bv=m-ExZ25$66*8fwad~OS>u(dkh(YWU!fAy;SHj zx%FS{`m}f!r&E~v3C8HI8@;gKX89hR9K_Eb zLJZG_Fy9-$tl+<7h<~NxPR1u(Pq}B92;~3zooaRvCKrc_)N5JM z2PD$K1yqtW(*ZZbG-#(|AqY7Kqeb2zzw%1jLZ`!h$q97Oxbzn|QPxz2BXpj&+LWFkYUp@)ZkpI;wYpNF6UukeEE<0~ zsxMf)SZ8+7sBJ%L*EX2gcgc_y_HwJm>61;0WA%JFe~!djtiD}|OqiQADAZ@3*>hzCs1dJhN|bHR9K58<#^=NN?kvpU)vlCO^|d8@ z!0qZ}^sF3S1s_Rtkxpv{fx11AlRys1{YIa8vL=p@(Svlm9sO#w0Ddj++heEJ+F8K> zVPTe*nT3Vi`NN!)ILhNSW@_-FW@prm)#NIezGT$<8)9wVPw=czgGkYf4w#TXl>}*Q z#B-)zWgc97B9^_rGAlnslrMSVC0RBeoXodb@1wIH%r2cyYLAp}4Rd(cqpkil%t%th zOYb8wMJByPSN~)H91nMxka91IMRf6MxEjT$q$H_P!q?Dg?UHrMY;TyHw6y+r7#9lsrYOAYumJHdwH_?_B!b52cYOVcd)N46YI z#>&!EcRwv>l3qjwM_esBI5vY_9FF?(cFo>i9{~btcuob@g|#&X#r8V$=fm}iM&^xo zP8R&*dG~~CaSYOoV`rT7LB^UihfJ=WS;q|anzF zW`w9KX?f*cBiE7^xPL=p7*)chfAI~dEG8+$5n1@Y=~a25v3_u#L(nyj9W z%m)y4>#d?l9?pVVPnHft`X;1E-{|Fp@Y-Ubq|V_Kd7O#q4A;}AP~PhZkmT&Fs}>d8 z+AcM>sGV78J>QN4^Jp*4h=%57O8Xt()+N{D135hQMO>H}1UmQCWUrN8Q4yW>*j|rF z<~#%|OW4t?ZHPXehdeLUgZPB6l}J9`}$vl^KKijflUIfJ6q(KKvOHiz?y9KwF&QFLUiV0c;QqM5P@z;?I9C>XYi(Ur2a(g^)GkmUGL;U)?5AA_|cPO^0M5Y(n)+I>Rb5=lJR=h z3f7u=DlH;0t==lq#Y`=kAs@GK0E+;07n7N%bizwXhN&PSKSkS0+k>NHMQ;h!rd6+u zm5@9a8k$fZ-@AQM$r-75US-?xx6w_SjfIk(KNa{$R?97@@+C-oRk_wZ3esH+Y&0yR zmNsY)Mg*oNgGMu`lUGC`=^-@pQ9gmDEAma7uVrYL^S=!hWi{QZUg&&H0l%Y6G7|M@EEJR?eQBaGCHk8GsVahB;IFwR0q>bfQ_7|mYYaH+Rn$JkNyh@`m9Y+HRkcBJ43agv{`?fA zi?~``f`*Ks!Fpgk(P{1>i@@FfQ)dTko>`xRK`Oi$wzQP}SWC`|6FX`-#3pfoF!Cs$ zbT8otTn^`yS2oDS*Spv?oIJ0(GGOiw6OO5geJhB2{p{-M3N0@Ood4bAg?Z_i@9BJK zGUCM%Dor*?FiJ~>%?&xGsN>FjcULuU;`%V9GRa>s(%CYCL3H)>V(!4V!zR)mlfmNy z3#KuUB+tN$!R~HV^XON{mf5GRn=&+gc zS(5Fmhj#r%I{qU|YRU4+n0)TmRU14>8x|&7F2+zM+e^@yL)B05`l|nf%G^hM#wvm6 z%J|xi%sz)9Lv9)j#!v=E;A&gN>zSDA@aJ{RDJqMcoz8GyasKLOII6(nVq=ulihE#J zi!V$67VsGbF`y^RRsQ%*??eN&v>>s%AEfMokN~%(;wwF4(Wt08biW2K$x5i=_V5JO z9l~to`G9ZxZzP3Es;Q$^WO|0jY^=pN2KlY&>G*CAg1H%h=i&lJ$ zVbS(%pxW&Q-n}%ZnW@YN@(W2A9cI zQr@C*7e3uZ17}q-tJac}_LquU+E@VZG}b32gX8-gBty1;5;N?2;C)`^?!^4 zDl7Qsit!gUYuTAYz|28!Ag0^eM-w55u!Zn3DPpRi7Nrm-= zcwJx11RdL;MuwGtM&pSb4)v-OV2&@O0EVTSBKjQYwntQyT6J_sCCs4d!1JlasQQz< zZ^KpV#ztt7h3u`mPVoaHz@nne+G3^+=_-6w-9qXdvEy=Q^uLNSj?q+6Er{=NsMR2+PxXD6ldN`Y zJm$Ba6woxM|KlRxdU#V9gw&-{_H^OixRM9*fG*==^Lagt0KepA+WPEEi}%p4ZtNg- zJ+ilf;s?^#P>!3Qm@bJj1o+iXnt2jD1<(>wzki?m(FPMAW*$j1&X14T2xfC+M^7<^ zjb;6arfE(Qu4vkdnyIP_x9RykXqMmloLnV&x%QRcE!YEMLjRtgtyTqYEN;5zHvW8O zH;{TPeu*C=(8Nnu_bVO>9;rMZ#gJvG$e{bnmn<*QnD4YRrn#hY6B7CRAA@@6hGJ)( zqUWPwntYB9*n}Xv2Q9%w(mT*QF_IQXuT5IJ^X%>M!`idTZIb%IBHyX%S|*Ct)m7Jg zAEP>h`@WTw^5k-c%QBw+Z^HYgVI~>IY$EN~f;fuBz!FnYB5|9t0Fg5YB#E5VO@Cir z{TTWnSl#&-t;<=BGVGG)K|=x4j!qJG+CSZUXJjV^GuB6IgNNir+C zev8VA!6w&?SbRW80I4HeriSgGADqKar?KrHbq4V1Tr%T?jJXT>wTAd3>~G|h_3dSE zWqfG?qNXzwD1F@9iEoqFQPUPO)8wJRgQH`69?FWL=#;4K0r5iV`T2L_`CY5|iWMK? zqv4awDOIhj4k_K#oa6M><;4OE1!eb@a|BmXoxlSH8s^mUs@n!AU;pK%?KaY*PA zCWizkOOupWaO0@NR|F^%TB#JCYhF<#jp|=Yt>^7f9uQEVU1hqid`7ro=pYaoND2@W zQBAt0naMdJsjKp*B(qnjitk9)p$^$x`_US|I--t(Mgsy-lp;qT!sYDuLxlj@wrgTV z{y0TXsW`#wjpeHz?P|WmL zsVqq^oVQp0OeDR|Y8W>4SK0W>M~g9>)nntp$@|kqe2c+qIls10g(rf+^t(Dk@`OrX zNa6X%&}|D(y)b#vPH2#pj!R0TyV>dTC#jKR4pm~O{kTxlc}}kNTz!EvM!DdhSwL*;846cik}P-d%U+tTtX$Tgzprl9 z#d_Ry)b$&-a=mmLShXy zD`WMF0U-mQN4YwB=#@0E+^VO(*o`rs!KGlE zq2>Ck&0M;7B$rVF@8h_dMET6@biVNKvK`8fbUq=QN#|@6VJS}du*^~YHYVZNoo_3t zUrgQU+f_jv4c_Gg&S%Livk6`1&{6hw9cQYtfcRWY;v-1F^A||c<>y6gamJ?;nVc^sfHYquUn3UXEVmHaAIgjstO|H++O5dN#Nk;`-5)O+h` z72a58H|Y0YygQVdAUXF!IV#rPeD^m-M!UNeS0zH-{o;5Q zJ?)ynLIs>nE9EgyYk2k6`m2A}zjU58p4@KlHe5&F|F^Fcp3gcqy8e${ zbwKq~If?fUSL^0=%>K0gzme3dITG%|nCA^VYN@VAH2s;?oPU{A`vqM$D39l1S6hu+ z*3UO>TF&MtkuM9=67p|(_bLv{Hlwm zy(){fGuK14%>=%w+;BNx zE}GTqb)0lJGT&9P*=wZhc{bbX440^>EnGqWvC5X|L{qJBYyJ^mFnuTv^<*=IKsB zuoA`Dd|%SJ{G|Q)c@H|OhN&)Y=e0%Lzx7(+G7C`Z7P>|{YhPr)1S)}B!pc_1EWb-q zpyV93xn(z+^YAoyHPPn%ACw-REZfIYx!zpw2M9e8K29NZ74g}(sPVbYA3RMyeczd= zAi&gn-f9z?3bpT2V&%WI^<1%g{IeUw_%Xuzk+qY$kFCM{8DYGF$$S?iFKTa?V`Xj4 zX}`t~Z*`vWPCo>+A&z0`SObZK=uo3h34BIvsiepC>(i99@bSr0i13|ZkoF#3d&{uVg5DNuDpRD9rANZq4@}BTKtTKV7KRgh zh|j>X70{%)(N2L2XGz>vzg^)BKlYP9Rb^5;&GXf&d%^!NHXh=mDU}d=3T9wLl|MUn z`ZVo)_lOS~c&_;HXQuMO12-}VaQ=kpDQDm4?c7l&4lyipW_~;vF2RWsyM$N!Y5pe- zFLu?eCysd1*}bEw%1(r{Fx`oW%Ib-DedR>530=)5>pK+{b(w7wFqyCqxftEMnNtP@ ze6)9g4KtqVcF8r}&?Il}g6tyCK1iY{KV}Z>wTzU#>i)K*2cgq8{i4AzCwqY^Q&D_j zL;}If8`9kT52?cD?lIvJ=cefiZNGu-VLX?M2K7?29v%FUyqFcw2(P=l2G@H#DcBg) zi8+%?JH)Uwze4O{cT81O<>K$-R#@=U2J15*+5a5{{a?w`<`Y-7of|l zBX+F+Lzc(UjF6PFY(5z*pCh~PPJ!nhD^MoZsh4iQ>Se5EOc=J9df;*5#TR|eP3&2N zKAw?69KWGBUxxPTg-I)+&0-=c3TGZV;?$JnMXMOqiCve!c574tooEbF(Y5jrfC2Yq za*T|%<_2-d-mlY!G#>6Lo|}9f!Q~NWsL;stjUmCHx5m>c=nSWpzNwjMGG@PvG-CmS8I6sq9mrK`|aTfnzr;HgCD1sz; z7u?r-8q~=;qxUI@8h4#?ukBz0Pt3MOoUtT|OmmfUAs-*RB6`tS2q%75-S(W~@|U(7vtb(=`1ZfI!VsOFh?Iw>i@R})XWld=&H zON%>p|AcAUO5_xbfgkn>lK5h6oYoP^fgB)Ca2^+Xr@fnA|SoBvfz#33<|sW$6nuA7j!SG!%6 zMpAtvR;|4>Hnic+Fq_k8-bI)>eD5+K$h>@3YlV(S7n?zx06659Xtu>1sr3a~4=~|f zMk5EV!4h|7wh#aG976C{3mhbdmn6amop?s z4;_Y&xjW9Z&|n=0a<0}&6JI&M9V%45rQ!Psr@H)Q#9Kj<)ZeOWxw*ORRd(2yvd;Kvu?MyJR&Atp zZDAuPLEsQ5upvGxbQi3A9NKUs0~DO&GMXf9TMP<4#k9KFE3J*lxSs6_75F~iGs5Zk z;-XvVv~3TazeDgdN>J@>zr;pL7f&iOVXK(hWFuAqM4ACVmbAPfu{laqek3`AAW$lD zptJ#E3R8#Tu!;0!N3#-_j_cy<6xJcE!{`jN!;74jm%jiTk5|ftp4;pX+Me&4w3Jnt zrCN6ra!9>x9YU)4-k|rUvll1}Jzoov-rt!7MtQ7{n0meJ7l!>Qcu}Gc5z(u%>)N++ zdk6f%X=z_%rLwZJ!igDIaaTye9B3RJN?Uof4!2U>oJ?C&sHNw-xH0LKW=z;A7^0$X zMWuzM?ZC{wP2}!YgpR1ZS5~v}l){_PqKRQukDr-Vs_s}tb2V8@cO3QNH)fQ`VqZz; zDp1tr>uoJu%Hy9_J{B(f2;YI`b*M*(eh2zSzkG`~_PgduXssUtvnEb?X`Q087o1`TLn6l?duUC^oI=`QC<1xuht zZ@lt2e831=ZvQ(jxzTZS-En%>3)n8hyBt{NOB~jarcv?QT@|Qhk~t>UMZbI0;uhjV z+H1`6Zm6z$8nXlRs@#rOa~>TsYh12O8DHczM9A|WJ$1a4DL5IE$V$~*ee&~sP2079 zYir#WFC;msw3)3!GLixGN7d7bcY*W&gZS1Z+hxN!b6pd^_lt1*4x z={6%_n)$2Y-&w0aAK2{L{xR*MEnWG)F;(qfM@^+AJ9`<+pOF37_fAo1M`kW5=XpSa zV=Fm)g)18$Te*?TZeH8hmKSV%)oeP7?lcJGx@m(~lOO6>ly06XwYnOlxT-tkS^2L5 z?V1mfwvz25sb)9=cYa~fMKPx(WA@Bao-23Dq7IcvLF<#mFVbYEJZBMtAbX&*(a%yJOr zP_*JTnNw)*si$g-@MPk@lEgR#*}+j)m)06IpS-J;>=%?5+kuwFt3t3-a-#J$t~JgW zb37FsXIqLI#c9PaYE0Z2esw#uK3}fEkxuN@myx{nLm@ggul662Cu&#aS+jtZ^@*yK zR9QT}R}l#0K#}+vH28OM{ju}~cP}p_a;D~=9^0f#rWu%7W>N%i=#x@#qBPyE`tkN< za_$qKHr6`}fWD}4r?#wCgC73J`T5R5Mm7D4*%Y0^jQPiG>4-NF6#uE8=t$;@${dl$zKU zFuMmABWB0qM3q?_7HBp9IoL?+SSD<;)&^I-kT>?)yeYS9#d#m)ebLO5-)zy_tIOFD z4nSE;2S-hWs%U8~F~6+F7R*Qwuzg!b}hnQAq;`|!f< zOq$hvo<>Ji`;%3}fcNFeviEjGs@2k5aV@p6ka`+|C{h4s$IL%QT$0o>_#1Uh_t&K9 z9<=d4hAeq;9pH46DYVs-CG9XBIP%xN9$>q9equ|Ri2&mGG?XH^nr7#E<92v(u6=og zZ>>W7@F8-ki7PASY6s?7Xz*8(xWbCnJSJVEX-E(+|={z(1T25F<0*^yDP-R zUlj-5BHT`kxVpR2vl1l_9xEv*G==xxhSP4Ir<+O_xABxAfEBm&S!U0A63$>8%%-^sUe;Be+slZi~=6~y3Q{y;5YYh2kwcbTLklOGzm&H2~%5q z0LT9Qm@LcOIh?V6fBdc0^-;!*Z&hiliL9a}0m-pulWl(@E^!BqdAZ)%FYCPe!OB2x9dup78Tbi8<3jBd^})fsepFi}L_ zV4b!zGX}eEOg--?Zgh{XAKrX8+HxBJx3aDKj#T&C^X8;b=_Ub{ZdgZvqUiaLj@@4$ zDfzr_ln|r+)pkunXKtU|J4-Tz{*pgF>YH|kX`L-d)LuiSZ80ig0n2kuC#nF#?o*t_;Z)JDK4?(`^lf!Ysb@#P&3lCyahJgye$ke)#ER61aryRhTo|}J+F}uKp z_#vKF>LNR}f^bG1cK8-t^YY*Veto{}e$~^wi@yc4g&z98mKmA7+AbmZS+7*@-6rtj zqCB0pOrKr1UY&{Z4)v9*Cqq`JTF|i^rk#_U_T3R$$76HOZ4la z_?_Zm(oH4*-P+CmbH6p>20RwAhurj6;S8{vbsior5T^}T3MA=Lzk8%OzjyTUZQCGq zQ~_^)?sLYRf-0S>@`etXoR2arjF-*X@6xB`3vu%FgVtE6_nyXsY0lP_VJ;M@WHYuk z#dTP`8|IlvBy6YF;s^kbqm3Vf@}$ORm}Rwzlt1p5RkU46v%cHXNnmv z2E*M2MU5{uO1N>MRb~*c3A&nU2)T}i<>y2GCmpkxpsUvi35;EEb_O2VDt$@?Hjk_ul=1{2pXPh(V&hUu zCO2v7H;sp}7_oF`)|f?MNe-6;Yj5j9Z6fWW9N)+3WhXT_Lj{l@+Vz(Ot74KPRXFn8 z#3lqLQPa&Dr&93=I;)eO(}N|7iVIHOA9INm)KOEPW}VsPUqv#!TqifJG74pjGou_O3vmz>TbHY3QC2ZOvS1JwYj)becU}sk3B6C zUc*w=2lCu8(oCCj*EA0XB5b`+$!eOAMrHn|sX$TP&J){JYp|ZOiut$3>R-@yfM&>g z2Mp2{q?Z2@q>E^$?07lfpFH91(*45vDuJj<-=6RNoHY?AY|h$2y-mTIr$DkM7X|fM zq7rNTOL&_BH^EFDr9~)1SSv$fr_iUh+Rg=VIKfP#?64yN!KXvhem>IVPhvE(>cW%nCfXNQ0Y;U*6D{hw4rpo=yS(gaXw*0?Cl)>^9 z=hrORECe%tvZ`QW^3FXHcB9gDU5o2sPZBJCm$F8`dib8khx{H1Czybn26OWSd~%e@ zPX_tag{!;F1>EpN;8dq(yZE1~TELmA7D#L9_L~k@RV|A`kByT4oK-Oh5nt5$m;t=w zT`WH(i)by6Kv)qhw8-=dJ0Stvj+DS1?dzwxzt`mVMAiFx!}1$j$?f&d*r&Qzm2QIt zgf?J(RD+vb6e&|{oyO8u$YO8E!gAIvg248s7}8U;)g^+jN8wpG8cki`Jv_A(sWk36 zXbav0xxz=Lsr_;J*Il95_}KmhIy!)4X{v2uIrA!*OoZd17r+~X!5dElHFV#@<2xw| zEd%0BE0WX;?@)FHZlElmy-YNKg5{TGIxpdI5jS`Qz^oAgLC_TrbYFxy$dF8QqW_2V zmn?A#mKm4rq<8?b*7uzYV98lLdMU1T_QB5!zsDQjkXaD3eRzXkS%WS{e#I^2{jDS- z)IzUPMlk4>f-O=`)jRsWq#CMM6s#)>JVh-mV{ZTT%Yy<5)XnfeeS#U}*SxELbqPkI zz!&hR1#W;5;J>;fK=glh^}oId&pvT_uH3x=xfIBsk}@7of4%RR~0AzAjkrz(~8e0 zAv%E&{T?=x_7vP)f7(|Mx6?n@!1wY9ti}1OePIGM|DX0hx(NJlO!_zG1pXJ+^f$;8 z0RN-6_jf4$=Y)WNJ4gTCGXekZ4fXfPzXATu`}uE@e*y0QKkeTnPJfp?!N2JLQ{?|e z{~sg&7yW;Z{2%)NAo<_)|4H&7{eP4^0q{4-yMm{(0{i=>2343qnN?6X5q%DJUM8F9 zCCCZ>OODHL8#VujZU3*WIN@LWk6`4#GxQII|7_&xSoRkJ0_q3_u$JKeGgXfQh)#M! zu~-Lx{G;i6p1uJAO;Q2pr#`^KpiYfNC&i>&zj9HAG%(?^He5FRX#5MU>nZ)o46%^! z(C7ZC9uz%b=zFly?>On1`7R>D-llkJ3M#p?UM21_9}ary+AyC&3SOwhY^5}Q6zx`* zZE|>UPtbB1i@=IwkGVU4sRSHraKpYRU8CeNU-Bb=0T*o8&prQ444m)XE_z5d-oU-L zx94-5Y_(fROqcX)&tZHrOFnb5i1&2X9uxE7EGb~Cmk4=s40ZP)f5^5x*lI4-Z-_qs-*hi)O zFu)T*b36_BKE6Er6}URiocvdX|J6SM{_K@_b2MtwoHHbNzJ8;bBC)yYp zFK9j-Ydt=b1`KB>2*@rFB<=ska8~g)DLDLTYcnwsfZf>80v!PWXlAy-?{E0L0$-}j zPB#Y!$L|9Td{iHq+c3@`?gZl{V(Fu`0`OMnp6WgzH%9W)+?=TqFzIeKNtg1u>L#E{M+_i#SXaEG}AlJX3nbYd4Y~VBE-D2|rQl=m>}(k%5_!BVFU1(vn%&qaK`ZL?c>Ig~ zBTLnLq(t$VnbIqJj?)!SEG#V6Ba^=TT8V^?HtM)qQLGJ$*t&1vDag(@@Z|RIZSEg0 z!ph=M{_8Q7muIuyU31Yie4p!73d=m33$nGtiZ7516jiRD2J9D$Fe}hE9L)g=)5CnE zM!wxbjpd^3>5~_IJXJ6@+%Wx*#pqM)9)uNKVi34QK5n~_a+xyZS%X8wzE96mOt zukec;*k!6WV@ zEj)VG@Bzp}vkdQy=^e0GVLB{%^Mr?%&Ol2`ZXHE07;xg%Gry2MxT3qg+rO^zBBwep zIP}Le2?+@*DL+xnkLb%;YGq5Q{`iMn9N#Rf`f}yT>2%ApwCa_W0p-sI&2+_s9dVrr z*_s?;AJdd%WC(qb8FZ39eE!F70~~h=l9Q9oEiBYD3?ec!=`~nYSRs&Vtz_-uc=F*= zi@D&dC84g4BXu8~F+bE`FqP*{d_CMg;h`ZR&Rk3w;^rSjL9Zo!4_we)$$6jhCvn0x zx?FcCDRb2e8`7R5fqR(&-buW30(`05yDN9UW^h(9Vf?YqMoRi6+p{XPTrgIE0_!Vr8?&tidY z3Qqa}m-qhdVpPf$SgKncjsap-li3+IHa6Do;+E)?g^~TCA}ucexvM89C*k8⋁* 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 UfRCf`cdk!C?&Z@`S>reV2d^uuX#fBK delta 27257 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 %YMSB`|sy)**R8e`{ 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 IQYHca0qMl61^@s6 diff --git a/docs/_images/fittrackee_screenshot-04.png b/docs/_images/fittrackee_screenshot-04.png index d1f61671a5912eddb02166f4c4bc312658d8ddc4..d1f6c113d39eae262968cc1a9bf8c320275be2b9 100644 GIT binary patch delta 19246 zcmZ5`bzD^67cGk57gSIIQBvtfx?4axhEC}Q>E+&*knmi2WbXJwF%x z{>(o_?6$L##)_%Q++RNPML7*V!-$RI#yM~sxZHISosUBbDR136xQu3R8ux`@Ff%oI ze>PC3SAR~=TCNV;SbO%xf|bsZw>Qs*d`a-hn?!hLiVfUvkNuis zl2PfOp4NJp^AuQqs*GY7{G;@rY^bEp^XUb@@t3%-z9#=PPkK{f?FI>9A7PiR&VPf$ zAySQPZAoJ{EA5==l}KVy5TsZ+t*(}7uE<;pB--1T+l+9PX1fpKM#F5Qs*4hpm>U}= zp|g6Bk;Z8Q!$Wpn99{^#s$tP!KZj3*#~X=!yc-yrPaC%>M`blVA(xjt_JwCe6kb_B z()n`|C#bSxr~+EmX$4UfK{lLnv?H6Y^QYt5h}48HlObv%7+Qz;hTDtVn94y~hjm~m z`3W1f{)RpC7<2D$I{nf2FWG1;JM{3Gc0UN6YSTQB*=Dop#A&0!;m=^RQDU>OeCv$2 z_lw7yWBFC%Fs87h^?BD8`%PDddum(P@bXv(48F)smZ{s1i`JSetkmP~OR_8MTLPzLP_dm7MG8_(5TeXomS8C>Ze~MR zthfmtZB?(aVjREsrA-D}Ut*S>zR;Yts5@lCIiLF@`#^rhMkj;0N`T0NLwW?mF~}&$|p=xi6)vzF&7VW*hZX8^snh9w;;JJ`XGN<+1O4UwKKx6f z>`3)EDMWk4j{N&~8cVH9876v$ zBx5uy_i#Kvvqqc6qZmuUzQb@I(Fa9Xtp1g67|-d6G;lNExNYZ(5l#|-y&3A6+J8;F zs73$B&>?0Hm2X>)-*KyjN{yC&F*OfdN1FLq}y?*a1bPS>S2eD>Ct@|=N>8c zDE2cq@JcvpKZc4kV)(6^nOEZ3Z}@N1x{)gfcl(=Sd6K$1PiNZiA(XGiAi$|DcRJmI z)uwrJj*U|ff=0RQk8&cguq2Ipm{z_bh8~qf-d|K;8+p{Eb(S73zCj?49Uep^A(QadH0KkFbyf{y4hzFW?PpTrJPE|%@NhN4&g^4D`;Y%b>_N;InGqqPhj~{pdO%B zaoWWG^5iZ^IGXXj#SdookOV73UXSl8C7~PJ_&|CZ$mTlOf1Ex2vr;m6^H4MNgu@9=t?Jn?8I-ehF=KSl=@L9Lur%NXbz;!Pcd`Q5)g zR4o7R#FA_de<2lj+@#b}u>|#XOk3#3dj7qGH1)V-cGBwhqaV)Hd>fXLxk*>(u z&_S|H#A}8;+OKb!0O6v-53L2K^-h%h18m$+!+*6mytVs}DD**r+JD)@ap}VsgW;u; zi=muQ(;6fy_*kXsJd{$ThVN=7JhY!CGd0@!$r4Q+fmPQkm{Z>3Xg zja+5q4008VvpNvyN)16L9>q*KhhpUs*OGln$B8Wm9js?&G8YJYM%12g%w@o8H=Dc(XYXcBIGvT&O>=t_}(#ahp5ubBY7)f?fx zubi$#POK;MJ0Z~sW%G3nCyRv5kyFEv{EgELd1c+$XQq?aIFSx?A!kGhJ-00z4=JxW z)ZffVuJ}y%-Um9FM6;@MRZS_9g7IB5Ue)Sx1OPu@D0`IC#2E13(j46rRG<3Upk?2k z{fqd){t(Q?vAQ*GUg49*i+Y>V_XjEisR}`sE_C?c)am&m9Y#KiUBAgK_h3`ubup*R z#jP!xe#&T8^s1s>*#lK``FN54mQ^uw8te7_TVKjDinD$|c>F&S{aNeDKs{(nV8tNU zp1;YkS+@xmUU#@Vm-#~{F&1gUKN`IPG3+3&p5J89G;&6vXBo;dXszqHsKu}d1rzTD)~7~g0lNFoavTFtff zA;>mtvYV5Lzh=-4SIlX=At@47@Ao6d`OM?4k zgbggj3f;UiVQ&^*8PsA+6n`aET@ffneD3_9(~#Jx2gqIjCznAy*T5`hcfj}RQ}0u* zaE;{?`X5b^s+ucOv`ul-ay|>IsgJeDUT4;Z`PQ;$k{wzZmA_=!z}jR({q~AmO1I3LnZH#evH3bgr~Cfq@lvmh6fOz=@NC)qXO0YP^k$YP zDQ4sg4<}&$VDimhPQpVHiOx4u*Ev-;H}y!!1hvxUpo9Ox7Op%F{+ zq(FCirO!s3Z37zLcM?vZJZxKeFjxGHrvCh_$&OU!H-=8}csV5migR>!S4;ReR1+s4a-z4}2^*u#o(CD^F5r0_b3#Zr(7o5Pf%9ve^;S{6 zxv&Z_flK8~i0c;XJ;=an!tHg`=I$?{rO8l@`^%BLHNc3xjl@1uE#rRW=(yV-^7!+Z z?(qAgM?b|_%&Rc+-;7)NC|ZM|-`}^|uUCh1dj8H0`x{&+vCljT;WZV%ipqU(7t+6y zG(aLw;jSPy8{m+CH@Z>STQb3ooB#X04drVVV1wcJ_s@C+EhM3-d=LYb3G4TJ<~|a^ zV)j`3&vlw-!XA|Js`h_-(=4(Z3XxPxDvr`N3!ceY_;A0b=wm$NPmQ#@F=EQT0>rWL!Nh zaRmIr_dgFSBg&x^0me_=DF(5Uft2|_X-j+F(d%W~1apujPsXReV75EZ_o{1Fo#t|iIr)UKnlPdOSE=g=Pf zEGR*UU$pJ@B>7LXm%iUaey}ajYX8z_$i&&SB#bzBKa+h}Oo|{~Cu}qsGjWeLBo2~% z{3@?zR$YcM?%o^gi<-BBW(#E&DrXFPHR(ki2M0{H8#r%=Us}%hgrvinG!iijp%!L+ z>VWa1wg_06cdXWHk&HS@D(rajUs&=o7ufDTB!B;lZ>@35rzV@sDSP^qKGuz$%jQd& zR?_C%M05MMJyk}E6I4?pLR==YIPiW|g2>m;>YdfXn#3LsHay(#b!Xk$m(x7@VDjgS zD6N)yn`RH*HXoxDT6 z^N1Y#&D{K!azC-q;%jckLhOU}ro|q3j9Isol$o^vb*@9e{P)`Qg-q*E+X%j|cfV6Q z21&C=OZ*Gm3&k9pGziXQhjrZRd4-si&rW1z9es_ZVGgfpZF*p7rP$x+!^F-nUM36! zF;BUyTS{?1EH0maPdkt3F=Ys7p4_POZx1nbzL@esHw)a%#QliWz<<%SqT%Zh5kypY zw~3-wrHigPI%gEH3Bvx>uya3B9*dg&<-{}WigBqGnFVsWMao@{S9%ZSzb$(8N1pjs zoR=0l-aWi8>2`3e_zlT~O-$9MT~{gr12U3rt&7000bdy~s{foN*7XNBh}iv_?@9HIx`@;LK8-WJzhe#7wK zuuJsnrxkBsfeaSby|AQ@gp`16LUahpI|}aU;15z-y&6#UQ2cxy+nMgoVqm=Jje@Hy zvC$)fTQ(g^qij#lk0cMesh`R-GRl%NA9ogw)AW;5T?!uM_V}akNyCPDp%xV59!tvf zf6N)$S-fC0l51FU&r&k1h7~lQccMJiU|QZ>xm#;!8&ri*%)NUFKB>T~5|s`qQJ5Wh zHae=Ok_p(jT0dF>H zhkRq|b*k&Og)X1S2nAYY>^Fob{GdsFEfpHfqR7-E_vKcY`GsZ!HTsyaH7Lpmzg6+W zrk*4YndKbeEpC^M!xkgJ*iocTu^Zr;9slf`1F7va#m@D-D;cBY-&ZY@hPR58>6dh{ z*-09C$u<6ut}BztV!z!Uz6{{Dgm@LdW`C3SaCK}qqfYXUeY}2qq^dQ3>fvjZdc{?& zhY^wuk_-FdXry!AQkU4sB?il>#;rI;A?N`X7BRP-mY#>6in6dpJ>Ij=_vy^v3UOPT z3ka}t@mL74^K!klVmCME=4ZDO;J4=H=i(Ev77|RVCMtgZ@Iv? z7B{yrFZdR!-y(PZ@4?!VyJ(Uw9nV7&7OpClT8sJwI-DB7j^+h%F9%EX>vN|u@pk74 z&pgzEP0Y%S_H3K^(Vv2+elf4bKIMlJzdv$HRN&r15B!jPEh*jp`{**=LC@@FxIdJ9ril$8mt3%S__=e**v{^iKeDlBY({g6OQN9Tpq z)~goloFSX{fP(`Rmw;kdpHo7@R6|3Z(liAR}kayqU-MCo8J|WjU-=inp7%r zw7%Y2~sR}0bS=uYc-#-ALhFG?#`!SNA%X3B^8~WChguwsZ)E?U>m-Gi@!vvB&4Ks*0?K5oG>j&sVaRD@88Tu zn=vZbHL~5_)>hr!9R#aUd3VS|$ONu&{ngoC;o_pf;c_d4BTY#ujYHeso&}a9T-Ma2 z0|j)dCbNayiC@0l6`}&~IJsIs!f~ld1#^uq4IcY#6S?51V_=Y(%5KP@U;y)LOiWBv zoqsgAv}CBDpkUDEQ4UUabWBX66+D$69o)BPTrYh6%DmA4)k~ySR#~ac&dz>ywO_;M zye!Ca#b#PRy6GD>)n$ErO-Op*PwPG@@b%^Qsr!)RdY8dm6kLkBFg6 zx5k8#&E@a!ZWdP7Db|_}8t6<#ax(GQlPg!Zs;Vj$4vtyy?4^+4Kn8WI7hs7oPVp5$r}~Tzni&rcvuxd9i(^E zd0o94aH>L2PrsMzkIXL+Df{+K5`0>}vkCbnHsEjfLq6N_Z;&=?AqoO38=L*}B^Pi) z|JwXIY+kEwUiDLo7r!bqH+MAW^*=vIN)@shr3eHYT^+grtP&CuvD6YKJ>gFZ>&AZY z?Q4n4{QUWo*At;7hMI<)pincB&uBd^x6&XJHpiKs{G+Vdt9&tQK+Dr~Bl-A+ZeNST zwkk5Q;QTjO|9jbBFTgLu^4IF`g>l~la*~rem6d`pE&Q-6hLq3zj-FvG%U7Sl4=vn( zmwO}E(Tg82tO$3jy^+;tcN8p?`gRQl%;Debty>_a2yUla^IM zQ5r~yzkUah@tVlcZj4=Y>KSIe_3{#rTQ_eZwr^N%3rA?lThXyD612gKH ze#7ocz-cG~e;Lg;Y+7qTZj!n0>pbu<&wj0d{xG!_HR3yT%a9W@<~wd;PvH2`^q~Qe z+2FsIG<1!$I$Zl((h-QQYG-P!+8(6$cg?<<(+PbUUdMK*2;6j3?(`!>!6T#d?JLM) z=LdNEV&g6s=KF8mA%hFUE$fcTeniJcs_FMFv6RExl9f7^b9TsRCaLWWIFCPYK2fCz z7Di{03By!uq(ce=Q(CoaY%0%1fmLIjih=63rkWWqF=B_>>_*``%ToqV!uYR!5|Vc&dHJ5LLVmUf4`gw1$|vo$wF^;| zRHt1)Y`$!2Q+ej9D9N+&ENZbUC{hS3sd$FjJ5`>X6;%!!mk(uYyEX7LGgXwDYt|&+ zb(^Fy{&5r1PUJI<>e;5igerQo3)-M&7xjt@DDx=WsR!E6FZC^>VDC-DZ%fbo*k={P zys7iQhnl%HOhZNeGfw7!JEih8jLGWuH`SCQmpzuWDb&Nh*>RwkPC-*q>r7uFm;B_^ zW4}*^USZY5B-3l+Ltv{DT<8(Ym{pd@VrL(mI5&|k59^Mntt+8ij3i^RUS{8mnkPDD z2m})Ws^oF>!5c&4gyGN6@S{Dbdt_vO5|(o=ym63i@>2^iGU>c$?^KcKBKhum?x{KJBDl z=~XPj0gez{;OAL!^Luv{KMtwV^Up{9-?_@A;FStwOQ>jW&YnDJiv6r5#sOomu$zG8QVThxIIPPIhVNicylJDOsMQb@c&UwlF5-oIdUSdM z5ED@pRGT5GJYU>lS-p6%TM>l4xRU0-cHQhuEo@}!xKdfsFNcbaouS>}fapnnqhp2^ z>ABBUY6WSh(1Zl@I!qVm{@@aGC_PV2D=%x36N$!0&Fwo+*K~PA2ufU^$tX;Am8=zO zFpHtav{|)`bfJPuyYU4hlxi{>QRnP{Ny#dNF>k`{QP)~g;)o&N=I4b0(K&l3t^O&_ zvZE&ulB8Kv5%CMH&l=AZGdwcr>_$v;H4u%ucBWU{d~-9*Z@D$GOV)~h*rG4T)io=` zPP;TzZtwZ}`m?@e(S(&67mg$GjIvb=Ve^RPp7W}d>*VVdcw!Ni1;7j_>1qSpmBQA6 zr7I^1xV{FPFCOPp2PF+9>NBeQIy{jskfm6>86SdNk*#eL+5N-K0p7{-mX5Y zbZDL_x4j+!ag;K+R2f+`5v>5zOjMX1awKu~RVz=ESl5?0YEQF@qOOeW)u>qQQf+FZ z5u#+bXIi39gXc#UDUl@k6$AD$O=TZWMHMDT?{3lpFfu8AmqZopixorJB=&YpNlF~D zba9$#oe(+&_F4Qx<68g$9M&f;%hY4{5NYdXGaClhc65wHlYb16ZaX_t$Fv!#qSId7 zjeEf*5)1n(V63+l7Y$jKQRHO^%)XXki-H0zbt>JV{#B9rwTkuvkQ-LFgs>!t)@<(f z9-`R1?TG{9CA~=Tj|fmZ{ge4sA#0yu={bo z8DffF2YP;Z46rSEyf#hqP)i)NoFrXpvJEteqssAUH0khdtELvz>s(!>T)bPcq93ZM zn1(iwjCVPADftg6HhOrc(lK{cXsWTB6b)jg&JbrJC@8#UIu-kR#wR=KvllT*h3WFT zg1Gf#>hh6?=liuaUA7SU+}AyO(}~6syXEB0v*g~ZK$Ug7F=v$#lEC1g>S`_Q5pS7c zut}R$oAXPL+FXNbnV-Tx^Qsj9tXUb-${PwKC4l@W{+MwI7;i7_u=L}huRwN*T>tP<$!b%h6 zx<0qQmlsfOo0RM-6}LsFLuU&pyXFE?7Casr@mV19qGA_yO{QSi(I#!VdkRTu*17Gj z#sAO2KbCd)<~>KL40GD8^a}1;KH}yvi2v%nzy4)IhJ~NLBN1YI@ro2)HACnkXluS! z>O3z!K^841HGs-JlTdtht)!4x14Oo+waSV0V+^8tkPz)vg9ZCX@rFTr)i{VrG#RS( zkAf^+td7R^0OcYl=uq*SJ4?ZM^Uz-}SMPX~lbB*fJ~f2rd$W6DS-_DweJtRk4y*Ce z6c2ilaws0)vQjV{KVx2{{wMO`jKx9CCMgB9U-gUu2SnaS#D6TVv!X(_!C+L%9UwAK zI+H{^RY2mgd(CNkwGC%SpIC(Z8yXs%)vJk*|JtOwf_n<=w#DEwvv)$>SccT}bSz@p zo3*~?wXWjGpBYSZ1q_j}JQEi}3TE zaci7kTFr7&T$H@Lz8G2?&=nvcD;RlrvgOg*ATFSL+bQ1W5A@o4K6x|;_DGhQUfHKF z;nSoN6+Qbq6d8?AkeW7F^jFebZTP7K5cUw)&(D=XR*t!*;zWL8JC5d2qt$jOmpI$BVH3&Cl z6B7hClL~;6rAHomTMurzm7^ORNM2GFg9P{z7w2QF@W{EQX`S)4K*vAcQ8z;}_&lrR zS8{Cy^Ze@w*j@`-qmp_4+tnmx;<6YU+>6uxE@W}3GJQ2kyJ_E0$e^;~mq|ssxRd{J z)1v*1dTMb?L)I4QbLj6~@o0pQ0^jwVXN&j^AoGVfVYf3yQc|yASW4sHD4ScfE^Cq* zbe9)lzXmAS6!5?7u2Y3mJ}vnXX_G=WwhF5RH5jnr*Sa}*nD$uL zO{-ycXPb$=bKmu7>gDf!0w$nxWF$9#OrC72FbxzqiVIs-(T$-jHFeS@=* z4M?k3yZ(X{wHMdWj&6(vtgK0gl+okpqflcLgMM6_ggMAFZv}lTyi!tk7p(TK_W!t` zBA}%dr=9fWF?|I(5i%ejA(@+D;iA!$CwO`EjHJrAm_B!4)r1nbUXt_q@U4QJob!U; z`~A&$cg4`4w#w)__x+zeB+sc!Z<|+rT4GB$lj83Nk92(}zAOA57pKbP zv}XP7A3cXGuN$(4$V8|{{V$uG+QqkD3#q-mS<%rgs#{qrE8qS^0s2HC%EY}3F*q!c zuvy8){VN@M{Cpz{;oJJN&4kTAM!PXAE2Vy0sMzT0(WN1jlRTb=i_BDfwUJR3S9-t9VCBsZ~32@ zAkS4(8aV{y$2d(Z)1RV;7q*_DqVZ~XPgVmxeUCbw7-kfrzRV`B==%j8vgjKcXc?H6 z)?Eo>!1Ntm?0Z!^h_lDX?_e0gsB2bMo2?IYIDgH{3#Tu()jl^V?(emg4AA}OL-yPT z_uO*27rFP;T}RGm2_ilxT6zm^I@tplabt7T4)dJDY`Y7ztf^!rV>rveVDoUx^R1xR zxmYV*qdOFyWUANEvE?DeInVFSd-wMvDpwe2RY`w2$%jmaKZ^XK{?RdQwDCDL^`$-= zi(a!-e$a<|N%pwOxfoh;_zk+{5=0mx-ya6x3{5fgeJ^iMOv@ zoO9NXuzupwbuXQG$))0C?oLUJ@unn)#E4PfI#DU7!#P8FfLS*YUVMXcCz*9BYXbE38Fa2^quq6t#mm-i!u-fw@i1y>}=%iN-pObkef+?Kyhf}Vl;PF;J)hUu+n zxx35h?`x2x(Gl(Z2b$*tacAsCr4X;ji8|Kz+B&^>7vt4(?j}+aMC(=z>Ka;&T8=oW zn-=$TI%KJWk7(Eh<}en0Api&_x@M~<9UOG`?n>GsFfgA}56o?a18VuCZ_z}{XF48| zBv*1azGEl=pIux;?yDWF$gl0}*!pYahcmW@sB$JLJd=`I41A~7!$Z%_q<1O*IHS6r zFXtoXwS)v8uK+dL7oavpe;nBeg@{DQBtLz@;ljz;r~fkSwy-KYeJ}p?uD;B;@asTJ1{q7Q>KYh19a!j)SoDa84J5 zPuB6n4Ju=e3PFZT!D-}ZSE>2lF*BIPzoM~RkzHj5|Gz^&#qO@1fOtf4?>c&r;-&Af zd*^2jH(`TmbFlz8@W?PQ%Ep+}#Z>5UM3~#BK|sLcrccEwWHhyeWg%;yWW`}}eKp}c zRrNti>F$GWYe`#OPx63LL^O}KZpUGAG#W*iGUW_`R`u5pPuOo^Q-Zb-lm|n#4#*5^ zRyKkS@igU_069SagLWKheOzb{t(E#n(_Sw4r z))nqCHari?a~(I!WYB^vU;y{WJlT(DzKhGJ)mn3$0s?PqXLq)kKsO26!XEw^lUNi( z^n7N1vf${{osW%cuzuyj1ctipKLUr*1qGJDMGwJ34uP+)@8AF&^s`D@I;L}bXc2&y zO95JkW}>ypi?(+-yIP!KG?EbK)e38j2uUOqa8d{5)0S2;YyEdg!1$)hug~N7OfIE} zvM-FK96HmsOcB^}?7#AM*IZ#Ta+A1G@W5}Qoe$h(nK=<_ZvdY#=_>akH|B)|0BS2H zkgjUSBB{^7`%(NazUB4O@-aYx&$1EzI5EB}k1SfT!4*lq!&~_nT#93Zy0&Q2JB^se z({%-{Ba=GqIVSHxd_HX*W|vDA@WVA$IQHDFV>K`${DbaxwbuDisdn9|Qp%w|ox@h= z)Z*H=GLu6N&^+27l}$;kf(o{;p7ZH!mC^V|{Ulo9(Z0qRc+ZgrAmGbH-rC!h>d-13 z#D_5(a4}||Tl4Acl-IK8ig!wZ9#Grqcs2w*cO!Sc-A05Pm1E^nt?OWs;@B9*vU=QV zKsH32`t~4nDIJW>#YcQBtG5{k>`!unRJy)$a6gnQvm8jXcV^NK+#{@DU;Y^(1Ont^ z+}ks98*La&7HF=#I!kU|(=aL7t~r) zNUp9v=j}p=tNg?)8gorM^<0*@Ahbyk(fsX%g5Y4(8A`xm6}^A<^Q73`Ykr2lw?HJK z4OsTiP$paA(blK$i++rM?&v)*zHV>pJjD7Y#{_~Gb-SsO!s_@ASiJ(&nQX?tokp$9cJ#&-ziXLk9VeLkT)^4kYM zOw{YA!cm`)uVm)x(s$Lng@p3F*u1j8KVE~dbJ+f?L28*Ll6ykEEau%F|Ed^iA!j!Q zbt%g)dv~pC!?YC*A6>XsddX*Gwd8I84=;;3&0h9PpML%Kqy=MrXxO0D3fEz=mXy$M z>vR8ynCDAC=1Hf>`E3Co4!ITt_`aUqndTgFq`ux1pA3e@jE)ifeJ>Cq^6fQN;Jm?sO~1ofGEKox^76pJN>b@hI} zm8FY!jYzTi1CKKOI#i$bkLvqog%E?zyeNUtdv`VAnL=7cwIHN#36OyN{Ms&ZImF;e z?N@`(BcVBpu-PJAmIcL!`0%}dWUP17EoUO@aQ(4CyE9ZS{-uZ1;puLeOZobPB+dp# zj@NpR7*{8d?)9sIhVjOpv6=-1Vp1ECn^Y`SHB;B*v-=|=HWdw>s>TH8FSAj|rGK)Z zOewOj{x*BUA_ahGRPUs5PQ(bP9i936S=+UN?L9F+x_3Inp=4EU*Es^HZZWj4Ukp`w zQMC>saMQV(!KEa1C<-)WoUTreF&b4%tvnxH6hC6(m{wv<+n-rNcD!CP@;|Q`9nY=l zNP|J@#!0y4_oEtO4oXp2Zx%1ZT$I}H6^$0r`xe6*cC;)B3Jb@*vUShL=736dZ7 z8Dvy}l$){R&Qc!Lb*?XdGs+{Ik@pL}BwvfEDdh%NP*5mG@4?o<7m%nH=2H6=|G6J5 zLV^XVqo1yM)EU_Yg#1CAgOq|)WVoHM?~=5Hs&P|Wk!B;{V&Ro=cgRA~?}08i<;5D% z2s!GrcKPSYoaXaNqhQzB^}@>y5~h8PjVzVr6YXm?5NV%x?Qe?d`V6FJBsfgKeZL$5 zrw`q6hndR~hrv$n@=#6|ol$di;3EhFB~nN~CCOhZx3KZ@8r%`CC_#{s1fXG#GkkR( z`$K#P;w2>qND3J%n)!7Dv}5ER5b)p4e+_!@8Lgz6*%Euc+(+S$@KC4x-$PyP1%(dMyamdfV~wGsF2FE12?ORVqe#{xhkEE#@-AaAthD($t8* z98!akajnhOPp!U|i%;phTYm7=s}w@*cxBQ`vUS4kTW;g=B}i7aoKS zjQkYg78Q&tXqn9wdsI(fN<*wn9qbS5&a_Z|%lC^G^}jDzzYpH{3w6ECAV``h zJV^THqzY{Lve7IT{7J-Tx&ME!c+ARCuKuniELt%BsaEd5^R_+~#+pyx|A{TI{bLsJ zS5=eG;AzcQJI|6p*`x7frv}%dkbpS3tfDRMe`yzxR$$ZoWLMmM0sZ|=l4V0wS{?6y z?XiA*e2n>Dt_Wm-g29Sd^*6^j_v-&1Kl}gxCH*~KVy3PD)1$h~mlYXrbjZatt z-bd;1rdz9#*1zfc_oC%GBTsVu8V&@M-N*XTst$n^&aL@uq;EZY_AJwLOw0gg9n0^s zS_!S`G$@DpQP!{i>5FM(=Q(ZJ0xyeIR8hzbjTjs0fSA`4;A3iUfW)I_K*;NNTm}y zn{UtLEy=6yI{8CzG)CeLh(mSSdrs#M_N&mQ9i|EEQjAqeI_<_au=C97wiCtTqN4Fn zV~GOd233hC2AJCfhw?8WUI)z6M|Zcat3lSOKV?G7o?`v*jsNx>>!T`2znI^?9X}P^ z{e8EOKuj+#R)mM+DomaqE;ZVnS{w8D))f>MZXF%f{QmtxLDStGs5dY)1iy1qQ={cG z;+xU&C2^fM2-d#d-rZ=0BrPy$ExWfD9T}-US8cpxd{>7@ltLLz-d$BTt8qk%x7vy(=geN~GtzPuYx=$GX6`b~z867cH zd)5rhp{VW@7&;qjhc~je>#0e2!I_W7$kkS8)28T4;l-qD1_cSEXj_3INA#oS=4MR@ zgoKQ2=(B7@O7a|{Rp7OA_26ckldFd8#z zQc|B02!zMLVKW>|eVdt?4ULRwTU&3th75u8Cj0K4N6XEjh!+zFM_hm8X==~_*74WuR@ymA6n$Rmu(f41`3T77kT^Z=8j=ft$jZR|jw|5}KH-yTnRpoVXCeZE z1U_dz-C0Ez)(E^$bj}P=h-l`^P;LwO^NxT`xVWOfBB%Y4ngeEjR~_RvN}|Pp^*dM! zT$O^HmB#Hl`?EE3n}bOyFz=eW`g(eWqv0$@Q&UsSL8*iovWbL*#P53TZgzK~u+e{x zLwjy|xBDU0_@otFOG}T*!J_c~{rkKhf!~s`FU5@#r{|}O=wnD(1vu3}6B)OA&8P^h z&X+82Z(GC8ulC)9bK1Pm9WSr0>}L=&i_I>1nVFf>jSjkCqFf>WMGT!CJe7U1%@bk>u>B zRg6L6vJ=nVR8%^T^VAeOoW=!QUS8TSl7#S`f)#}sMO6|M<9Vi6@#2>|A-Qfrw-VHd zI*mYH&&k*9da30r*NR%|npI8!c-7L_sE%WU>|KCOYicD%il7}L_T1v^V550xZqD#g zsuf~|vlC*~sLi}mc$Sor1_kT`+OM-(p^|q#4&^8KEX3A$)7g6#o_+JTi?!|QoSiVO z)@wKk$+LooHecrE%_2fBw$=_Ov#4t{T=lC8XoHuM?Ysq1h<4Tn9{{D=*dWZ?0(fH( zx2#K)h>V1Ud_*SMzm;mUFf}GxsE=MQjEww`{bHNEZ=la^Y!$}B$(gp`INJ;7fW%XY z(Y5-sSzB7#8d{ft#Th&Ck0SJ{big7LR^Tq^^5UWlxVt5jaL!g{NcxBK0vg&ziyd&x zhJR?VZ3g1_oyK%+-+u~!qC8vog-uO;&rKml_h=g9{YAp;y>A0m)I?&@5ZOKm{eiq& z>3g@<7-WJ2!5qBn#o)RJV&Y+SD%}=|7NR~Z>ufR)`E_u*)$0ne+}dV+Vo6U&_ulPp z;=^8@RYhf`)`t(@`r}>|24SxLIcTLcc8ISp&?+4q!soX6{>jU?l8I+Eb0$+4t{V;f zv@#$@@E<*zYMe7F{QD8@Z_pJ4<9A$UDxCrwGpV$m8-#_1X8%n$`n3~e9HPS6(Wmq&735BU>(z4rV@wqtyA@t zMGaayP;D?omxGl{-EZDFHQ^E99Y2n883SIhjXTu9N=R6BemOT&d&9s$f|zTru}QyJ z0J*@~!~pgF6fh<}W$4mX1@lMerp%RBHzH!=b@mA*ath{d{hFQI{33r!FFWm&w?3M& z_ufsB7#lyLZk0PtbDSZK;rDJiaM5v`JKGQ64@pDnHqU?vG4bEyv z%_awOOAW|>gZ&(}4MFeDGRvS!NjqmdZ@3jSM{nIQm&G`3>lHDm(fWGS=|a+C^7UYF z>|&~?B!C%F@k8BNmv!4ukyBR*ZTT5D`ZfMTy*yQrUI^}!$$~SFF?Yjer>Ul4Wn<4R zASF}GVU`Q6X53<%FdP)r=FtCGr5!13Wo5sI+q}721Z2_SG`cu4%)~n)LHNoW5pes!rXc!u1!OGxAE%sa~UXfW$D4>o*3) zGsH{W+~#JstH;KUT;=U_PL>>AmKt>dV3pL>3AAQf?2Qz9IJ>+YQo_W*AouU=A2{c~ z5~-0~KBYpr*nc-ZGc%*$c9*}=?z!&)9}(D3h@jT_sQz`f(v^CrzhAD(q+SkE4b$-+ zNzZ>nYI@KbmwS+&ee8Z$7=N~Bleah0yejOl(@7_Gy-1UiJcDRube;kn0GMH*UvHz> zoa#qa%A){eBxoz`Ier8NST0=?<<&nGzf*mr>o^AzgF^4ztSUZowEg}lhEiCdzAh%k z|C{t_ZoBRg%qOqzoWxmn>c+uRgS2Gsj4%pL*k z7M)R1(TK>}T8eK6ZYRX`zfVvG-@0X*+~h53gR|Myc~Z6G8_`qlYZ_2$L)EVBdV?Cl z!g}`MUkbt$c1t81inBiwuXEb>0PExEc;P?drLC>Kw`Y@kEK0@inBGrCF&X$Pa=k}e zQ?uaUz|mOT)jWc+5s#2?PK?K92oA@1w_I-zAB#3S11rK+`t3Sku*S#7pIn9cZ|&@q zF4S9tEKZ#uqR{D^Wxd_h_6YuyCo}Xi;brCJ3hiEpnrR%y9{cRb>*c`n%N^m5zds## zwe!0y&~S2cu7F9E6Eu46>ZohZdo8dOtl+Z^;KZg&CFT;_(!<$e7eDgCN&;M|^vy`RbWdRI37BD3W7 zVq~+lb=T;W-b-e2&pFORLEkRsGxxwZLwT~>L{Vwha&T=-7ri2`%8-=&lsaE!>9p~~ zf*0m2H|mNdFouJ25zcd|l*Xi#~7?F8M+bMctDg384$@6LF8u1!{L^b zf2EkYul@G>2W2*G&J*$$)MZu2DKJTz z(4+?0=9;{73nh|A&vZ!`!_!EyehA6@BgCa~xyl1$j^Y+p@^W&1(u#v(Z`7=X+Cpkl|=r@KCP&@wSC zEzREEUbLqzKB!AxgqLe{G)H8mXU6+z))P|NhVB^{sIQ3t>vhM9q~t}2P2S1M4lWJI zv+7g|GL%);)Xbfbuv+qGq5eqRzEP-KI=u2)mu6Q~o0B0FpU+qD5$+jV>l(4RE2PR} zb_KZ1G6NQ5+t70^4wLCYnXZ`keed+Ov~*|zaEqvqBDbSRSMy7>qJ!`){az&hx<{*) zrba21!a(@8Y%$-^u<*CB&J~Y~7HUV*!>X)Fu|-PFCVi8t&CoLbo+wCCyX_8@_q-v< zbd@F(7gy9kSp~{SvGZxtT$65)=nn!bg=&}!N>>xy2Q57@v$Hy_MjSKK(`8`Y@S(FV z1VRfI+NRxIs*Q1j2VjY@Kb60Kj*sM6+lUZ;{eueKx@*4v*xjmPhn01+Z(aUfWMqcK zRAfbw-z7a`9_eb>#r~s2&RxzerP=<}frcDu*Lp_cC3#etTtZIEth_AcR7^W)Ft8BU4|%ym zNNrkLuVTne?do_R`@ZNsD_h$#j<#JI%yo|Ubd8JYKe6#5rdVcRvoiPk-aVTwPmupv zouke}lLvAg1|&)WRS$9R>3qCgWro4A1L$wbF4|FQ>c)n7kpO3^%vh5|X_@<4IvU=~ zb5+fYyl7a;;&*o4MwE)Zlc&c;PY^e#l`MW0u+DoHn5{D0+Ss5io${SL3=9n1@(^xx z>%(91+po%12z*XNgCDMguu;@f~c#AyBgRvq5Vnc2G(uR`~QA@qGQ6t`%h1niMYteK0i3+iBnk4 zi@7!wgXhY@N>kI^h_Uxvb#psvphB#DWp-3sw!BRDk%*!0mTn_N>GBQ!KJbn?^4`z* z*9jjkp1r@nK;51EU$^AaqdEUBpG^UiD&!M zGmDR@N_{#G@l0a#c6d(n{=4^~U;p?Mgak|Rm;I#>i@j!Y@xm*rydpnw&n;pX_4F&@g3I$Xu6_iRP?W5}eB zM2sPm+35z{V04{y^70ZeKgb_fo4O`F7aAf*qekaeI~5B8(RjTZqodBr@=&E5O`2|u zO=yrttA|QqZ*TDY0CecS>J56kjv`?1F&GjoMdS5ux7r}Squ1`x(2(1of3rv=!n}F& z96gNhj2)>|3X9c>-rn9>9mgS)8I`roc>RUV*uQfd_V3(=1G|0(wL*sfR5ZX#5U_eh z6pnp-0T%1%wA)fCqzF^V-A+;h_8F3s;v$fH>@zI8ccIIgmSZ*>nlw5rRLyRpn1H}Q z=(@Wn{b?eT$#A2m$7LeZf31B83BksV8xa^7i0c~7*FGk*kuo0pPv+!&Yq1|36o5gK z8Mpes`i>YJGP@O1)5WtyBF4~=``3nPZ?t9@n^S!cj@@xCTxsgWqYo!RrI11p0Mm#W z;_-y-RO?S_k3xnoCtR=EI&Wfh%m!7kls`O(h-gk=qLPS+<|O~|e;RBbpFD}Z`}Voj z3)1O^f4t^fMMVWpo;u~Ip*K1<27iBlgolU2VzD4EFAoO}9>o6KT&LuKmmoOmIeu1N z4nIFXL`6lxXfz`4z4vh9#0li)<~nB2PFS`K0Py~?V>of*1o96bMnPer%l3)IV#LJ6 zK-1EKxY$_7^02Tlf5>DqoGL0pUtb>@8X9o5p#h2G+poEJ(NUAmY&Juu)4^yoqN%9~ zXV0B;>b*2^-S4Vyy%8m6FQZ*&Ky7^+bUnAAQpm6%$RDc`7vZh_rO;^g_@bd5M?b7Y zW_khuAUt$F#%wlJ)m;Z*pIAfRJAlz?&a;fwvB)bdM|sUPf3$ZQ@b6Fl3yXCW8`j3- zY*i!vRdf*@Is-0UZpFznUrf1;)Rj>fG>u^QzEZSk^|;*FfvUReSiNEi%oZ#59QqU; zIs;12)uX)T8Zy)EN$ixQ#W?f%RW!HuU~J5WBgZS@B?yilnwjYd$Sbh7t+TripL})& zwd0d{+)1fWf1tgi0|NsCuv)G7x@ zL{V`uIy*bj+uMt(>S_$R`G>>#3r$cdWO(5Idk`KPD$oBi1F z$}v=2YDRNw4?eA!`NS}Wz9F=A^g2B(mQiG;C!pd|e={Cg>pbkcyyhBOw0g9(-^A{{ zB@hGwYg1xe#`o~>FnaX*DSJ6bEm;Dy*^JV%GU#vKL}zCwG#U+}mMnqQYPB!d>(Sla zjf%=jxAwDN9cb5%s>e1s}xc(1S=7RxBwy9_v6`K2Q! z?iN$7f8yD3ZK!Q_``R#_nZ)Luqyh6_8n)naV+a1%(2g;i4Iv5{&Q~|VG;G1S>PDQe zZgTVvoofB5+HZndu3R$uVAfCJVdXEygcj z%7>4SH`b@cVbeN$T|U2g5_l`{O})t_Sj`{(iJcTQo*G=eZy5T1Tw4MZX@w-ZYF$19M3yuxYO zzBiu4>XlIl4-G=f@+D5sojmgef9kHZ!CNfC^7u&X{=*iRLywh8C4z&4apcGmq^71~ zd6IJ-OJ84K{AlxLl$Mp@(4j*J3=Bj{ax%QVy|Lx-$5B*Vj6?bP2=MnubWF^oI+ar~ znM|mwtFtGb#bU(A$0K6=`t)^<$y_A}z-upL_uKZCs zIvr`s{i23E!gg+)yJP3UdZpeAq2tiKmSY=x3?~ex5;$JeS8Y@D&-nnZ-`lgJP zD&bS6ACl7yU5cls4PA?Rcs|+e6(bk@_bsc}Kd%2oeZjXJ6t*tOKylR#3trMi9~;=O z>FAm`V+Hu3Y-a`X<$}AS-ZS6FRmJvew_RHH-4)=k_P!^piD2s|MttRW$)_3PJH8tF z%5ejxiM5}xR06Q+i|m(AvaO<@;(w99LtaIFheFhFF!14nkQW}*ZF`%MNQ3_?OohA9f_XQh>n)wxE49qZ^XTu}#dM(CNJl2!iYkQ|X-ir=PDjRutPeyWQK&D~8{d>L z<*Vl<*F4Tk7rWOFA*2WR#1zw{+=iOEIBEe*pK0lMNTc=o$+^BVnGDdX`wOD z4tHyXSu5mq)T5(1Ud~;)Ly>RX~*FrF|T-jeS-fK~-yRAx&_jsu@`%ZhGrL3+@O6{id z)$GTlk4OWkhPOeb+CX$uepKE4^-Un^(VVMROTeDVCu7372V7kb8~BgE{jM30YsU)@ zUXgm2A)fvO6FKww!T5?(KAFa|ubXAo*HIJc#h4xyp<97pr#X88Upp4i*U0}$t2l#b z_pTylJK|Y{`tjdy{klWyLg=nAt9rre@BzuQYVQH`$4b5DT~v7prxkntr+qIQaKA72 z`iIw0O3SSoB>+Vw!a) z^_AG+WxuYw>w-VYKdQ=^p3W90zZ`gSNcfe%WWitFfEQ5Q{Fu6@jQ#z(7p|?uHAtJPo*ovahgs1GzT*3Xiq#)pym@d;X zj@p4ctGEHodO+*&V^qgjCgW2E;iC`sbzwD!6knaU|H`$>zMhR0SU63CCBa1sGPB1d zO~E2DBBKNlZ32wdQ{=rudeL_QyGiUB)3TC!>v$0ncdDf4gM&8=Sf1DB_(^RJ-X^-B=*D{Ovl{fU%#$z9vw&}sEe z^QUwL>SHfcIQSk(=WjXP`8f**urK`|qfbTmX62(|CG?Ok{pEvun8Tu6psPN5j%Wv= zYw^?O@RveUgO3V{8$&tDed2vjKzW~8)!y|TIwF3ls6Ym>^FCLfFtfE=PT@F`WB^Pe ztwQWE#W;`=_r=|FH~H@NeQ_Dh%quSpt8HCK^X`x%f_yx!ZH(`d?rWj4%%`UJe4*|X z9y5$SSKno%L^#%|`<}&T0_uOFf7flzJ)P`&!_M|!y1=V-rQ-dOdcub$9KD66F&$q6 z?vnnlf6bg4P_Jr5c(*+5ji56OOmF`mUJ;iKuWG_fR#av5S!i1#+b5Za&9cUbPhVYx z#XRWi`TP7S%MZj4nQ{Ia`L=2%Ti)U;5O15(zSW`mHIfcb?uQgFWh(Gxag-o7AyG#t zd9TxOYIj08F02OGMYrxmsNg1;t@O%!bh_@v@pA_0z*iw*cfW^iojv)3r|$9gr|Ocm zNvtb-2(5nAk4Gru`Q(>V(M*-S_LjYzN!CV;J`XCj5-$jsVs;o3@WLiod1^RRNUlfs z_?Z~CBV|{iy)R}73gn`IX8%UrZ`=bZkXVl$H%Z=eOwALJIfBv#bjjQUDvZij|Z^v78iG8x* zbf@5gP`8c}-~UFB-_7MKP?S957*x+LprSsb;&3-dTGo}5Lmt}51DpntRP}248Z5uL zT{U^VoQCc_XJ?`9e4KqjYi=aRTELJ`Uh)b~ZfcVi9;rwm_t4o~W3aGn%(OdIM%J3{ zQ#Lc>LfnH__xRMrgBp2^B}hdk4rN?YUE<<7lXr^fj|7B7zZlch$o!?5VWFqsQ+)o@ zDfYeCYZ>#-SC=kR@C#+y2f*=w860U)2d)kOCc_9o`tfw68ADldtgy zHKo?Zdo@;2d=7q*K4LHTbnI!V-#Jmz z#LvFgYrMyRG}n^vQ=pWvqI?u{0=|; zp%ZrB`w`+W|J|Q$`nQ;kP`CIPbyNqTA$QwE;=?B5=t)kRJ>|0`qP>j!uEG~@^TtJW z`lmifjZtoN*eyu-8UN{Q=C8NxDvi1ki;w4fUu6AA=4awhK=hqrUwbH_iEjoXllWpufMq)r=FU5(F6n^kqN;@f7KGLytM>KSaM14x3NnXhrQ+@7MeQQh#Qo#fqmXJ5$`ePu8A1i3<@l#p{fbE}>`m zu4$|CVjjuj1VrmTnkpWZ*pY8ndPz`Y6}G$iX4Cx@`A5h5z{faKLh-_$1wDj18U0qA zp4->|y4|>IbQR0AlUH9SjZTg}I`wCl7b`Jx9P`zAQ17Jg@h&vMZhBYSZeB#8KwO_S z$B5lbh{B)f=&$YSQ&`A&7~SyeDlmn%*_RwbjeC?usziXZAZ>I>diY&ZUSR>BVhXg^ zrXM1s!aMt})}4jE_8I&4dxTL&FOe^}ru1f>Qhkh=w}?om=?wXTA7-%Ne{6g-6|Q1! z!a`Em*r;~WfX7i*0?11o<^Di|{37(dC>Z|4OrC1-FTro4a`+m^S z-u!YmHGX$A@AsyZ-*p5fVL=t+NorPIFhOs;NH@`m6>1En4*dckfi|>WJ zQ}N}My0erg3tC+05?wZP`wmZG7z@8Cah)NdgK231o4I$e)5S~&J~Qd*>i5sw)CS`0xzOq=qd{S0juKM_lnrcFRtX=EN5?l3hDShqCVcfgZkJ4|w z=k+#f6dxJ$8IMp9JG`_he_}sV6YT43Aw~M+&Ckf3U~ta#ySqmoW?qIOpWZzS%d}Ht zcTuX7iWqI<$)}sVVf_i<2ZncUQNKjw;^E9EO! zsdLt&KVrtE?8XzmHwhEN2#Emda#EgQglH3S$RDz=Majv9(J8)Wns($XB=LdSJ|oL* zmv{vl=9yChq;?4BlH><(vW%!?tL~4|baTmN7`!)5(mbfF3P2Ylq7S)l+oj6YhKwHF z|N7f=5P0qUm*nr3%KV>JH9B)<17=B9hPPXve#aZ@i3hJ3dl~%6Ab*>j%NqAzbQh_v z=(kkmSl=jNsDtR*LxXsoVWVugVk~^P&-KahHs^qGsXz=9bWAF-0@(p~l_bq$u zbMb!K{!w(jEGPN6o_y?Y6wQEtJ^!N%Y@~JaX@LIYL0^K(Y-&h-s0_ZZRFQ2zK0)KV z{Y;_8X-QSaPmhK;zyx%3cZ%fuO;4MB)HW7wcI}7uiQL#cN}L=rH1O~!)$FzPz4TR- zMJ-+H2+2R)VR|d_TExcO%8L7~6`u$g%?ht`Mj+Wl!Ljn{P;ZKolMK0{iEPE z-?ndJr@76Zd(A#9OClQ#+2^(j3JPCoX=xW;w4z+}?CrPMM-q!DcNT(9QG8iLQ86*v zw>Q_Rxw)$9exxu1Tg=mOU}2%+=K8V)IndXqAt!eiS#cCNB$~cKHGGrVwFERhcGJ1X z^I{;K7fGdOTu>kz(Qi}Nd*TjuH(j;ELKkymlf~;&@ zExs~$uq&7lr?!dIlHy~)c%11tso$%Esfi##07;Q*Yy5j zn-^3v@7iJF?(V*~V%|8Pnw?#dnMu1l->60!AQ&W>QB=ti zj7=E-;W&+(1l(;|W@>sGT2rIph=fi3_)Gw?`vNm)^T%rH=%k+P%)Tm}fTVKjafpay zEP{5mb##is!1lELaJC5M^wfuu4EM(GkrhSlw>JUU-T8E4$%wocHgyKkF)+f`YI$FO!;@8Z#5qzgalg*{MrQfA-#)8T)HmE!^U$`$0;!Lbp6O5Cfv3p(%$z zKxV<`#oaMaW##iW9H*PbtK3eITsJqJ#h(~be*nx(tgIgl3=9mLJ&FSi(s@jde^aX2 z9dC|taB)pis)@f~WMq^$_(4!g|I!j8S0S?uxGDWOsI+oQd?PP*GNrX0w;w3$nNX>f_US#syQ&2gN3Jgq4 zXvK?TzEblTmz^JNaK3mUeTwp7q(Z4SH#a*tIE-7yOH5mwcalj};1k@-9upXFY25sIl@nF*Y@Kah!=Q-g`exhd;>3RNso441ncdDz z4K1J5{nViU11bdtMWOvf$<|hBURq;gV>rpPl1NHc&9RNcOt9oIXEsV8y5rW3{k4c1 zUEP=H?rs$^0gorLvUvYHhKXv^qaVt4)YT;L;RB*sl+Zwv53 zr?0STunRj<5!GoYZaL^lzZoNriPUwLE@%x5TBV_uA^geBRMNr3E^g1C`fm(8dO7t- zPX{G~_M0ZpSj@KL96Y$fEa67{W5vCQp4_9L8bN^@Kx?10REvRS;x_%#qhQ`RNIvYP zKMSYJ@BhMBebQa+*jOczY#_};;D(uFwnJHZ?0VI9i>puIaccpG+6#BtvcP{&5+>Qx zi1b89=9JIV<0)tc2gTwZIb_hb4!aUZNdhpJJSn}R7VPL~s2qukf|HMHKSs3N)VNN@ z=XwKdB6VtwYW$;8Y(p*5mQ$}@AQHZU-?lpb_cc1+S~mI;QlsCecUmuC2M2oyh3g z+-;6pxX&zQt-y5l*h#Y(wZr~+54Q8K8D~)6eoE>^6q=)Uo=eK7M~q|f6kKkd%3xeP zNWwdQhO^lxB|HfZcU7uMq_=NYT|sZ82(IZwk4smls^N zng3Bj)W22KfQzGUnnUnx;n4>6Ikgb$n3@Sze?`%9%{ITF(GY%5$I6Di z)^*?W2FSf*X}MZGI}dl!k9Wb4Sf4eI?RFWa6|7$ngEX)H7(lCrwLDFlTUf0PrVUfA zVaaXHrugJ2s?CPZyQTK!31ioygZ8;@C%;usGRF)?5f3MWUQP?hYcBID8_sprPq5TVg2-B zqf=5BQcX=IhliI;k7(uh!B@`{Qwe1j32}!Vzj7rU%(?=`k59K<)0l$t0`!GQn~c8z zE0jzi5P9OpwXaKG-?Vc&SsIg{zpveeH34?^RE$So-S5TxLL@1VS@Gz1Ih?QOPF$0y z?ZFOK_jU~%x68%?!8*kZ zfv%rTo3W~35>LYWmr=yn$)u|KKe@BDV)XtJ;4jk*Gpt#i1-}pOUt6O|Di^cd*F%J` z`?*tAi zMtz-hWic&!mzQk&`j$rwFw*!eji&pH*04RqY8jfsU|SPaQ$fwQIk%f}KV{)|8{VnN zDTt3(Jp=t)(-*-vN#Bou-5Ekv>x!(c5tH2?tsvJ!5cF7Y1$gCu*FV=uoy*B9?Jxn7 zgO4&ef1jWC>?i$nFCTf%(mf+O`EQ zqqu4asHml6s3HU*1)^r80m%;0r~O;?oLtL_^2}yHCG?8EAJzUYseYsUHmT9II*C;h z0=>%N7%(m>nX?dC)7HPb4@OJqBu!dzPko-cEp6AzOLuWPeEF0>4_B&8iTsUU!XBX*Njvb^{fz2kH3Dr@X!*2aVt0NEb1} zPX+9oy)=@A58{)f`3`t82#lq6X0o<*nrsstqE33Zs{7`7wUK&qAA10;5wQ10)7WZvcL-HDl55`kHsrsR_Ehmvyt;*N=pN%6#mHrH#mHTc zeh?77(ZxnK zo8dPEYr9*suf)6C)DCb@)ZJ4`XIe{1-`ZMJ5@>dfGR<;N50*G| z*cA>`06Qx`suz<|3$ln)!MLA}F3$y@B{1B2Xhe&85IrT0(A~L~R$KCoUToS1OagQ|8&@%WYN>1Pid*%kFr0L%vLV5}ju^+F55^ z?wSB^N{OB@Xh?^Bv1R8w=Qx!j<2Cyi3W}OdNsVO7=lQkQ%6*qKMVv_b6@$9yy>r?4 zgF|;zbahq{!C%=&7TK15*qw*fw|1`;2R$$Cgnj1(AUp*7+VZMUpubkI{!${v)-}OQ zK@XdK%-TiPY{q<<4ykESNZWkeMV9dj_cYuEDMi|AP7n^E38GkpDysYH{h=&_y5Grr z0qr%oLGajO7kcs%cL~iN#vG#^JQuM$$7^I6i}7wRN@#lV!Cybu@Mo?(am)_$K;qLG zBN33c$H!(0AY7s%S5JbOmoYl(l)k0W1$U!EZ5l`LOeb3K0*QGLqiaIspM2+EGURzT zRoFF`_O+_CsmLIqzP+!7&^7kr8Ti_o zAcbPyAfuSMl&c)pH)X`}qh|qqMCpGrjfk<72G&kGBl!7WXe8AK?vo)_q6%n7nN{DU zeI(ic^Lpd*LtGNh)LiYsh(gB@u}8+OVk)na5cVERkHN&XWj@CcTUtqd!@|&NONkFH z@^a|eXRe8}14>f2XF+YXF7Qkz?)@P_f#Qz9w$`=nwaTn}kH$|rMLdLa=CV_n&0Kj= zfSA*F(TGq7+=wJ`YLl2_#)Wwnc{zuV#(MI1@AY?DX_j@Av)UxYSIJyoquPWif4xdE zF+C}=^K?FZNTRVc@1i}Jk53FzR9Dap36u??nyMPHZ$w@F>Zr#wsx_Q#cnPbvnDmha z=p?3A=1x?Jt@%eLclY&BFeOJsh>|D(8Y;mBj+YW!9-=vDk)WunSFavFrsUqolY(j3 z&YC(9`)rM-o#V);G#njhP^k4dm)|h8*~qGKs?m?JtABwT%09>4H`Q6|yEHy6RVFbM zg%&aB3g}2|>w}KRq(-5qYH3_OWm6rZC#aG=q60$;sh-R#k)v24n9&k%WCY-<9`oz3 zNh8Iz#PMW3PoH8# z==RMd@8fO8@1+;<$xPRlYEWGo8=t1Z!EuVI$UZR(u`E$eR#&Jl*~NbaZ1S7CkL{ zBnZ=b52`8T{@KsNIrXCnhBFEW1R_!%U~mz@`0xW)dpidNd|i`krc*qyf@o;ThKBna zs5VJi7~6fj;rGitp{7DN>kJ$>t}SiGBUL4~f|N8_qveOZTPjpyIm%#~f%;8xjIS5D zUup(K6QklKB!Ico`S)cV9UN#h&$*zF_RgQr93z98*6THVS2D6xkDnE_H=?{MVtI_1 zd6y=ZsxY-JuIXmJ0|68+!OLc)lG7p)I@QjlJT2RTewR6-#>b+2g81v7@MhyfG2mir z;;6{9zAsB!OJ$!PxXgOD4dQ!bTbu>p ztQmD0RC&?gSu2Db*s4}4X$VLQ@Mm;P&t1m@!3uVrBR3^AUgYqmSN1`nt-JjT2dzo4 ztKvX_yYlvvmR@2}|3W32Z*y^CxPH&i*muXC)T?8J#StPd-ZnqwN%;>H%^%bwkN!q4 z1kuuwm)n~pVSj$hnwsU^?8RLBvpVWU^v|WFLTGe(^|TWl*LRZUXypkF_-kxkRd!}u zy1t8omJuU+Wtwd!y9 zu=j=x&(bjE97Z{Pt?dv{E(61dkcs4_WGzk3MuhlvSXZYOY3WLmvnMNtghXe=9!NF{ zjg-!@9BvZtICxF?-UqGEd5B4h?0>d_{GgD{mdOvHC(S2DC766 zL_GTTg3MKlFw`f#v@wr^)HM;OOTcSHM%>$*70Z=Ec*%vA%38zgK>20UQbTRX5&wX) z2lNY)I~fw|!7P%~KP#^H!sK2#;CcHL!%xI!IkaSjIdD1!@7swun|>I?$GKuZ-GA)2 zqj#tD7&LWm;sn1aCP$>V27b{=Oy;;94UKCXdbK}c?wX{W{R(HEPa0=}aYyT$qkTpA zKc;K%NYr?OBl>4j^GY}Lc#({-jKA$m^r|U;*$lMY@%|_+KgK;N2+Hlli!y?sN=2ST?acC7c7?bc&B*ZgAdLrr6x;h zEL|GW_r3ZP-mVy|bh(*=;lHx%m2hP}p~*atYn(=!5)^DWZ>>sibZoMDwmi8P64(_M z+CR}L`zGx_>$J3fKV!fxLCdscGyl)TRidjXdw;c{07q}nX_AwtGemd>!vH2quS%+H zUk+&#QrdWe&2q1cnm8$Ab3T2Vx=iV$;jG~vZLKmbiX-bW(>Y?AEObBBl>PP-5W_y)E$5kNNAq1<3?z}d-tMIhWxn;O*R&8D zn42scn$1910tf0tPely(T~HN%&rIsJF0zI$HY(pPytVAeMVR8U$2pt@Q)Y%?*hVKw z$dwoonU;#>mz(VgGPsDC)~t2$1rMu|7%5{ClL-S&6{3VCC_TCO#o>d!-R_f3h)-j1 z>Cmh}e-(5xiP3vty?UUtQ`VFrcg{$=>~AKTv||bQdHBFEy~YfZL6mBy13?PGq}DEK ze*Ww)7o|>V?Qo9PtRv;9tCzF)YrdGrxK6%;CbtMdnRa=4wame(I3S^~E0?yq@za%( z!kJkheJ&HvmR!`Oby9Wrm&$Q7%$&TOJT=BV<#md?XHscE!Ysdfks ztl6nQeQWm#S8LMFGApa}Tx!ZUFE;c2hEQu)yrd2)W^wH4O#YfHF{!Qrsi1PyHq(Xe zOl{--4GW;T=9G-uF5^gl@(dW3$G}I*+(v9U7CW@3YrojSJMhUR3{CcSpH=)QTkKc6 zREQM_gK~~&+jkR(b+_0+Paec1Wvc>Hk6T#w{)vtCa1Kb0M4rSDzQ+u$j$UFV0>kC! zM}!j>MmmII@e5{0jnUg<*j4kJvptxD@B zOwGy>x_jVwaTlC4E2SLPBBf>NjMEdr>N<<0l7s&g^TW`BCE+TZR0a@WRF7@z^c0XYneDc zs-b+0X3WQ>7ejQSfB$g-`}xl)&wu3(w5UU9L)%HX!_h;qT@W-0MhpC0G+X#uz_AGb z@DDF3EiT)m4Z+LiXrCT#(I&6rTHQ(=?GDLWugEo8F!e4oV&BUe2*6y+b9y$G@c}*q zgh9L}_ZA_o`%>!b;TzUCE&F|dia3^W3z6n`&Vl>++J2xJUxroWR@JwZEW_g;;#74& zQ-~;5W4J`mn)IvY)hH2Fz^pS)DSJ{~AB4&L4QJzWPvNW(r!i9vyrZ2|Bg0ITHZVc= z97pENkAUwcr*V&znly0~!Z8D2Bmdq*&HvOBglzx0Oie%e%!ia>&HJHRD_448PKqNF z`W6@qFdbhX{!O3A5!fngzyZq=w#Pn;`0kr?cMvSnlTWWgcl@{eUOpeL z<{jp(q;1y-{8n1eRtdV02X}aDw%Bmqz7b~pU;VFk5M0`NYZZXa!O$@V(_~!L$FDAL z6>qi+sXxW7ij+*c#RSXs8(DwjYWgmE7tKJWJr zOdY&RUhxuj(LXx)%@mZ_P}g;lbi6k`gj43gLc!@c4%xUWrn5*&lLC?QY&7f3#C3JpVkF4xebA>N`sj~Jj!K{t?_TB{nC zV>CC&uvy4NUSR54K*4abW#x6s%u&4&$%XWWwIDL?&$rn2hW{IBNpdR za%vToR?RW$r@d^~Hsb=Nz=F;2SB;BnnrME>=Jb%jAQFk2tuR8|)JLmWjKR3+QTG(J zO9x0^Y2(Va@+Vuxup(84;k{?n9-y3}FtPEJ4(C!j!K|y!&PmtqAq>fbby{#Zu{ThX zS%~@-|G`8)E^53ZrLB(xCp~^qyyp;3Gn@Gz1AZ=8qIrV=7#WZJ=2Un4eNfSFm>Z&D z9Zo+)Ol~#Pb#(pb0zjtsNg8Z)Ca2iDF)R1mPl68Nq^@VWrtOjljL$7MZ-=Gy!8CGF z-P)$%o`mp##N?$W-9>Dj_^GCu$oBGLkL9KiZWZ0k6Wff9H#H)aeqqx|Hq~cl#<09# z8d(K)P`k3}qEsf%xFHrrYirv@(quy}2}sO8x*?#G(GNSS=`nB!C@WTX^xeb7C6bH3SIuI<5)SdydaaR zr>*r5?zm&)oqn0Ty9rJ|{!z0wmb=e^Tg89JlemJV|NDgZ=!5zLyyUj<<~sFo7X1I; zpJes$akdS4Dm=X5_xAGKsknQXK;#9VweR5liOI-TElqa#|AzU<6rTJ#?Q!z+VoxBO zMh906|Br){6IV=d&8`>c;!>{LYf;-4avD9^od@s2ksQq*;*+P1+5?;0)s!6TuCiPZ zpvVUgY}@k80uRGZ7=`l#_S%g!G&I5|b--YF8kY(5>MHR3^3w6F+FTI?vInEcB+uSO zczUAZTfBFnMy}0k-?9I;28UaK{RVyNr%xdP`^^#Eeh+Hr=`(#d>I~0*U8Cvf9X8un zS64T)n3ax4zmVllcubtEqw9*rj(hUdB+ls|&ZB_jVi`E=w7hj3n*Yvh=$oK+qY8b6 zO_s^qU{O75DqTN+|1zym`IYd~@tExhjvpgjpo_khhXVH6j3_tk+U_EdSH9=3IwaU~ zSu;DYwcmc6|4WuY)rfUSFl&7%tJD$JZU_Q_`2QTO#*$5!SASOoe7%TM-GA?0`(1QO zNlqD!3~SoC;ZfbeYuY5otuzlC85tRF>Me{!bmstWH8QiZbc~ERL341&^akf8*fxur zu9emIz@Q+iCr{WwfP<5hHg2O7_kC?`?SkzHb9^;6IcA#&z{<+lOa$zcFc?g|*DPOH zSQx}}W4IC~6}%wKO!vUPt*y<-gq4p^^Pjbn{_S`(E2X2+<*-8OzlCrQON3^lby-1; zLAzwn9Jms$5iee&jvp-Pzq)uB75zX*N9D^^d}sooTB?OxCyDDzqe-}D6JITE7x&lH zT$V<@Ekg%3=5!;rbU%4wIi+)JQppuIdN9xer`2q@2%DeK>g($xCM8|}QHUZ|f*xNz z8^E3}Ee3XPe+a$ja6FoeIXxY%N4VY|YlMK|c;Si{SUpM-*jxdl~#UE0-aJY#d7Nh*lc zJMoq}o$h(IwroBg4P?Gx^qe=d?gV5BsHhmemmNG0yLY+G8qce3YTotq^j&PUyYuPK zbR#B^kXm~oYCcn$MJ4<7XM$)__Nsb^k@nU)Ln%={{f^Aecum~y8<8|K-k-v1_m%g~ zbFBu+tZKU5p9%VVdlQ)2+CF}6ZEM3G8*uI`>a$mo<%)pFH^;`tW}aSb zdkE7ZfD zO3_UljST5}eV4!W4}j}BT}gXq$)f%i9WPKe_RY_0Me7yYFBiJ%=$h+jBJW>&t;=Cm z;+(<2KVrypg=u@cKxDXXGT&O(!)Q@@EvIW+#f`cg+v<@oe}x<$pezOaduyHtV;chm zZaYah*kGD~mHx+QK4 z>wz@(jnNl=etrl2@e=y5D*a9T8?0FfX6lL_G`E$3glBW0v$9Tlj*P6yzWveq z&|EFJoQ^c&<;$1+;Qq&igoHVmZ^r!_!C>bvrr90FOD+!I zUaqOBiHeVRMS4FIa!DC-(F;VvaM0H_xScxiZhH?*IxKhrx) zNh`sTMBkoUnUQ7^2M5RTIgMFaK|#S9QB_35#mQC?D&V9kor;>O57&Xy{DEw0a+2*e zTUnRjXKCrZ7l)PS4u=*)Swd=#(-nzBHjbWc7Z?7Orfq;>DsD&c>S#nqM+dwZS1_?P zNyHdj7B6)!=h}`Q_nKI6>F1cTG`&yU)Y!HqQ-Dc&3-l+91n; zW+TA&STv}{qLi8&wYXQ?VOpp37RCrYH4RobDU`)7>lxL%8-?E-M{i>|fS) zcOl0yz@4@Rx7c7&&%#B2@3f2K&5Dlp+NLSKXS7+^vx#W_e6{R#skchN#Tpi!IMWBe z%8;j>7_c(ib>ZWD<$!frEc=_@=nJhjbV*>S(Rpkxs!zp@zkzUr&|%& z#-+syf3uOVsm1 z`YhQ(5Yu3W)D&bHqCuKnLd<9LdX-vR!Gq+B^8k2-cVcen(z?>sgGh8+a34Uf*7Phc z{aZ*FOylNq?kFcpvFKcr9-UPQD zjT0zJ>E{=3pKSL3lsHEAxFmJt8RWH|P!3&Qwk3VX0{})7p=G{*Wc3di(AIujm0{n( z^O`cK-nX3d?)8*c+i{rM-fKKO^6YeVpkU#v?qCftVJ&ws4tkMGVimK5D^jK z(y=ReesSS&JeYdO?0H!rxnN&HX@eE)7YFkJ~PD^s_#D;uAfm@3!f#YOZ1m%1FU zJWyTZDd^H?5{@)2FDYT6qN1|LMf#+^@3>H2kATI;$M0o{Xz7;g;Nq0w@vJT4G&f*a zsS1jVNjOe#`4WvIg|ZKv$xJzw;oUYFR+^;>(H3H1Yz-Je%@!)1L0wt9 znquXp*C|OS+*c>lrL`o8vg}yl>-e96IQkY>-Tm>wtoKa;PV_;QUFGBa)-pislU204 z@BYxMdb=%e9pvNy#VWFJki>|zcLZrfw)9q&fhF1Nd-`}3$rc8CI8ERali0`9)fH|( z52NEYg)2$5xQ0lYHOK;bqZ>S=Yw3#UJue&(IQ6rn&4IA0pYd(`K>9g z7grN!jBrwgB%Hz#Qej|XtV<6ZG({(lf+8@$0NAhN%sVG5e&Ma@;$klG$;rehK1lSN z30GZXI@jlRJ`nLkk!i>Cv+ZmqtkPaZ;W%0lDK++2#~!g!LXKYQnW{TYud5o*UTQCf zX8IE{Hk+b6C+?qK>#@e{RNe-*Ci3#)%Aw);6nJjZIl>un@w0)${iI}MJ`pKNjxs=Q zeLX);1eev+jM1CY?Sf`R1gG10b6J(U>zvL#W}O68azu4jLj8l!NvmIeTx?zJZy{_x+Vb=#3kNs^8?-rDV{b*!dI1M>D zIp!EMo+;os_lQG6T>SCl$KUhwf#)h2eDb^S9x?!)nQ@l~$TJ?*UGl6n?} zGW>p5)`(jnSNriYNyKINa#U0`TSt>-yX0b2q^O`DC_a>JjYg;8R%zVb`PZ@+w7T99 zMWISMbQH~znii~|7g)EeZ^CF#Q(2icDKJi@*`RM)@Vn_Nb!TKUrI`H)5Ue+oWu#xg zsYzjoQj3^?{7T}GxH*35v$^9XnmQwZ8H`_Y-zd(@<7~z4&ZJFjXRiL-F)D_OOT~=E+5W5ZY z3&|J1dwRC}6JMdWGsMLgUWDZ3<+-#jhf}ZBQ{6F5ODg;qKpX>G0|#w<_Tl;Y&#i5( z;rfjY4Z6~-kBD4VeD%Lo=sE%|=pHA*fsqk4-EwT}-Bg@xdms0tfZM3?pU~}$AQ5xz zxzO{3ji)?F-^!8CI{vdyW4C9vpP0>B<#Y8i+4xkl)WB@kG+KAf-!HjIYhP8^k%7L@-2j(k|{%(KJch#zeAQ3h*3vu@oD<&Cai6!QQrIY`T4oOMN*BvK&Qe}OYaRg_VpATe- znWRDY**>Pq6g=>*mb+fbEKx~SRR25%U#qI>|n zx~^C!SVs(=!dO@hsD_60#=pahWMWBpN0D?*t{nT{Bd@m6meXyXTX8?k>gB4Rq#7m= za~<5S^jK4&%f~#(fsTcxq8C{5^F^0;49Q#h-d~LlK{1TCu)ih$AXy>(;q?Cn6bbA0 zHPkkC;Fo!>lbhjkDTcM9bJ|Cn&GmV3_tK@v&CQ+Db~j{YAt^Btb#;GrC^~WkdE2-D zUyjLaV?Qk|4Gj$q5R1j%TI`RREbtL|&lIw*V`_$Ywm&_)_?WI!y5kVfCN^(|=M3+^ zcYg&8Mic(}haV#>RE)pmS3)H6n$5`v0m9T}f~)ojbG=*;5fRM^Yg7^u(Y$o?2GeLX z&gu0%-S+x%_a!7?$>M*nhi-a%dqXU?_p(#=_Tt85?KhLjhE{zRjE`e5gs0X$9*0e8gjJrPV{;`3ay>k%OTN>1NZQ5c&qb?hSgg zjv`?1F&GvqM%#bYLATlE|cKjHLdUx1gu*XgJYkZhuJbQ_Raw;QOs?kn4sWb3=Dq`PWjVBB9Y+Q(2&bSrd#_E z7KY86HzPPW7*{(xzwt4di?qque=;xcTZ{eBkRXg2O}L@|`a5FOU~(&_W{PKDUl9xj z_pc2z-e}D-HmCa@wBB|uTy9t4(T7u@kclA(fN|Ue(PYAQy7i~DM<&5nw_LA!RM#n5ZNoqIoHBvIg5HCr)7hfdg*!f^@p!pG?5j)YRa_$&-#6dJ|SF z0s{jP85s$)*^I)%LL5AF2>AsCPRRi;LBQI{o|B(fS0f-G05LH!(CKt2eD__HmX@NR zpa9jA_2H6MtN;MKf9x1aOG{C7Ccp4@)Jg$s_FbS9Gt0|Nul>2zpsZ^xOlXPtU4-MX&LWs&fsSg%y6D%t&2xtNj0h)uAsMHgO5M`56qSc zY+9d)Gj(nFSJ?&h4QO!jQa4VV{&L!Fq_2*_sBs*74^*N{sm7(YKGZc`#ky6?VKQ5= z@9<~n8_=NgY%{7Gt{^+pp2SW|S%%YJw4i^Zdk9vm4M&gH!b=bwJv6g3lTcV}Z<}gR zi%&nljK;~yJZ>kK$i@!FuE zAVfz;qpZ9fDwPVu!^5bnuZO|SKOD}TZ-+uA!2|c-jmU@)$0I8v0jH{4002M#Q3ij8 zuIsVum1C&6*ny7jA$(Rd`-x#RS_69ehMgW}^8~UplTdT91COkC9`;?`a0OjTHM)AQ zWAFY72!eq1X>l&&du(hBLu&Q3y_{o~FNeuwLS=rBb1@vlB7Pm&0PQ*q5u- z7#ti#O>M1P`=it8(A?Y%jYfkWr4oNSoemPQ_!}RS`6?=6AtK}wyjxNYvv~r&{TiI9 z{mKy&cZw-j@$9%ZGQ>v8ScHMF+2A}cEkUV?zmt}f{HddTH+L{H90et&W@Mn*=^+}w;S z9UYKLBuGq3nz4;ZiHR5;9d&=I*(nGDwrt*vipokHDl9}`U?3iO_+iI{LK=<6F_XAj zt;UBReT4DxaY!W+tXsPl@wX&BZ(VnEbQE><_0Vdy2nYy3TwEN|Qd7V4=ZQ{l#79+4 z_*>yA`1*>FotfmA9OI>DaGK83aMV zgKO@=^G{`=cR=Ivy>>jd7W$Dfy!O^7@b>mX^1VxtvF0Ac$Asg>Uv0wv_s(MfduOp& zA;q?w>4$*_-Q|xxFFuC7`zx^XTr=dMV&vtf!r#vaZ@#<@yZ>2^H`nJ-{0Tu#MSzT9ztbR6$%a>gs-nJGBPq8Gfx9RPIfjb zDk|_naWQ;-eGwTM37eZqp3~JW$V!i&vV3Dk0t$<(p&Ha8TrPjXKVJO_^4~v)KfQet z2IDvuD?;$}6A!}M+so~QQql1m6dkW|T6W-#C$VmI3?d^!khXHU({m?Ie~G5cJ@65E zV`XAA_WpjG%b~||xg4RPp*VWOp4#^+<@cd7ww<%9b(E=Jd1-C;F%{g@y5O~czFqUa82wTuMIPq zO>EvSTrNRs$};SF@~G5fKp)5fKp)k!Nw}H3Y7u^2MBZDelD`iaW0@ZK1{8p~c+-1W#Kio&@&*#ezEo z2!sjW|NpaQ&6>Gu0paCcdH3vd&OZCT?fTov(A%-BHx}dA7y)CSSqUP=EAj6PH_e~* z{M&2NL;eVxr;YFX*5BTgH9PO~mrXJEH3^}ZSS$*MgvDSfWx>YohIPq$-_abO zIkw1r{x^CPd;YIoN?+F0S0boc`F$^9=jzO8$I8zXVDO`tN2`UT7bDPJr$Kou-Ji}u zLy$Lu5zHK$Kw7ahS%KgDJ>>1nxn#bI4Wuy@Rz?On@47HCr9bSn69b;R$|2w7`Dgjv zy(m^{USMqIgEefZ00C}b z=yI6W;k_$Mr`z6?%Yiz)6IXQ}l}N*jptinkU-UfC>IOrX2UJQ!BC;P=@*)dmT5UNZ zXW4Y}<%a!v8W2pAqoSkv#yI5sx7}9?=J#2#9S@{4tE-kCk&$`M@^WzqAW|zM zL>!#m&0gDLKa+{n*S)=iyubCWY`-JMbg}iE+-fjkS?SnymvdUkzX)g?2fZzU4g$shlsGs za_y3Y_1!1&DsQVDN^a>PUR~H%cD_krHB|Ustm6O-t8z8H=2VP`vz*AEDzVoZD^(9v z7tt>%aIB~wo3m7nEvy@^8yh#;EuTtjI`p!8xyuqQd_W@FH>jmd8~j8@NHfi5qZ|Tn zUsQRBGq71NEvsnnU{Ca!tL+~*^_{sSapY)9h{^Og8XeKNdb$1axF0S0<{`1;{;R&b z8-$L4iEgkuX{1Ic|E=mZ4+3|Qd-vAtQ_pBTqQ7QZtQxa&vs&g;*>Y1^K1=lt_xSTr zlG07#aTD-4W8~sK^t7l)Jak7i4*Pw^x0r`p{_xcn;+1EqrZuBgK>0=9cm?M`;vFmQ z5=rcP&oCkMQ42e>WoiBhD>qr`*RDq_JJPRE05z}E3yGzkKJYt})S?L?Nl(eIBsN>b zRACJy&kWUQN-_nsGvbHMR(@sA@D`%-gM>6a>Qjc_{)veQlJy>K63p1d((-lo)}z)Vd+5`WCJ{=slYRQW(htO6#OL&cyNPnKcC7xbLB$h#^(C`k zzW__bU7ud`ai^2}qT4}d{ZQc@1x<{pW=6ti`#tYRis1o^ti0cLq{iEw_sl#P%D&u5 zE{iX0vZsow6$~%p+dPZ=a!`$$d6EB%PYIyT3~lhz;~sHw;HV>`{GFATP51sJKwYF` zlZno#pUEesaF$GvuPa@f0Iuguuu3*F1(mUsF$5N`gf8JAb#^I z+O#C>F;o#GOYiO*ZOg!O*B*I%bF?gR&s$P}M2S0|zNW6t$}w;(&Dfr(Qp_R#(5{25 zCHPiQP3v0W&0VXh)a*e8j@QPlCLCTSeUQ}zj>uox&57p%1Kq2lZ$lO6Map|Q<>0_8 z2gkKnvu?>L+uqLJ^7;}b#5|q_CYzm(f0(PqBgLB`J|raKc0IjITfNjx;WPK&xm-xL zctO##59nHW*o6N@tRv^xYtoFx+CYsPVos*6TyzvFE8eVPN^g9-w&716OSUZ*#?2EJ zM)ULMcepBF_J6zYp7yFzv61pO<0Cg9Q#AO6G#Nc4G?rj7f0gJWp$i#tnOaxy7U|=> zDA5FBk)^n)9$XHO==d=4Gi>O}awOU=cI?BPlp%1Ed#CXUxf0W#A0$JHkC%fUnS2vh zQA)8|y|m5@EI*t`KQ^RoJ#tylY&rEI+d1TY!1;TlQ?=Bf?V-a5Keed0Sz}7xfIW3! z^E_e4a5wV~@bbj&oook9Hj9=fUGQY^@$2UjU%=%7AgfP)7_K?D8U7b^wFW63j6WY1 z-y$gGZZW`-Ch0QYANDEy`k>Ru!%kbx&%myP)Cv$qFNs270}LedRZf%~1#hGTzToOb{H2OXes%zTjZjj34m z9kr@z8x=vQl1n6=I4dZMDbh%^!}@Nn6kV%EfRZLDN4(Rn|Ive*CtnLca^?+){K(8p zC^b2MZD*#l#wnKA!Mn#FbUW#%T1^bsXAkzb)42`wjx0#dIFHKi;y}q!Hu=7nKtIWQ z>%cgp{m$o*mbxi7W!I-*Rnpf+qO|!-1IHvTD*7E@_$s}oT4cM+;wRG^A?!09Lb z=Z=X_yuP(Xgr^}A&%mt1|8!8#HdCIF@VHYlxMzHNtNKbr&5^+M&8uMZ;_9n6oJ@(j zY^Facsu3MrQ1?4G{a^K;3c3V}exhJA2>;3|XqgvX=)LEt;C1fMTg~1a^ZheT0bQiA zK~N^^d0tI}G3(o^*D{_mU_Op9NlIX~^nN`R2a|A0G)Txn=t(;GWTgmx`}rdGugsyv za0A-7SHpviW@{;wJck4}#GVkjWtX=e9Ah>yDecdg6(xVu9tMak$uK|AY9xB0&zQuj z6nj87lXgdoUQ*zJSUZWMKST3$`K@h=zi~z{a;u=u#!LtZjKQT}&6 zfr>qj&-KlOI)$!^9`!wA&C2BnzYhdoS^~_w`tFYpO2sX|l>8?ipBMA7lf_YLmEp5q z7$0db>*h;QD{dw=5NYC(oKX%kew3cA^Qb3vBHgFr^uYm_3Uc~2^q^B(*ZVIh z%|KcGf9&}b4?gLHy=5+-`TETK+@Vnf{%@=isc@sT{ZYVl*-N+5T23$sHJH04Fr-CV zJ2O)HY-6OFwIJA-QhYy$teiDn1zI_lmgV(b&Bo^QgRYSX=@_+z!S2&;^CrMhEKq@{ z?sHRe^pR(|3*Y^>MRYdxuYarjJRrHHa3kK;dqLvM&!fD_)m`1EromH0Wp-Ba{jE`@ z^qnzDBQLAt*O_V`=F*_~w4>tI^3I=f$NYS-F8}w3;bT_r4@araFfX|s*Z9e~H+Swo z)P7XI!c|wjUZs^p{~OFP!8=c~1St1c^Tbk+hLL<)eDgabz2!XP9?rvg{Bs=nFeGV? zT9(t!H)okcdeF#!E0mef`(@1rm_2Z!R!Axky}?GayfO7k-a?`9kFKTu zPgbb_hk%e>2kkPM*_=>lp6sd?4Mzm0V1U=m%+1m01CG?v4h8k9^D+E7{kKyB@a#;u*r7H;LT$MKo)8zuDZo z)BJVI_!;z~!SeIq_I@?v_p91cD3`9&V|yuW?S2pImfHmiW%&R~W|{ z*~ht^i&l!ZHIB1NV^p_s9G1+&u;AaYqHY2a%R>tf z6csYSca}fD$<$(L)4_88{mMQSs$0L(6hYu5EIFn?2$zp8Muzj-Pu){gCB;7M`6E>H zmZV(w)A1jMikW_j)d>Tq9?379Ljl87>vV$5G*@?2DGq1dk-QqUly|UUlpLMgf&9^$ z`TF$Ki~3}>(14%*jpl4v?3x*ed9+t;Kd#}_ylDt3`PHMlh=Ab6mjsf>^nhaA_fT>L zI>FIT@8onkwaVUne(+Pze(d*h0Wg@)1a^0SYVwc>_d<`}B-7jbJ^Ah5j3mk&9Ey~j z`|bII%w4n$XJWhA9f6n|ui6HL%dF@Iy=K(d7A@IZxP01}U(ORKktU_t41nK0X+QSX zY}4@-$X=Pp*d3RON8Gp(=a&pn7pk|)Nwqo9W@5f|ls_-)M0Z-T)5o61ZGP`|%Y4ZD zP)f+TQ2Vgc!m?(tONADaTSBTys;r}46vVVt)8`)n(W|Uo6+e3{FCJ`@wpsTz?iX|N zGr7;7xKy5ZC`IBVI4R!NF=F zo*6^>!->*ZQ(Pd#I88y{v?emM_%?~WQylwR;4qzV$W*7hlQ z#>13DIEP$It9^OJGYDCQS2V?p5I$3fsLT-%hP|wNIkhQ+*>TO8fl0&9E(u(!JPIPf zA-4$#o;W+`7 z3Gjd{ZLLHtErmdWwpIzhpDHF)QQo^JC@3K;B*D)Qfl<2NyFIaHbeSOVOo))2n_wmU z0~N&S8MMtPy0%nmRO|xrtc@l2!@FG(fs?Oo7z(GSQElw{R*~NX6xGWGy1tu|IlUky zuU7nSdE*W_`HSc3H#pzk{c5qpmWuitZoILOrd82k-yy9J)G#C_)#rPk#fxP~P|o(V&F;rdZts|Q zFJ;{g7U*);qW9X0@%U#m5xjy0t&X@)c_3L14UjOtgW&7?=)5;HVctv4{lB}>?aBdS zOg9J!PRB{P&c*`|vn>2EZN!Jb#Exe0c8rKifbPzfF>1v)kK4MfUQcMxJXE`dA-&CK=OD=qfI1{}ovlo904v=t zgT}kdOIlX#V^(G&R<;4KQ%74peaRaSv2J2H`2E4rt5V-=huaRMrgi6RWT^sYvf`U) zSU)7#yia4sRc1m06)2tK>MNW2k432fyrfj}TCoAO80g*aN;H25#nm^H1H(vEE6GHSgx^}Mmz(2=+$BbuyR~tZRgQ{py0n;Awj5DT zIVS9~f@L!JIrU9|zyJ(m?6(9N&Hhz*El#2g9e;>affTB5H27lMVwO(=8GF&%MK)O? zdhn_c4;2Yt=bX!E8I}&2)92vYIiLYs&{5l;-yJM!dw|yVm{SCL`fttmY)wy>H*Kh# z!JCSBhMf_L;*^va1NPqjs%}Iw4wt(#;)l(nd2gtW+6PX?F+-Ky_gtT zN$^32r)IxQiwkTr#&gH5QZ3%Z17~>HwtcYaie%B0N~=LQ6G?RpzILY8ldc(R%v7ha(>N;!gZFzP6o6^= z#$CL_%%1(4Kj@v@cNoj{Cz=6b=zKeGJTw7W*?Lzt?wm-SIp+k)*f{DL{?tZDUrsvL z{gwd76EbclIk~lo0-Ca?$f?*XOoOaXi{wb5zRmPe=~1x5yF!hO?0S83Hkb@%)XSg} z6@=sL}E{FSJ=6);3nZ84ewG+Ii2ZJv9MKeh- zm9UfTRU>q|F)ki^H7I-9=6p*B#$Cwjqv1WwdDzCIqdiHO>CZ9)Iz@Lb52 zESR_ywb?ao&TnV{*=72=(}+07N?v)npk;7jli&#S5&~$&{w?LMe0Zw{VNdE^fCkQI?HRo z2ohOtC^F?#-UxLDGn7V~?J-%O0+bkS8=NA31OUP5%=C91L~SkyFo zU01gWcY>vK8lb@VBakZ-sO&tVIZ32+kkd}%YOd6oTFym9x97uFBt1qtJpv)gBE8dQ z(QdIlkYgT?k+~4l$DMQdFJ^Cg0$uyc%e$9my`v5zo8$i5QNDs}6~3NJD=;-EH}Ak2 z-t#vyb~NH=1CHHlcU>i|AyJ?n2r()>(6#ji*aH)aI>d#scwoF?{kKHT(>jPJSyZ78 z^{>%~f4aQE(JMtuUFhYU3wBB8HV20Gr45tdA%A~|g$0wqP3iU8l`g>l^hA7jBH*$B z_Mc%*q4SR480;*}{I}t=?(-~Xmv>}UFfCPhKVVEj^h3?pWN@2jM@NTz%au-iy_cfq z0?2Orp;iabykF?Wx-Ys2n^OgM=%&wB#ZB_$MAPQ5t{-D4J=W`?tHq%w2o~Q90sYI> zS?7x^Z_4JaK48-gc^y9$(OGeXuI+*uu5}^N(wm=xPKSE_(uB4!_`S%IY|unvS1&9r z{^a*IHP3wdKajXxh05t;kaWrD>+9R9S53)0NH9ky)GR@^1U+qWs31(}lsC3w_;~Pg zV`rqv3fl}rrt2n1?gR_VN*{(zHT44&;CQ0`detSRsP-cRC<^;Jx=c)1Opob=S^U?>w5(tav5f^f|2|D2n~geQ*HM13$3+}rq55VrIG!Gg zlDZ^()CX2(jPL9F{sPsk3o`JHYM#>NgPkbNF`UQ+%=ua+J57MV9{Whd06;{@kbypL z%cO@+y&&AG*WLl@ltcVFZ0Au}h&Hc`6znY#x!Lg)H^ z{dPm|!%R{%=#y3BovRT5jk%HAlua_Cfbv2tDakXW2y(?Bxmsi9DHB_y8?ovzTP#N- zY{2Dm#ipQ<1(L=GJr%4?3V4J)3i9V*n{wU6EYUsqtX`A?YcO|Zk1U6Dm97U&;=u9v z8Tvm4ZYP={+hXq?Z%)wX=<#GsNXM{=+fmqV)UD$mPz`GX%oKEZc;a64$>7TH;Dzka zq^3~7Gi>HjKE>F89MgvWFDYgjq4142!cEs~qe0etdq$GmF4w zeRO6z4=gnbE6c%{g{va!GiM0Mb^UsrYv5gg5I@-yN7fjQuuoZayBzc+AYbeS-NZAI zD}~}^z<4t+F7I$-(`}`w2zmdGagbZ+wb2+t7Sl4{kII4LuPuLK>>@Fb7nv@>_zCSo z@o{m%>X?yV%u0qnrOju`b?2ddNq}dtG(K*WWQ%YcZ@G7xK=t+XY)b;JOrYQdpsR=i zo?eK1dpxp+mr+=wXhqbqnUz3m5*jb;g36?pvM{r~@HqY-gZD%VVsO6+w zN5;do1mp@@R>q>{WZnERl@u%V;;hPlGYcc=-#0pd$1@yc1k`jnyXT-Ugx$uyDywGd z9Mc>|$|x?PTuK5Sn&5DIqzPT;s)|va2W~shZZCt_;tncif!JASQ_W$ z=;Y+Nb{{>80+re7F$7$!(*esL@qXGKPKpb;Ab!VRz#mBE{KMp{_~&m2EtXQB-XPRt=3vPc2snp!JUhXOEB={g0Lv$vcThS6$0+ScacJ1^d}2NmJH~s0 z)6>(*Zvf$G?8VX*`0EF^yeWtsdI-QX(h^f*_${c3AqL$%f5ptA48*70eWW3XE`TtG zNI6zwL-6bYH9x}#Rf}Klh`}{!sH>|N>R);$k5m)O^l?|g(sp;DGp{gCe^(@}|8(|J z;}l1+T;-D`R@W4bF^W!l!jnq;JfXb$LRR+2O870zfa)zmbd4E+!~hsny({~|;?78h z8!TmGV@aN`E+zJ8d|>OvHcc?dyCK4P;_%}&mab}NXZy0jBe7*;BH24Hu0_hrx>~V@}?L1 zc9)XSdUzS>Ie8<{x&T4HiF2;m|2p*^C9)}_1K6eT8ZZCs&M6H9{>tFp@OnGbr#x+! z>m7%r@T|Sf#CJxTS~BF7EiyZcb~osmu8{3`h38CLjP*4|^6sa2h^mT$LCo}w{l8ow z@1zu7efUi+u#q4&gD#N5jUK9An24Ssnhjl6$PXY9m56IhT~iQQ*m8QEDbTErD(_{z zUJYd2ksH0s*BXC`nRWPvaY!OhLE^BA%9mkQ$642MDG(uG|! zAM&+;zIxcruQ)bSv^Mqo6*=?LE5k)46651KFk-*~nv6Sc-XnxK_^c8KoIK zRkOR`kW%g}8VfMMvoKdK*)v9o?xu-WQ^i^xt!IepASp++(o);yA8o$9r}xP`=iIJh zucu%P5f;SAPP4eR3%%&gOkv@x*J*3r>)SlDUtW8JUC3jTh?y`Ctbar$%$nB~ls-K@ zeX;VB<6u>Cw_r75s>-cZ`h}(xilak067d5%2miqY?2bqE|2c8js;GTcbmZ^;5|6Lc zxIEe3JFqKlE^h8k1S<4oj!jc$h6A+|z<)h|=v;tkj4UefV?PbZIrbK2T3mnL%lG_< zF_tt>ruQ*)K1FnnAz2r zSRb}S`Lv4|@0Sx~TxWXcn@gHDXkO!x^~;9|%dx>eaBUqAG%e(JcQJe~aH@FzBqzWOB7)>$B zk+M>c?OjAw#>y$NGF_vc&rHZ>o#Rjt9wNuOdIRD`K5$*p*|=+ozzo<;nZLX!Z?a|N zwI67IoG$8=PRrZ!jEo~VyF=p~tRcC(xYY=^jcCh4`AkYg(SU%S8{OIe39U;UY6D@6 zF@4whUOGmMjnd4=lxWUwq8TF-w75RkbfgI_Yz`QgfLt7XIh&817kg(H@Ct2Nr zJELrXX~V1-Ap;119f4nNuw7PgGh=Y6s$JZ>$szO^B2SSu{vJ((z-pOt-XAQ}n zYF5KF8QxM)jm`8zbsD=Ad5xZZ*>?UGSC}s7YVPjYa)hUEjw!T%s>lm2O)MLC*^-@> zgIg_)JoB1;m68>FATSj;!Fx9KSKqFRMH2v5q0M_3Ljqm(&KFlMu7gaBri28neev8G zf+RlZb_EcRQ%qy0N5>V1*`#yW)iN`gc0=$5uPi2t5l>>O^tFsP>1*3d&f8Co8fKm4 zZ)pwciq54G%h06BUaXpg?wh;*`T;$-uG?{%I5u?}(Q_jPD}0z1-vKcL_E)hzYan8rZ0FnvqzN%}A6*d1#KCdX81`yd57O zU)?e{&GyvTcHF~jJMS1itE9%@X|GfecFf$kF}FO0us!ZNXpyn2t3=qs53-IY`o5qu z59+1O6crUKo7SGU3OkMtF5JTBdZ~L!)db8dKvf6PBuf~5bvJM%ps0dRSgEp%g|`yE z&dL0Lenfy3QG<+e9>IVCv0M0M5bTlDO52)D*ST6eYnS`n=T@!J&zFLcrDM{=(>{Wr zFG?}g*Z;=hFWd3A%W>hkh125>(TT*8k%Rqkfiven)}jA3j{Qipq681jBwfVC5`X9C z>*Wyq5aYYNd;Q@%8Q1k~A0QP+-|s=*9m(9_G43P5Yfx087T@Iv2;x~?j75d+5xl7R zj*mn}9oKyb5|<0+um8Suf0YnCr;L9lasaO@5#Y$!H8N9OMdvRHW@hRf5-Pjt66S)> zt$%&EG35e9)t)<+1v|8vwFRsk%Z0ACT;3uQd&XVSxCm>@iIF+CpQD!$R;Ks2p00P& zw=QSb%+BNpJnAXd${WrHCpfoH*&4dF9j`X+v|;A(?h;vyZT3VX#7}>OQZ!xy|A~{? zfd{DFAP%R>rox0n! z0e+a6RTZB(i*~68_Ezv=(3S7uRA-69T)7qzDsY6ZcA~2!TQ@;ovxN!o;OcDwNrnwB z5zf%FbaAg7b$rPk%G%otpy!ja8q6fI+XpDcxty$+M&>by<3_vd8<-g`==i>2v-ilC zXz+2lVbgkHM(rkVi}gy9zRyiS-L)O++ZCCWn3L69^!xM=?QZk{GURGv*2jOM&UI?^ z1HoPthtADCMqNY0G-vWoFuYmXp;Y^V>c0BFKUpGC7lnIYVp^!hLCINGD>$C3bkFa|qCcYC8|G>#L z6Cd1f)mB+i^8htRy9rw#7njQR;}T~aN_Ul-6MaU!6L4I6zEM_W)1OTABEorK65MpK zYIcTdBIMma$HTE7lu;SS9z{#@hM=7sk7rz-Q9a<8gh$(9!Hn;`3)E}MXGYjX0xgT% zZMzETilR-yql2|~+}JIv0y-xF9=_b~7P9V%-D(}tFbqB(yDICl>kKDNlk)c8i0k?)zMKJT z$Xr!M(g|67v-{!WD2ook;I>y-dq1`SZgIQDT3T`RzLUQ{+SCMr+#TnF?3Q8mIFJ6i zff%3>^85CJv3&9E1=^o(^X>jM0C2U{j@_XKdD-LZ`()OpC4{6l-gcSp=j(@UyN&Kk z9y8leyM7+%fTSBN>pmIBYCf6fzz9+*L5oEhU(7l<%r?4%Cf|iRH>?+e;~hqd&?RPV z2fxD@3-KBjy`;~;M?yOO2_L(G)VPdh@BXbRi05ogcOf1n{_VcIKr3c0Fij>nK*DD$ zHOpt3lgGI3b^IebG5)Hy6C-x@>`ai$bbf!sOd;N9JzYFcwx*hJUukQP^^D=i9y=Ls zO>7x14TgnkY4JqcGevW-0TNS-FXRUY+*KDdRwlZ-N!>Yq%q=^$s^=%0n0m$$yyzTs zvES`5l>3)C44(wuF&%uX?K@T0o(hQ&fnYRf3$a3>2Z%r`LCb;9t+?^- zrtR-mkXb<$QLC6@TJ_CY#4#%0+!r8AL z?IYXwd|aEVG?f4e&i*}*a?(79z?0ebI%j^=-r`K3@7vhmTWr5v>^l_E3rU_Zqn8QN+ zg9m@;=<1GLdi-N7)W}NDmJYN%Rc5p)DM;><*ep-ropH_h{{8#)NOh(G>#h5%8EN94 zwi*)qo&M27Wuak3HiunP)}cuUY52g`qs(x5euH`;rWYevYDR8Sj zP{Mm7(Hg<`I6GuDEs{}IMm=4)7le1>`Ux}1Jf*0xI`5;Ane-PrFbJT&7o1i)IMS_udpomH<~c|Fa~0e2uzQ=Q0Bd+-|Z<7jbY|0^U>`MT_Y4aIBJwdzsG*62&s=q_hYb};s&%h#X zX9DUrKTulI`yflQ$fDybwYZ0Mx`CcU(@v!i=-p$ScT$?$O(ijt4c)G~^alp}5TK$Ak*^bSkc@aML&j!v1`!D<^ z^xSlT+N=%!H1A(hOBEIoou83}i3L~9di4@}EV$AZ=pKrr5e1@BX?Sxt?Ld`R?TU8d zlyd@jh>xkNduBo|ntosB{KFI{jh=)4dPHzcTV{I|Q9mCNnB_o)0A56Mo=c-u=6v#B zqyFQu*Kq)9Iw#^(H7-DTRf3g*8j9pepv}+UfJ|DnU7O0CLj1>N3|$Ir(6b>^@>BLG za*zIk?&a7v5TXjV2W=I-7-8+jGDgAOs@AhFeJ@>i8W$%s{kJqcT`;(vs^w!QMs&O< z@c?j4NuS24UFLDv7M$#7lCz7FoN;dR){tIFbZ-3jb$tk8hpL@01Ei~nX%bC+r`WoE zw$BSNn!&ZoF~atf{MWqe1Z9`=h+2?UelDcN_3X#*P{@2ccD08kI(2tR7UlN3VbXr= z8taF{n~c^6iQ*GOlSmolGN-PgTNDr-aU7%+nH_75=zoW{i`kw)&SPO2B_np@ce2p< zPpFoQ!!y%>j)XLjixO|^L0qeZ-|3SWH*at6YdYe!Gs@Xb7wmO1=Tvn~P4MK#f9+ow zWHsGsb+XbF@|VK+8cEkFI$j*M=J)R}rRSa;;mWAC1{i-*HUbnOGnb_BIr?a4gyY() zqa_Y{oR3huwzDAV|+%Z_QDjs*&LiqV z_|x7;w4fLGy03#7C|2LZYcB&s%0;yvh~0nDSO17NliN-gBi2WtZr4-^pE_*uF5)m* zZ4tdaErO4^V0Cr)tXxScR}~ReY%-7WY9Osk;yRunY(wV}wf(#q@}sj8;}yns zJ+VxNo^X+C!h%kdP$`+&*J*5SdRu&a(N2YtOM7dKZt zpDm~KnB8j{k@B1+;u#P*IkpVl@=>o-1 z;W0flV^^Vz{+xcxXXZInws9F^J7MaJYK9UT*lpJzUK}FrHbzSvrt2K;649mdfaY6w zD+P2-&jL zL#pJYgsqmE2g#OIPV)BGyTsxBG(p;T@|kuK{B^vrlZ4&LL|{jE;e1)g#!g^oNCuL8 zz|qmxZgNl4bLz2l?Z4@)jp(UX=h}aL4!~5aR`#|iYv4|`+&OWOERV4;BEX5)9Ezw4 zsdJObF-p27Fa9uq-`B){HYNIRE|r9{!Nx>Y4liB;%+1YpRa%Z^k{_36j_Zke9LSSc{Z%$QJh zG0iC5yt64f=eOk4bRwG}CIakUxw^KMJL#E(th0LBBBH4!*CU)+4+!mV~K8j!&TFw=th@f;aQyfE+UYiRJf?Y%K&QU>#bPf)9;Powhf za}C@$j#jZoyP2XlI-kXBZmC$|9;3-|3ph6 zag(=v%foci^h6qX(OUa!@s+Sx)~?-GSwDYFa83&PvTY0JmyIR_3U2NT1n7*3Sd7=% z=U5(cOi}M0Cde-p{h6h9FK(P7D9E|F@q^$V!K*r7B_2#L;>NGKUSR2+Ak+^9gLQQC zG6lNO6mm2xpWqg|Rjc;_kHJ~T&_c9-QX5F!2sn;A)2=yu$u!?eLOSI8^_vPa^SQ<` zU*S@f&K$%l?CVz*u*xsfSoCm#s(r1&;Mf=&8((@xM!{`WH{<2Y@B2^b#BUajd?V-9 zd&!&9;aGo@K#iSj4mdr`DY(2X_d$(4bj&fS&>I7r!v#ECN=!~}E-Eu``<^s^)!st? z;LGT^8487ZJM;q=kU(i+VG+yyR4nA;^n-$plM{ElR0y3)!4ts$P@Ukz$hv~78Nq{Tvp!9c<&I{W=M=EzkFwMgnz;VL0R_jMH!Ty`K%1BRKU4Be)sB;V0^8{iCm z=JP7G+iS76CLqzwlOxb6lH$VHW8lZO7ru8C{PdWSSS9b1qLzZQ&S?*}O4FoNXJ`3K z$G;EHzgHVo0E3&yq3sCA`d3dCTQ3ok!yv7v0-mdC>w!(qYxkv#_+~%o(TATJV8kil zs=tO_`5y4||3XzZ5J`Ha3)~yJYuPFnCXqlsBO~#JLm!b8eK^49`Rw~n`>9y~bGA9` zlo!ccHXK!8jQ2_^6Rp9ypoahZo-m2DaM zKMRXnO76xLdQ?$L7wb`?J4aRhEAD)p*dz5HDr{`eMQ9$sefzfBbAp#uBkQ~W;i_DP z9(I%iBXXi!iht|IDDRGnY*S)B9hK9Zm1D8riLTp64mpC0q>y_Lj&{jpA53m*b8rfNzP%n;um@LgrDs{4OMia z*R}nW$;w~ZrG&bfg@><6b||osk_H#Gl8-b^@TMd)!+sD52nZO|JCawLwSA9|fAak4 zgGQ6emi9R$l9)H;AxAW0ceD3qey+^W(2&8PolY+BECCF@ouu+bq)b1Mj^o7(=fR~S zR*t2zKd%%Nl{?H!5|yg%5E3rg+7xuRySTXA+YzM?;{VCSWbfw2SS`)ZPePl0l6lu} zZA4Rmhx5L>yE{e-e4l`(p5}05_Ayr+CEq3e!rFh{Ch66Xg`Nz#gMmf3?m1L@K=WdW^fN^|WUHo1y{K5`iMSGZ%g1(QBh`xzE`QC0a7&HC4$K zTaWv+Ux(8MVw^}nTbKpSpR_D^G~H!Ak+xL+`7462U2G92W#o6~__5v#{|#@>rbUmY zcMWw+QZJ}V31m$wio0)z5=p?RUT9=}+Hs|92nLqLrH_-Y%tDKMNY*+=Wi;1Klj9<# z87Y4*>fO>XFaLEoHJ6YP7eJq0zRl9Cq;(X+*!j2163>=dBzEEl)bjCrh3EE@ZFa=9 z6IC#dV8Pi*O;uHScXt6{8hCKTrA7-`$b+*tOq@Nj#DMkTzlrDFqR z-%UF=khZmNBnMtLI)K5c{5Zs@dXouJRF`yLWpm+OxU>^&YTGAfg3q-1sYDjhn1~4e zrH0r-Eu$9{3JMCp-toVznvkD>n3fIw0&F32Qwd(eRF4K7>&+5A+`oUndS+Y9+$7Q= zc>FX%nCgwb`K~}|ZF4hCTwI)Q+iF*rQb|_uu^#a*mMx{9l!{7h4Tn*2bmR&-8OdP| zygbJSFc9D^6md0E_u!mg1d%-ZGT$r$!5dZwVj|Gd%P8PXz^UAkaQ2BIUPz_@cEKEJ zYA@|ylT;>75T8yp)<~F?37?N5!udriQT#t!W`qo7G^*tN3+`9SJT5HGI}?wti-4=-=V4A#aL&!CNp(B(^(RDeq&)x`MX$ zNcee8hi&(I1o`Qus#A^2;a%q$p!Ei0>xsOAlD&It@gqUGU!TPHCoxmvVwos;hJKQt zzx_fHXjZm`%2+9GPMR4^@RxOM4nNb8VYctjtAs5-Sy+Fu{50lBrCxaBN_fbz-rnB% zD81)sou(`LZ(kDkPrWktyxId}Oz-Rb<4)Yj)D(v2q(lDGkSipw=@>B|4xA9RXbOnv zNO31U@bWsvIa3{kj`Lf2R>MLoLok0tSG)}_*IrOD3zOXbHEt7@%V8loiMusT_Ve$U z46>}Wd1lS$8~@U6EQ25y2^59=X2Mg4z0wyG7XAp!xI7yS_xu;#Pk$@V9TnC;Lm? z@?~R-hqERI6?%zDN&i#~scnzwV5b-U4(bvuD5AWf@Z@BQ#FP|Zsk1kMAur{82V2!= z?J9@+)?X}O^uDI{2e+)>EfcjV-G6K7NrZbl)e8Y4iNUm$qD^8?q#IBDdBB|n)2-ThVQ}gtLd5Abv4fF{m$2ZewQ-vyZ=#9O!!N6 z7an{Kz2GIW|92>F_@1S?TBaB&8j%$Ww+%(PcK?l_ESLc95)!hov)^s<_b)Chlh@WJ zLu5)v5HVi;d%s~K{)p6QAcH!r*qv!ufAtS59Z%~`0>4#Rirjr4ZqTI<<9A-2AB%b{ z?JsCTET|&tZ|T;nGnf-8izeIU|5$rvOK44r{@mYex<_l|=;w zcM1v$stsNgmsTpNsy?ivfkSr^2z8Gd-$af$U2`LR;=*tH`^6(&PWBxN?YTw60FX)f z-q{p?;=fK?ApIS=a~6?FyIus4Jobz2I~DCu;BN_JrP^EK{lS(cAx&BcdfuW#YuN)L-d$nY3<=!&Fn)YbhmKCZXsCE?}c&Geqi zDGQ!0^04bXKu1?!zVgkx?R1ezV1b~V0&}mWy!^%T%F55u(g#@}T1!hSLY;x^_}C8+ zzz&)F^XCm48=IbifzN6rZ~PD0jf{Q`-hA+xn1`A0hNzqkjhTR93hx-yV!o4Q~~ds z6o{_OhUIrN`QNN zn2t@DVHg~Mcl`boagX@^pTa0ret~J!ZrVDySj2F@Umw%4?qxBxXdT2SO$x67sS#AW z{*|}iT>G=?>p8UTVc}8EfRt&n-@C2pCH&;clWG0LWzVz@A%ni)eoG;X5(D_7gu~Q&&x)kVdaJgk1PFL0exR`tj^{1SLEwyweLjA^X zm+k!-q4qmQnep@KwV0LpzgwG*%mbtyalRVY@RgA)H%KLG() MQA45f)w@ss3r`{Q!vFvP delta 16379 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 diff --git a/docs/_images/fittrackee_screenshot-06.png b/docs/_images/fittrackee_screenshot-06.png index 7a921086cdd69cfa7f9800a927142ad12d00980f..8e80445176e4c2604474f826f6524ca3acc20394 100644 GIT binary patch delta 16359 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 delta 16362 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. diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 1599e213..1e0b4d99 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.5.3', + VERSION: '0.5.4', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/api/auth.html b/docs/api/auth.html index 738c8013..747aeb46 100644 --- a/docs/api/auth.html +++ b/docs/api/auth.html @@ -5,7 +5,7 @@ - Authentication — FitTrackee 0.5.3 + <title>Authentication — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/api/configuration.html b/docs/api/configuration.html index 712d56a7..a3d90944 100644 --- a/docs/api/configuration.html +++ b/docs/api/configuration.html @@ -5,7 +5,7 @@ - Configuration — FitTrackee 0.5.3 + <title>Configuration — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 @@ -148,7 +148,7 @@ "max_zip_file_size": 10485760, "max_users": 0, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.5.3" + "version": "0.5.4" }, "status": "success" } diff --git a/docs/api/index.html b/docs/api/index.html index b6403a0d..f2c8233e 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -5,7 +5,7 @@ - API documentation — FitTrackee 0.5.3 + <title>API documentation — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/api/records.html b/docs/api/records.html index 7156a82e..068297e4 100644 --- a/docs/api/records.html +++ b/docs/api/records.html @@ -5,7 +5,7 @@ - Records — FitTrackee 0.5.3 + <title>Records — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/api/sports.html b/docs/api/sports.html index ac4d2677..ea0e0a6f 100644 --- a/docs/api/sports.html +++ b/docs/api/sports.html @@ -5,7 +5,7 @@ - Sports — FitTrackee 0.5.3 + <title>Sports — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/api/stats.html b/docs/api/stats.html index 84773e5b..e8652be4 100644 --- a/docs/api/stats.html +++ b/docs/api/stats.html @@ -5,7 +5,7 @@ - Statistics — FitTrackee 0.5.3 + <title>Statistics — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/api/users.html b/docs/api/users.html index d24fdf4c..872c1f6b 100644 --- a/docs/api/users.html +++ b/docs/api/users.html @@ -5,7 +5,7 @@ - Users — FitTrackee 0.5.3 + <title>Users — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/api/workouts.html b/docs/api/workouts.html index 8bd84522..12eefe68 100644 --- a/docs/api/workouts.html +++ b/docs/api/workouts.html @@ -5,7 +5,7 @@ - Workouts — FitTrackee 0.5.3 + <title>Workouts — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/changelog.html b/docs/changelog.html index 0faf671e..97c57e40 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -5,7 +5,7 @@ - Change log — FitTrackee 0.5.3 + <title>Change log — FitTrackee 0.5.4 documentation @@ -39,7 +39,7 @@ FitTrackee - 0.5.3 + 0.5.4 @@ -77,31 +77,38 @@ role="menu" aria-labelledby="dLabelLocalToc">

  • Change log
      -
    • Version 0.5.3 (2022/01/01)
        +
      • Version 0.5.4 (2022/01/01)
      • -
      • Version 0.5.2 (2021/12/19)
          +
        • Version 0.5.3 (2022/01/01) +
        • +
        • Version 0.5.2 (2021/12/19)
        • Version 0.5.1 (2021/11/30)
            -
          • Issues Closed
          • Version 0.5.0 (2021/11/14)
              -
            • Issues Closed
            • Version 0.4.9 (2021/07/16) -
            • -
            • Version 0.4.8 (2021/07/03)
                -
              • Issues Closed
              • -
              • Version 0.4.7 (2021/04/07)
                  +
                • Version 0.4.8 (2021/07/03) +
                • +
                • Version 0.4.7 (2021/04/07)
                • Version 0.4.6 (2021/02/21) -
                • -
                • Version 0.4.5 (2021/02/17)
                • -
                • Version 0.4.4 (2021/01/31)
                    +
                  • Version 0.4.5 (2021/02/17) +
                  • +
                  • Version 0.4.4 (2021/01/31)
                  • Version 0.4.3 (2021/01/10)
                      -
                    • Issues Closed
                    • Version 0.4.2 (2021/01/03)
                    • Version 0.4.1 (2020/12/31) -
                    • -
                    • Version 0.4.0 - FitTrackee on PyPI (2020/09/19)
                    • -
                    • Version 0.3.0 - Administration (2020/07/15)
                        +
                      • Version 0.4.0 - FitTrackee on PyPI (2020/09/19)
                      • +
                      • Version 0.3.0 - Administration (2020/07/15) +
                      • Version 0.2.5 - Fix and improvements (2020/01/31)
                      • Version 0.2.4 - Minor fix (2020/01/30)
                          -
                        • Issues Closed
                        • Version 0.2.3 - FitTrackee available in French (2019/12/29) -
                        • -
                        • Version 0.2.2 - Statistics fix (2019/09/23)
                            -
                          • Issues Closed
                          • -
                          • Version 0.2.1 - Fix and improvements (2019/09/01)
                              +
                            • Version 0.2.2 - Statistics fix (2019/09/23) +
                            • +
                            • Version 0.2.1 - Fix and improvements (2019/09/01)
                            • Version 0.2.0 - Statistics (2019/07/07)
                                -
                              • Issues Closed
                              • Version 0.1.1 - Fix and improvements (2019/02/07)
                                  -
                                • Issues Closed
                                • Version 0.1.0 - First release 🎉 (2018-07-04)
                                    -
                                  • Issues Closed @@ -291,13 +298,26 @@

                                    Change log

                                    -
                                    -

                                    Version 0.5.3 (2022/01/01)

                                    +
                                    +

                                    Version 0.5.4 (2022/01/01)

                                    Issues Closed

                                    Bugs Fixed

                                      +
                                    • #131 - No workouts displayed on calendar

                                    • +
                                    +

                                    In this release 1 issue was closed.

                                    +
                                    +
                                    +
                                    +
                                    +

                                    Version 0.5.3 (2022/01/01)

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    +
                                    • #129 - Display only active sports when editing a workout

                                    • #127 - parse_email_url() can’t validate a legitimate EMAIL_URI such as “smtp://localhost:25”

                                    @@ -307,8 +327,8 @@

                                    Version 0.5.2 (2021/12/19)

                                    -
                                    -

                                    Issues Closed

                                    +
                                    +

                                    Issues Closed

                                    New Features

                                      @@ -321,10 +341,10 @@

                                    Version 0.5.1 (2021/11/30)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #116 - Better UI for Speed and Elevation buttons in the graph of the Workout screen

                                    • #115 - Add option to download the GPX file of a Workout

                                    • @@ -336,10 +356,10 @@

                                    Version 0.5.0 (2021/11/14)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #99 - Display workout with imperial units

                                    • #91 - Display elevation chart with min and max altitude of workout

                                    • @@ -347,8 +367,8 @@
                                    • #18 - Better UI

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Bugs Fixed

                                    • #95 - Some workouts seem to be missing on statistics chart

                                    @@ -378,17 +398,17 @@

                                    Version 0.4.9 (2021/07/16)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #83 - allow using configured tile server to generate static maps
                                      Note: to keep using the default tile server, set environment variable DEFAULT_STATICMAP to True

                                    • #81 - display remaining characters in textarea

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Bugs Fixed

                                    • #82 - a user can not modify his birth day

                                    • #80 - can not save notes with control characters

                                    • @@ -399,10 +419,10 @@

                                    Version 0.4.8 (2021/07/03)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #79 - Fails to start after make rebuild

                                    @@ -412,17 +432,17 @@

                                    Version 0.4.7 (2021/04/07)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #75 - Workouts on the same day are not displayed in right order

                                    -
                                    -

                                    Misc

                                    +
                                    +

                                    Misc

                                    • Update Python and Javascript dependencies
                                      IMPORTANT: Due to SQLAlchemy update (1.4+), engine URLs starting with postgres:// are no longer supported. Please update DATABASE_URL with postgresql://.

                                    @@ -431,10 +451,10 @@

                                    Version 0.4.6 (2021/02/21)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #72 - Error message when file exceeding size is incorrect

                                    • #71 - max size or max number of files must be greater than 0

                                    • @@ -446,10 +466,10 @@

                                    Version 0.4.5 (2021/02/17)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #66 - invalid gpx limit used when importing zip archive

                                    • #64 - Only 50 workouts per month shown in calendar

                                    • @@ -460,17 +480,17 @@

                                    Version 0.4.4 (2021/01/31)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #62 - Error when sending reset password email

                                    -
                                    -

                                    Misc

                                    +
                                    +

                                    Misc

                                    • Refactoring before introducing new features.

                                    • Add docker files for evaluation purposes.

                                    • @@ -480,16 +500,16 @@

                                    Version 0.4.3 (2021/01/10)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #58 - Standardize terms used for workouts
                                      Note: Database model, upload directory for workouts and API endpoints are also updated.

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Bugs Fixed

                                    • #59 - No message displayed on uploading image error

                                    @@ -499,18 +519,18 @@

                                    Version 0.4.2 (2021/01/03)

                                    -
                                    -

                                    Misc

                                    +
                                    +

                                    Misc

                                    No new features in this release, only some refactorings before introducing new features.

                                    Version 0.4.1 (2020/12/31)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #57 - Use uuid for activities

                                    @@ -526,10 +546,10 @@ new features.

                                  • It’s now possible to change the tile provider for maps. The default tile server is now OpenStreetMap’s standard tile layer (replacing ThunderForest Outdoors), see Map tile server in documentation.

                                  -
                                  -

                                  Issues Closed

                                  -
                                  -

                                  New Features

                                  +
                                  +

                                  Issues Closed

                                  +
                                  +

                                  New Features

                                  • #54 - Tile server can be changed

                                  • #53 - Simplify FitTrackee installation

                                  • @@ -545,10 +565,10 @@ see documentation)
                                    ⚠️ Warning: some application parameters move from environment variables to database (see installation).

                                  • in order to send emails, Redis is now a mandatory dependency

                                  -
                                  -

                                  Issues Closed

                                  -
                                  -

                                  New Features

                                  +
                                  +

                                  Issues Closed

                                  +
                                  +

                                  New Features

                                  • #50 - A user can reset his password

                                  • #17 - A user can delete his account

                                  • @@ -560,8 +580,8 @@ see

                                    Version 0.2.5 - Fix and improvements (2020/01/31)

                                    -
                                    -

                                    Misc

                                    +
                                    +

                                    Misc

                                    This version contains minor fix and improvements on client side:

                                    • 4c3fc34 - empty user data on logout

                                    • @@ -574,10 +594,10 @@ add URL interceptors to simplify routes definition

                                    Version 0.2.4 - Minor fix (2020/01/30)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #47 - timezone drop-down is not displayed correctly

                                    • #46 - calendar cannot display more than 5 or 6 activities on the same day

                                    • @@ -588,17 +608,17 @@ add URL interceptors to simplify routes definition

                                    Version 0.2.3 - FitTrackee available in French (2019/12/29)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #43 - Display weekend days with a different background color on calendar

                                    • #40 - Localize FitTrackee (i18n)

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Bugs Fixed

                                    • #44 - Cannot edit an activity that does not have a gpx file

                                    @@ -608,10 +628,10 @@ add URL interceptors to simplify routes definition

                                    Version 0.2.2 - Statistics fix (2019/09/23)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    Bugs Fixed

                                    • #41 - User statistics are incorrect

                                    @@ -621,10 +641,10 @@ add URL interceptors to simplify routes definition

                                    Version 0.2.1 - Fix and improvements (2019/09/01)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #4 - Show points on the map when mouse over the chart

                                    • #14 - Display segments informations

                                    • @@ -635,15 +655,15 @@ add URL interceptors to simplify routes definition

                                    • #37 - Display map on activities list

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Bugs Fixed

                                    • #34 - Weather is not displayed anymore

                                    -
                                    -

                                    Misc

                                    +
                                    +

                                    Misc

                                    @@ -652,17 +672,17 @@ add URL interceptors to simplify routes definition

                                    Version 0.2.0 - Statistics (2019/07/07)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #13 - Detailed statistics

                                    -
                                    -

                                    Misc

                                    +
                                    +

                                    Misc

                                    • Update dependencies

                                    @@ -671,17 +691,17 @@ add URL interceptors to simplify routes definition

                                    Version 0.1.1 - Fix and improvements (2019/02/07)

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #25 - Display records on calendar

                                    • #22 - Add a total on current month statistics

                                    -
                                    -

                                    Bugs Fixed

                                    +
                                    +

                                    Bugs Fixed

                                    • #31 - Use moving duration for stats

                                    • #29 - Pause duration calculation with segments

                                    • @@ -730,10 +750,10 @@ add URL interceptors to simplify routes definition

                                    • no administration for now

                                    ➡️ more informations: see documentation and current issues

                                    -
                                    -

                                    Issues Closed

                                    -
                                    -

                                    New Features

                                    +
                                    +

                                    Issues Closed

                                    +
                                    +

                                    New Features

                                    • #11 - Timezone support

                                    • #10 - Add a note to an activity

                                    • diff --git a/docs/features.html b/docs/features.html index 2c2809a4..cdb6efc4 100644 --- a/docs/features.html +++ b/docs/features.html @@ -5,7 +5,7 @@ - Features — FitTrackee 0.5.3 + <title>Features — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/genindex.html b/docs/genindex.html index 0e4fce95..f5174340 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,7 +4,7 @@ - Index — FitTrackee 0.5.3 + <title>Index — FitTrackee 0.5.4 documentation @@ -37,7 +37,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/http-routingtable.html b/docs/http-routingtable.html index a369d06d..202b7b9a 100644 --- a/docs/http-routingtable.html +++ b/docs/http-routingtable.html @@ -4,7 +4,7 @@ - HTTP Routing Table — FitTrackee 0.5.3 + <title>HTTP Routing Table — FitTrackee 0.5.4 documentation @@ -44,7 +44,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/index.html b/docs/index.html index e2ca6572..0890936c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ - FitTrackee — FitTrackee 0.5.3 + <title>FitTrackee — FitTrackee 0.5.4 documentation @@ -39,7 +39,7 @@ FitTrackee - 0.5.3 + 0.5.4 diff --git a/docs/installation.html b/docs/installation.html index 474a604c..aa07b677 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -5,7 +5,7 @@ - Installation — FitTrackee 0.5.3 + <title>Installation — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4 @@ -655,11 +655,11 @@ and the password mp
                                        -
                                      • Download the last release (for now, it is the release v0.5.3):

                                      • +
                                      • Download the last release (for now, it is the release v0.5.4):

                                      -
                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.5.3.tar.gz
                                      -$ tar -xzf v0.5.3.tar.gz
                                      -$ mv FitTrackee-0.5.3 FitTrackee
                                      +
                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.5.4.tar.gz
                                      +$ tar -xzf v0.5.4.tar.gz
                                      +$ mv FitTrackee-0.5.4 FitTrackee
                                       $ cd FitTrackee
                                       
                                      @@ -733,11 +733,11 @@ $ make upgrade-db
                                      • Stop the application

                                      • Change to the directory where FitTrackee directory is located

                                      • -
                                      • Download the last release (for now, it is the release v0.5.3) and overwrite existing files:

                                      • +
                                      • Download the last release (for now, it is the release v0.5.4) and overwrite existing files:

                                      -
                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.5.3.tar.gz
                                      -$ tar -xzf v0.5.3.tar.gz
                                      -$ cp -R FitTrackee-0.5.3/* FitTrackee/
                                      +
                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.5.4.tar.gz
                                      +$ tar -xzf v0.5.4.tar.gz
                                      +$ cp -R FitTrackee-0.5.4/* FitTrackee/
                                       $ cd FitTrackee
                                       
                                      diff --git a/docs/objects.inv b/docs/objects.inv index 0b821bf5aab51df0bc7c22e7cc12bab447cadb23..7977b8c7597b55578480eb93752a4e5c74b24c2e 100644 GIT binary patch delta 12 Tcmeyw`H6Fa6QjvS=k+WAA=3n< delta 12 Tcmeyw`H6Fa6Ql7)=k+WAA - Search — FitTrackee 0.5.3 + <title>Search — FitTrackee 0.5.4 documentation @@ -43,7 +43,7 @@ FitTrackee - 0.5.3 + 0.5.4
                                      diff --git a/docs/searchindex.js b/docs/searchindex.js index 719241ce..03b2e570 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api/auth","api/configuration","api/index","api/records","api/sports","api/stats","api/users","api/workouts","changelog","features","index","installation","troubleshooting/administrator","troubleshooting/index","troubleshooting/user"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/auth.rst","api/configuration.rst","api/index.rst","api/records.rst","api/sports.rst","api/stats.rst","api/users.rst","api/workouts.rst","changelog.md","features.rst","index.rst","installation.rst","troubleshooting/administrator.rst","troubleshooting/index.rst","troubleshooting/user.rst"],objects:{"":[[0,0,1,"post--api-auth-login","/api/auth/login"],[0,1,1,"get--api-auth-logout","/api/auth/logout"],[0,0,1,"post--api-auth-password-reset-request","/api/auth/password/reset-request"],[0,0,1,"post--api-auth-password-update","/api/auth/password/update"],[0,2,1,"delete--api-auth-picture","/api/auth/picture"],[0,0,1,"post--api-auth-picture","/api/auth/picture"],[0,1,1,"get--api-auth-profile","/api/auth/profile"],[0,0,1,"post--api-auth-profile-edit","/api/auth/profile/edit"],[0,0,1,"post--api-auth-profile-edit-preferences","/api/auth/profile/edit/preferences"],[0,0,1,"post--api-auth-profile-edit-sports","/api/auth/profile/edit/sports"],[0,2,1,"delete--api-auth-profile-reset-sports-(sport_id)","/api/auth/profile/reset/sports/(sport_id)"],[0,0,1,"post--api-auth-register","/api/auth/register"],[1,1,1,"get--api-config","/api/config"],[1,3,1,"patch--api-config","/api/config"],[1,1,1,"get--api-ping","/api/ping"],[3,1,1,"get--api-records","/api/records"],[4,1,1,"get--api-sports","/api/sports"],[4,1,1,"get--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[4,3,1,"patch--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[5,1,1,"get--api-stats-(user_name)-by_sport","/api/stats/(user_name)/by_sport"],[5,1,1,"get--api-stats-(user_name)-by_time","/api/stats/(user_name)/by_time"],[5,1,1,"get--api-stats-all","/api/stats/all"],[6,1,1,"get--api-users","/api/users"],[6,2,1,"delete--api-users-(user_name)","/api/users/(user_name)"],[6,1,1,"get--api-users-(user_name)","/api/users/(user_name)"],[6,3,1,"patch--api-users-(user_name)","/api/users/(user_name)"],[6,1,1,"get--api-users-(user_name)-picture","/api/users/(user_name)/picture"],[7,1,1,"get--api-workouts","/api/workouts"],[7,0,1,"post--api-workouts","/api/workouts"],[7,2,1,"delete--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,1,1,"get--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,3,1,"patch--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data","/api/workouts/(string:workout_short_id)/chart_data"],[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"],[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx","/api/workouts/(string:workout_short_id)/gpx"],[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx-download","/api/workouts/(string:workout_short_id)/gpx/download"],[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"],[7,1,1,"get--api-workouts-map-(map_id)","/api/workouts/map/(map_id)"],[7,0,1,"post--api-workouts-no_gpx","/api/workouts/no_gpx"],[11,4,1,"-","APP_LOG"],[11,4,1,"-","APP_SECRET_KEY"],[11,4,1,"-","APP_SETTINGS"],[11,4,1,"-","APP_WORKERS"],[11,4,1,"-","DATABASE_DISABLE_POOLING"],[11,4,1,"-","DATABASE_URL"],[11,4,1,"envvar-DEFAULT_STATICMAP","DEFAULT_STATICMAP \ud83c\udd95"],[11,4,1,"-","EMAIL_URL"],[11,4,1,"-","FLASK_APP"],[11,4,1,"-","HOST"],[11,4,1,"-","MAP_ATTRIBUTION"],[11,4,1,"-","PORT"],[11,4,1,"-","REDIS_URL"],[11,4,1,"-","SENDER_EMAIL"],[11,4,1,"-","TILE_SERVER_URL"],[11,4,1,"-","UI_URL"],[11,4,1,"-","UPLOAD_FOLDER"],[11,4,1,"-","VUE_APP_API_URL"],[11,4,1,"-","WEATHER_API_KEY"],[11,4,1,"-","WORKERS_PROCESSES"]],"/api/workouts/map_tile/(s)/(z)/(x)/(y)":[[7,1,1,"get--api-workouts-map_tile-(s)-(z)-(x)-(y).png","png"]]},objnames:{"0":["http","post","HTTP post"],"1":["http","get","HTTP get"],"2":["http","delete","HTTP delete"],"3":["http","patch","HTTP patch"],"4":["std","envvar","environment variable"]},objtypes:{"0":"http:post","1":"http:get","2":"http:delete","3":"http:patch","4":"std:envvar"},terms:{"0":[0,1,3,4,5,6,7,9,11],"00":[0,3,6,7],"000000":0,"01":[0,3,5,6,7],"02":7,"03":[6,7],"04":7,"06":5,"07":[0,3,6,7],"08":[0,3,6],"09":[0,6],"0mb":[0,7],"1":[0,1,3,4,5,6,7,9,11],"10":[0,1,3,6,7,11],"100":[7,8,9],"1000":5,"101":8,"104":8,"1048576":1,"10485760":1,"109":8,"11":[0,3,6,9],"115":8,"116":8,"12":[0,3,6,7],"121":8,"123":8,"1232004":7,"12341":5,"1234538":7,"1267":5,"127":[8,11],"129":8,"13":[7,8],"14":[0,6,7],"15":[5,7],"150":5,"156":5,"1563529507772":7,"16":[5,7],"17":[7,11],"178":5,"18":[0,3,6,7,8],"2":[0,1,3,4,5,6,7,9,11],"20":6,"200":[0,1,3,4,5,6,7],"201":[0,7],"2017":[5,7],"2018":[5,7],"2019":[0,3,5,6,7],"203":5,"204":[0,6,7],"22":[7,8],"24":8,"25":[8,11],"26":8,"27":[0,6],"279":7,"28":8,"280":7,"282":5,"2930":7,"2e1ee2c":8,"3":[0,1,4,5,6,7,9,11],"30":5,"3000":11,"301":11,"31":7,"33":8,"34":8,"34614d5":8,"36":8,"37":8,"39":7,"4":[0,4,5,6,7,11],"40":8,"400":[0,1,4,7],"401":[0,1,3,4,5,6,7],"403":[0,1,4,5,6,7],"404":[0,4,5,6,7],"41":8,"4109":7,"413":[0,7],"43":8,"44":[7,8],"443":11,"45":7,"46":[5,8],"465":11,"47":[5,7,8],"48":5,"4c3fc34":8,"5":[1,4,5,6,7,9,11],"50":[0,6,8],"500":[0,1,4,6,7],"5000":11,"5078118":7,"5079733":7,"51":7,"53":8,"54":8,"5432":11,"57":[7,8],"58":[0,6,8],"587":11,"59":8,"6":[0,4,6,7],"613":5,"62":8,"63":7,"64":8,"66":8,"67":[0,6],"7":[7,11],"70":8,"71":8,"72":8,"7380":7,"75":8,"78":5,"79":8,"8":[0,7],"80":[8,11],"8025":11,"81":8,"82":8,"83":8,"84":8,"895":[0,6],"9":[0,3,6,11],"90":8,"91":8,"93":8,"95":[5,8],"98":8,"99":[5,8],"9960":5,"boolean":[0,1,6],"case":9,"default":[5,6,7,8,9,11],"do":[1,4,5,6,7],"export":10,"float":[0,7],"import":[8,11],"int":[4,7],"new":[0,9,11],"null":[0,4,6,7],"return":[3,7,11],"short":7,"static":[8,11],"switch":8,"true":[0,1,4,6,8,11],"try":[0,6,7],A:[6,8,9],AS:[0,3,6,7],For:[9,11],If:[9,11],In:[8,9],It:[8,9,10,12],NO:[0,6,7],NOT:[0,4,7],No:[0,6,7,8,10],Not:[0,4,5,6,7],OF:11,ON:11,On:11,One:11,TO:11,The:[8,9,11],There:11,To:11,WITH:11,With:11,_:8,__main__:11,_blank:11,access:11,account:[6,8],acit:7,activ:[4,8,9,10,11],ad:[0,8,9],adapt:11,add:[6,8,9,10],addit:11,address:11,admin:[0,1,3,4,5,6,7,8,9,11],administr:[0,6,7,13],after:[8,11],again:[0,1,3,4,5,6,7],agplv3:8,all:[3,4,5,6,11],allow:[0,1,7,8,10],along:7,alpin:9,alreadi:0,also:[8,10,11],altitud:8,alwai:11,an:[1,4,6,7,8,9,11],android:10,anoth:[6,11],anymor:8,apach:10,api:[0,1,3,4,5,6,7,8,9,10,11],apikei:11,app:10,app_log:11,app_secret_kei:11,app_set:11,app_work:11,appear:9,applic:[0,1,3,4,5,6,7,8,9,10,11],ar:[3,7,8,9,10,11,12],arch:11,archiv:[1,8,9,11],archlinux:11,asc:6,ascent:[7,9],attribut:11,auth:[0,1,3,4,5,6,7],auth_token:0,authent:[1,2,3,4,7],author:[0,1,3,4,5,6,7],avail:[0,3,9,11],ave_spe:7,ave_speed_from:7,ave_speed_to:7,averag:[3,7,8,9],average_spe:5,axi:7,b862a77:8,b:11,background:8,backup:11,bad:[0,1,4,7],bearer:[0,1,3,4,5,6,7],becom:8,been:8,befor:[8,11],begin:11,better:8,between:9,bike:[4,7,8,9],bin:11,bio:[0,6],biographi:0,birth:[0,8],birth_dat:[0,6],bound:7,build:11,button:8,by_sport:5,by_tim:5,c:7,calcul:8,calendar:[8,9],can:[6,8,9,10,11,12],cannot:8,cd:11,chang:[9,10,11],charact:[0,8],chart:[7,8,9,11],chart_data:7,check:[1,11,12],choos:[8,9],client:[8,11],client_max_body_s:11,clone:11,code:[0,1,3,4,5,6,7],color:[0,4,8,9],com:[0,6,11],complet:8,compos:11,config:[1,11],configur:[2,8,9,11],confirm:0,contact:[0,6,7],contain:[8,9,11],content:[0,1,3,4,5,6,7],contributor:[1,8,11],control:8,coordin:11,copi:[1,11],copyright:[1,11],correctli:8,countri:9,cp:11,creat:[0,7,8,9,11],create_app:11,created_at:[0,6],creation:[8,9],creation_d:7,credenti:[0,11],criteria:6,cross:9,current:8,custom:11,cycl:[4,8,9],d:[0,5,7],dai:[8,9],dark:11,darkski:[8,9],dashboard:8,data:[0,1,3,4,5,6,7,8,9,10,11],databas:[8,9,11,12],database_disable_pool:11,database_url:[8,11],date:[0,5,7,8,9],db:11,debian:11,default_staticmap:[8,11],defin:9,definit:8,delet:[0,6,7,8,9],depend:[8,11],desc:7,descent:[7,9],describ:11,descript:11,detail:[6,8],develop:[8,10],dialect:12,differ:8,directli:11,directori:[8,11],disabl:[0,8,9,11],displai:[7,8,9,10,11,12],distanc:[3,7,8,9],distance_from:7,distance_to:7,distribut:11,docker:8,document:[8,10,11],doe:[0,5,6,7,8],don:0,down:8,download:[7,8,9,11],dramatiq:11,drop:8,dropdown:9,due:8,durat:[3,7,8,9],duration_from:7,duration_to:7,dure:[0,7],easi:8,edit:[0,8,9],electr:9,elev:[7,8,9,11],els:11,email:[0,6,8],email_url:11,empti:8,en:[0,6],enabl:[1,9],encount:11,end:[5,7],endpoint:[1,8],engin:[8,11,12],english:9,enter:[8,9],entiti:[0,7],entri:11,env:11,environ:[8,12],error:[0,1,4,6,7,8,9,11,12],europ:[0,6],evalu:[8,11],even:[8,9],exampl:[0,1,3,4,5,6,7,10,11],exc:12,exce:[0,7],exceed:8,except:6,execstart:11,exhaust:10,exist:[0,5,6,7,9,10,11],expir:[0,1,3,4,5,6,7],extens:[0,7],fa33f4d996844a5c73ecd1ae24456ab8:7,fail:[8,13],fals:[0,1,4,6,7,11],farest:[3,8,9],fd:[0,3,6,7],featur:[10,11],fetch:11,file:[0,1,7,8,9,10,11],filter:[8,9],first:[0,9],first_nam:[0,6],fitotrack:10,fittracke:[9,11,13],fittrackee_cli:11,fittrackee_init_data:11,fittrackee_upgrade_db:11,fittrackee_work:11,flask:11,flask_app:11,flaticon:11,fmstrat:8,follow:[3,9,11,12],forbidden:[0,1,4,5,6,7],forecast:11,form:[0,7],format:[0,5,7],former:11,forrunn:10,forward:11,found:[0,4,5,6,7],fr:6,frame:5,freepik:11,french:9,fri:7,from:[5,7,8,10],full:8,fullchain:11,gener:[8,11],get:[0,1,3,4,5,6,7],gif:0,git:11,github:11,given:[0,11],gmt:[0,3,6,7],gpl:10,gpx:[7,8,9,10,11],gpx_limit_import:1,gpxpy:[0,9,11],grant:11,graph:8,greater:8,gunicorn:[11,12],gz:11,h:[7,9],ha:[6,9],handl:[0,9,11],has_workout:4,have:[1,4,5,6,7,8],he:6,header:[0,1,3,4,5,6,7],health:1,heavi:[10,11],hexadecim:0,hi:[6,8,9],hike:[4,8,9],home:11,host:11,href:[1,11],http:[0,1,3,4,5,6,7,11],hvybqybra7wwxpastwr4v2:[0,3,6],i18n:8,icon:11,id:[0,3,4,5,6,7],imag:[0,6,7,8,9,11],imperi:[8,9],imperial_unit:[0,6],incorrect:8,index:7,info:0,inform:[8,10,11],init:11,initi:11,initialis:11,insid:11,instal:[8,10],instanc:[1,9,11],instead:9,integ:[1,4,5,6,7],interceptor:8,interfac:11,intern:[0,1,4,6,7],introduc:8,invalid:[0,1,3,4,5,6,7,8,11],io:11,ip:11,is_act:[0,4],is_active_for_us:4,is_registration_en:1,issu:[10,11],jan:7,javascript:8,john_do:6,jpeg:6,jpg:0,js:11,json:[0,1,3,4,5,6,7],jul:[0,3,6,7],keep:[8,10,11],kei:[8,9,11],kjxavsturjvoah2wvcegef:7,km:[7,9],label:4,languag:[0,6,9],larg:[0,7,9],larger:11,last:[0,11],last_nam:[0,6],latitud:7,layer:[8,11],ld:[0,3,6,7],leaflet:[7,11],least:7,legitim:8,less:8,librari:11,licens:[8,10],like:[9,11],limit:[8,9],link:11,linux:11,list:[8,10,11],listen:11,load:[8,12],local:[8,10,11],localhost:[8,11],locat:[0,6,11],log:[0,1,3,4,5,6,7,10,11,12],logfil:11,login:0,logo:11,logout:[0,8],longer:[8,12],longest:[3,8,9],longitud:7,m:[0,5,7],made:11,mai:[9,10,11],mailhog:11,major:8,make:[8,11],makefil:11,manag:8,mandatori:[7,8,11],map:[7,8,9,10],map_attribut:[1,11],map_id:7,map_til:7,match:0,max:[1,6,7,8],max_alt:7,max_single_file_s:1,max_spe:7,max_speed_from:7,max_speed_to:7,max_us:1,max_zip_file_s:1,maxim:7,maximum:[3,8,9],messag:[0,1,7,8],method:11,metric:9,migrat:8,min:8,min_alt:7,minim:7,miss:8,mobil:10,model:8,modifi:[6,8],modification_d:7,modul:11,mon:7,mondai:[0,5,9],montain:8,month:[5,8,9],more:[8,9,10,11],morn:7,mountain:[4,9],mous:8,move:[7,8],movement:8,mpwoadmin:11,ms:[0,3,6,7],multi:11,multipart:[0,7],must:[0,1,4,8,9,11,12],mv:11,n:0,name:[0,5,6,11],nano:11,nb_sport:[0,6],nb_workout:[0,5,6],necessari:[9,11],need:11,network:11,next:9,next_workout:7,nginx:[9,11],no_gpx:7,non:[4,10],noopen:11,noreferr:11,nosuchmoduleerror:12,note:[7,8,9,11],now:[8,9,11],number:[1,6,7,8,9,11],oauth:[0,1,3,4,5,6,7],object:[0,1,4,6,7],ok:[0,1,3,4,5,6,7],omit:11,one:[6,7,9],onli:[6,7,8,9,11],open:[10,11],openstreetmap:[1,8,11],opentrack:10,option:[8,11],order:[6,7,8],order_bi:6,org:[1,11],os:11,other:[6,11],out:0,outdoor:[8,10,11],over:8,overrid:9,overridden:9,overwrit:11,own:[6,10],owner:[8,9],packag:[8,11],paf38:8,page:[6,7],pagin:[6,7],par_pag:6,paramet:[0,4,5,6,7,8,9],pari:[0,6],pars:[8,11],part:[0,7],pass:11,password:[0,8,9,11],password_conf:0,patch:[1,4,6,7],path:11,paus:[7,8],payload:[0,1,4,7],pem:11,per:[6,7,8],per_pag:[6,7],period:9,permiss:[1,4,5,6,7],pg_dump:11,pictur:[0,6,7],ping:1,pip:11,pipenv:8,pleas:[0,1,3,4,5,6,7,8],plugin:12,png:[0,7,11],poetri:[8,11],point:[8,11],pong:1,pool:11,port:11,possibl:[8,10],post:[0,7],postgr:[8,12],postgresql:[8,11,12],prefer:[0,8],previous_workout:7,privileg:11,privkei:11,process:[0,9,11],productionconfig:11,profil:0,project:11,provid:[0,1,3,4,5,6,7,8,9,11],proxi:11,proxy_add_x_forwarded_for:11,proxy_pass:11,proxy_redirect:11,proxy_set_head:11,pull:11,purpos:[8,11],pwd:11,py:11,python:[8,11],q:6,queri:[5,6,7],queue:11,r:11,rais:9,read:8,real:11,rebuild:8,rechart:7,recommend:11,record:[0,2,6,7,8,9],record_typ:[0,3,6,7],redi:[8,11],redis_url:11,refactor:8,regist:[0,1,11],registr:[0,1,8,9],rel:11,relat:[9,11],releas:11,remain:8,remote_addr:11,remov:9,renam:8,replac:[8,11],repo:11,repositori:11,request:[0,1,3,4,5,6,7],request_uri:11,requir:0,reset:[0,8,9],respons:[0,1,3,4,5,6,7],restart:11,restartsec:11,right:[6,8,9],rout:8,row:9,run:[4,8,9,11],runner:10,s:[6,7,8,9,11],sam:[0,6],same:8,samr1:11,sat:6,save:[8,9],schema:11,screen:8,search:8,second:7,secret:11,see:[8,9,10,11],seem:8,segment:[7,8,9],segment_id:7,select:[0,7],send:[8,11],sender:11,sender_email:11,serv:11,server:[0,1,4,6,7,8,9,10],server_nam:11,servic:11,set:[8,9],sever:[10,11],shell:11,should:11,show:8,shown:8,side:8,signatur:[0,1,3,4,5,6,7],simpl:11,simplifi:8,sinc:11,singl:[1,6],size:[0,1,7,8,9],ski:9,sky:11,slow:8,smtp:[8,11],snowsho:[8,9],some:[6,7,8,10,11],sorri:0,sort:[6,7],spawn:11,speed:[0,3,7,8,9,11],spinner:8,sport:[0,2,5,7,8,9,11],sport_id:[0,3,4,5,6,7],sports_list:[0,6],sql:11,sqlalchemi:[8,11,12],ssl:11,ssl_certif:11,ssl_certificate_kei:11,standard:[8,11],standarderror:11,standardoutput:11,start:[0,5,7,8,9,11,13],startlimitintervalsec:11,starttl:11,stat:[5,8],staticmap:11,statist:2,statu:[0,1,3,4,5,6,7],step:11,still:[9,10],stop:[0,8,9,11],stopped_speed_threshold:[0,4],store:[9,10],street:10,string:[0,4,5,6,7],subdomain:7,success:[0,1,3,4,5,6,7],successfulli:0,sun:[0,3,6,7],sundai:[5,7,9],support:[8,9,12],syslog:11,syslogidentifi:11,system:[9,11],systemd:11,t:[0,8,12],tar:11,target:11,task:11,term:[8,11],test:11,textarea:8,than:8,thank:8,thei:11,them:10,thi:[7,8,9,10,11],threshold:[0,8,9],thunderforest:[8,11],tile:[7,8],tile_server_url:11,time:[0,5,7,8,9],timezon:[0,6,8,9],titl:7,tl:11,todo:14,token:[0,1,3,4,5,6,7],too:[0,7],tool:11,tooltip:8,total:[8,9],total_asc:5,total_dist:[0,5,6],total_dur:[0,5,6],track:10,trail:9,transport:[4,8,9],troubleshoot:10,type:[0,1,3,4,5,6,7,11],typescript:11,u:11,ui:8,ui_url:11,unauthor:[0,1,3,4,5,6,7],under:[10,11],unencrypt:11,unit:[8,11],unstabl:[10,11],up:[9,10],updat:[0,1,4,6,7,8,9,11],upload:[8,9,11],upload_fold:11,uploads_dir_s:5,uri:8,url:[8,11,12],us:[0,6,7,8,9,10,11],user:[0,1,2,3,4,5,7,8,9,11,13],user_id:0,user_nam:[5,6],usernam:[0,6,11],uuid:[7,8],v0:11,v3:10,valid:[0,1,3,4,5,6,7,8,11],valu:[0,3,6,7],variabl:[8,12],venv:11,version:[1,11],view:8,virtualenv:11,vue3:11,vue:11,vue_app_api_url:11,vuex:11,wa:8,wai:11,walk:[4,8,9],wantedbi:11,warn:8,weather:[8,9,11],weather_api:11,weather_api_kei:11,weather_end:7,weather_start:7,web:[0,10,11],week:[0,5,8,9],weekend:8,weekm:[0,5],were:8,wget:11,when:[0,1,8,9,11],where:11,which:9,with_gpx:7,without:[5,6,7,8,9,10],worker:11,workers_process:11,workingdirectori:11,workout:[0,2,5,8,10],workout_d:[0,3,6,7],workout_id:[0,3,6,7],workout_short_id:7,workouts_count:6,written:11,www:[1,11],x:[7,11],xml:7,xxxx:11,xzf:11,y:[0,5,7,11],yai:11,yarn:11,year:[5,9],yet:10,you:[1,4,5,6,7,10],your:[6,10,11],z:[7,11],zip:[1,7,8,9],zone:0,zoom:7},titles:["Authentication","Configuration","API documentation","Records","Sports","Statistics","Users","Workouts","Change log","Features","FitTrackee","Installation","Administrator","Troubleshooting","User"],titleterms:{"0":8,"01":8,"02":8,"03":8,"04":8,"07":8,"09":8,"1":8,"10":8,"11":8,"12":8,"14":8,"15":8,"16":8,"17":8,"19":8,"2":8,"2018":8,"2019":8,"2020":8,"2021":8,"2022":8,"21":8,"23":8,"29":8,"3":8,"30":8,"31":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"new":8,account:9,administr:[8,9,12],api:2,authent:0,avail:8,bug:8,chang:8,close:8,configur:1,content:10,dashboard:9,deploy:11,detail:9,dev:11,develop:11,docker:11,document:2,email:11,endpoint:[2,13],environ:11,fail:12,featur:[8,9],first:8,fittracke:[8,10,12],fix:8,french:8,from:11,improv:8,instal:11,issu:8,list:9,log:8,map:11,minor:8,misc:8,prefer:9,prerequisit:11,prod:11,product:11,pull:8,pypi:[8,11],record:3,releas:8,request:8,server:11,sourc:11,sport:4,start:12,statist:[5,8,9],tabl:10,tile:11,translat:9,troubleshoot:13,upgrad:11,user:[6,14],variabl:11,version:8,workout:[7,9]}}) \ No newline at end of file +Search.setIndex({docnames:["api/auth","api/configuration","api/index","api/records","api/sports","api/stats","api/users","api/workouts","changelog","features","index","installation","troubleshooting/administrator","troubleshooting/index","troubleshooting/user"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/auth.rst","api/configuration.rst","api/index.rst","api/records.rst","api/sports.rst","api/stats.rst","api/users.rst","api/workouts.rst","changelog.md","features.rst","index.rst","installation.rst","troubleshooting/administrator.rst","troubleshooting/index.rst","troubleshooting/user.rst"],objects:{"":[[0,0,1,"post--api-auth-login","/api/auth/login"],[0,1,1,"get--api-auth-logout","/api/auth/logout"],[0,0,1,"post--api-auth-password-reset-request","/api/auth/password/reset-request"],[0,0,1,"post--api-auth-password-update","/api/auth/password/update"],[0,2,1,"delete--api-auth-picture","/api/auth/picture"],[0,0,1,"post--api-auth-picture","/api/auth/picture"],[0,1,1,"get--api-auth-profile","/api/auth/profile"],[0,0,1,"post--api-auth-profile-edit","/api/auth/profile/edit"],[0,0,1,"post--api-auth-profile-edit-preferences","/api/auth/profile/edit/preferences"],[0,0,1,"post--api-auth-profile-edit-sports","/api/auth/profile/edit/sports"],[0,2,1,"delete--api-auth-profile-reset-sports-(sport_id)","/api/auth/profile/reset/sports/(sport_id)"],[0,0,1,"post--api-auth-register","/api/auth/register"],[1,1,1,"get--api-config","/api/config"],[1,3,1,"patch--api-config","/api/config"],[1,1,1,"get--api-ping","/api/ping"],[3,1,1,"get--api-records","/api/records"],[4,1,1,"get--api-sports","/api/sports"],[4,1,1,"get--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[4,3,1,"patch--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[5,1,1,"get--api-stats-(user_name)-by_sport","/api/stats/(user_name)/by_sport"],[5,1,1,"get--api-stats-(user_name)-by_time","/api/stats/(user_name)/by_time"],[5,1,1,"get--api-stats-all","/api/stats/all"],[6,1,1,"get--api-users","/api/users"],[6,2,1,"delete--api-users-(user_name)","/api/users/(user_name)"],[6,1,1,"get--api-users-(user_name)","/api/users/(user_name)"],[6,3,1,"patch--api-users-(user_name)","/api/users/(user_name)"],[6,1,1,"get--api-users-(user_name)-picture","/api/users/(user_name)/picture"],[7,1,1,"get--api-workouts","/api/workouts"],[7,0,1,"post--api-workouts","/api/workouts"],[7,2,1,"delete--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,1,1,"get--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,3,1,"patch--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data","/api/workouts/(string:workout_short_id)/chart_data"],[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"],[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx","/api/workouts/(string:workout_short_id)/gpx"],[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx-download","/api/workouts/(string:workout_short_id)/gpx/download"],[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"],[7,1,1,"get--api-workouts-map-(map_id)","/api/workouts/map/(map_id)"],[7,0,1,"post--api-workouts-no_gpx","/api/workouts/no_gpx"],[11,4,1,"-","APP_LOG"],[11,4,1,"-","APP_SECRET_KEY"],[11,4,1,"-","APP_SETTINGS"],[11,4,1,"-","APP_WORKERS"],[11,4,1,"-","DATABASE_DISABLE_POOLING"],[11,4,1,"-","DATABASE_URL"],[11,4,1,"envvar-DEFAULT_STATICMAP","DEFAULT_STATICMAP \ud83c\udd95"],[11,4,1,"-","EMAIL_URL"],[11,4,1,"-","FLASK_APP"],[11,4,1,"-","HOST"],[11,4,1,"-","MAP_ATTRIBUTION"],[11,4,1,"-","PORT"],[11,4,1,"-","REDIS_URL"],[11,4,1,"-","SENDER_EMAIL"],[11,4,1,"-","TILE_SERVER_URL"],[11,4,1,"-","UI_URL"],[11,4,1,"-","UPLOAD_FOLDER"],[11,4,1,"-","VUE_APP_API_URL"],[11,4,1,"-","WEATHER_API_KEY"],[11,4,1,"-","WORKERS_PROCESSES"]],"/api/workouts/map_tile/(s)/(z)/(x)/(y)":[[7,1,1,"get--api-workouts-map_tile-(s)-(z)-(x)-(y).png","png"]]},objnames:{"0":["http","post","HTTP post"],"1":["http","get","HTTP get"],"2":["http","delete","HTTP delete"],"3":["http","patch","HTTP patch"],"4":["std","envvar","environment variable"]},objtypes:{"0":"http:post","1":"http:get","2":"http:delete","3":"http:patch","4":"std:envvar"},terms:{"0":[0,1,3,4,5,6,7,9,11],"00":[0,3,6,7],"000000":0,"01":[0,3,5,6,7],"02":7,"03":[6,7],"04":7,"06":5,"07":[0,3,6,7],"08":[0,3,6],"09":[0,6],"0mb":[0,7],"1":[0,1,3,4,5,6,7,9,11],"10":[0,1,3,6,7,11],"100":[7,8,9],"1000":5,"101":8,"104":8,"1048576":1,"10485760":1,"109":8,"11":[0,3,6,9],"115":8,"116":8,"12":[0,3,6,7],"121":8,"123":8,"1232004":7,"12341":5,"1234538":7,"1267":5,"127":[8,11],"129":8,"13":[7,8],"131":8,"14":[0,6,7],"15":[5,7],"150":5,"156":5,"1563529507772":7,"16":[5,7],"17":[7,11],"178":5,"18":[0,3,6,7,8],"2":[0,1,3,4,5,6,7,9,11],"20":6,"200":[0,1,3,4,5,6,7],"201":[0,7],"2017":[5,7],"2018":[5,7],"2019":[0,3,5,6,7],"203":5,"204":[0,6,7],"22":[7,8],"24":8,"25":[8,11],"26":8,"27":[0,6],"279":7,"28":8,"280":7,"282":5,"2930":7,"2e1ee2c":8,"3":[0,4,5,6,7,9,11],"30":5,"3000":11,"301":11,"31":7,"33":8,"34":8,"34614d5":8,"36":8,"37":8,"39":7,"4":[0,1,4,5,6,7,11],"40":8,"400":[0,1,4,7],"401":[0,1,3,4,5,6,7],"403":[0,1,4,5,6,7],"404":[0,4,5,6,7],"41":8,"4109":7,"413":[0,7],"43":8,"44":[7,8],"443":11,"45":7,"46":[5,8],"465":11,"47":[5,7,8],"48":5,"4c3fc34":8,"5":[1,4,5,6,7,9,11],"50":[0,6,8],"500":[0,1,4,6,7],"5000":11,"5078118":7,"5079733":7,"51":7,"53":8,"54":8,"5432":11,"57":[7,8],"58":[0,6,8],"587":11,"59":8,"6":[0,4,6,7],"613":5,"62":8,"63":7,"64":8,"66":8,"67":[0,6],"7":[7,11],"70":8,"71":8,"72":8,"7380":7,"75":8,"78":5,"79":8,"8":[0,7],"80":[8,11],"8025":11,"81":8,"82":8,"83":8,"84":8,"895":[0,6],"9":[0,3,6,11],"90":8,"91":8,"93":8,"95":[5,8],"98":8,"99":[5,8],"9960":5,"boolean":[0,1,6],"case":9,"default":[5,6,7,8,9,11],"do":[1,4,5,6,7],"export":10,"float":[0,7],"import":[8,11],"int":[4,7],"new":[0,9,11],"null":[0,4,6,7],"return":[3,7,11],"short":7,"static":[8,11],"switch":8,"true":[0,1,4,6,8,11],"try":[0,6,7],A:[6,8,9],AS:[0,3,6,7],For:[9,11],If:[9,11],In:[8,9],It:[8,9,10,12],NO:[0,6,7],NOT:[0,4,7],No:[0,6,7,8,10],Not:[0,4,5,6,7],OF:11,ON:11,On:11,One:11,TO:11,The:[8,9,11],There:11,To:11,WITH:11,With:11,_:8,__main__:11,_blank:11,access:11,account:[6,8],acit:7,activ:[4,8,9,10,11],ad:[0,8,9],adapt:11,add:[6,8,9,10],addit:11,address:11,admin:[0,1,3,4,5,6,7,8,9,11],administr:[0,6,7,13],after:[8,11],again:[0,1,3,4,5,6,7],agplv3:8,all:[3,4,5,6,11],allow:[0,1,7,8,10],along:7,alpin:9,alreadi:0,also:[8,10,11],altitud:8,alwai:11,an:[1,4,6,7,8,9,11],android:10,anoth:[6,11],anymor:8,apach:10,api:[0,1,3,4,5,6,7,8,9,10,11],apikei:11,app:10,app_log:11,app_secret_kei:11,app_set:11,app_work:11,appear:9,applic:[0,1,3,4,5,6,7,8,9,10,11],ar:[3,7,8,9,10,11,12],arch:11,archiv:[1,8,9,11],archlinux:11,asc:6,ascent:[7,9],attribut:11,auth:[0,1,3,4,5,6,7],auth_token:0,authent:[1,2,3,4,7],author:[0,1,3,4,5,6,7],avail:[0,3,9,11],ave_spe:7,ave_speed_from:7,ave_speed_to:7,averag:[3,7,8,9],average_spe:5,axi:7,b862a77:8,b:11,background:8,backup:11,bad:[0,1,4,7],bearer:[0,1,3,4,5,6,7],becom:8,been:8,befor:[8,11],begin:11,better:8,between:9,bike:[4,7,8,9],bin:11,bio:[0,6],biographi:0,birth:[0,8],birth_dat:[0,6],bound:7,build:11,button:8,by_sport:5,by_tim:5,c:7,calcul:8,calendar:[8,9],can:[6,8,9,10,11,12],cannot:8,cd:11,chang:[9,10,11],charact:[0,8],chart:[7,8,9,11],chart_data:7,check:[1,11,12],choos:[8,9],client:[8,11],client_max_body_s:11,clone:11,code:[0,1,3,4,5,6,7],color:[0,4,8,9],com:[0,6,11],complet:8,compos:11,config:[1,11],configur:[2,8,9,11],confirm:0,contact:[0,6,7],contain:[8,9,11],content:[0,1,3,4,5,6,7],contributor:[1,8,11],control:8,coordin:11,copi:[1,11],copyright:[1,11],correctli:8,countri:9,cp:11,creat:[0,7,8,9,11],create_app:11,created_at:[0,6],creation:[8,9],creation_d:7,credenti:[0,11],criteria:6,cross:9,current:8,custom:11,cycl:[4,8,9],d:[0,5,7],dai:[8,9],dark:11,darkski:[8,9],dashboard:8,data:[0,1,3,4,5,6,7,8,9,10,11],databas:[8,9,11,12],database_disable_pool:11,database_url:[8,11],date:[0,5,7,8,9],db:11,debian:11,default_staticmap:[8,11],defin:9,definit:8,delet:[0,6,7,8,9],depend:[8,11],desc:7,descent:[7,9],describ:11,descript:11,detail:[6,8],develop:[8,10],dialect:12,differ:8,directli:11,directori:[8,11],disabl:[0,8,9,11],displai:[7,8,9,10,11,12],distanc:[3,7,8,9],distance_from:7,distance_to:7,distribut:11,docker:8,document:[8,10,11],doe:[0,5,6,7,8],don:0,down:8,download:[7,8,9,11],dramatiq:11,drop:8,dropdown:9,due:8,durat:[3,7,8,9],duration_from:7,duration_to:7,dure:[0,7],easi:8,edit:[0,8,9],electr:9,elev:[7,8,9,11],els:11,email:[0,6,8],email_url:11,empti:8,en:[0,6],enabl:[1,9],encount:11,end:[5,7],endpoint:[1,8],engin:[8,11,12],english:9,enter:[8,9],entiti:[0,7],entri:11,env:11,environ:[8,12],error:[0,1,4,6,7,8,9,11,12],europ:[0,6],evalu:[8,11],even:[8,9],exampl:[0,1,3,4,5,6,7,10,11],exc:12,exce:[0,7],exceed:8,except:6,execstart:11,exhaust:10,exist:[0,5,6,7,9,10,11],expir:[0,1,3,4,5,6,7],extens:[0,7],fa33f4d996844a5c73ecd1ae24456ab8:7,fail:[8,13],fals:[0,1,4,6,7,11],farest:[3,8,9],fd:[0,3,6,7],featur:[10,11],fetch:11,file:[0,1,7,8,9,10,11],filter:[8,9],first:[0,9],first_nam:[0,6],fitotrack:10,fittracke:[9,11,13],fittrackee_cli:11,fittrackee_init_data:11,fittrackee_upgrade_db:11,fittrackee_work:11,flask:11,flask_app:11,flaticon:11,fmstrat:8,follow:[3,9,11,12],forbidden:[0,1,4,5,6,7],forecast:11,form:[0,7],format:[0,5,7],former:11,forrunn:10,forward:11,found:[0,4,5,6,7],fr:6,frame:5,freepik:11,french:9,fri:7,from:[5,7,8,10],full:8,fullchain:11,gener:[8,11],get:[0,1,3,4,5,6,7],gif:0,git:11,github:11,given:[0,11],gmt:[0,3,6,7],gpl:10,gpx:[7,8,9,10,11],gpx_limit_import:1,gpxpy:[0,9,11],grant:11,graph:8,greater:8,gunicorn:[11,12],gz:11,h:[7,9],ha:[6,9],handl:[0,9,11],has_workout:4,have:[1,4,5,6,7,8],he:6,header:[0,1,3,4,5,6,7],health:1,heavi:[10,11],hexadecim:0,hi:[6,8,9],hike:[4,8,9],home:11,host:11,href:[1,11],http:[0,1,3,4,5,6,7,11],hvybqybra7wwxpastwr4v2:[0,3,6],i18n:8,icon:11,id:[0,3,4,5,6,7],imag:[0,6,7,8,9,11],imperi:[8,9],imperial_unit:[0,6],incorrect:8,index:7,info:0,inform:[8,10,11],init:11,initi:11,initialis:11,insid:11,instal:[8,10],instanc:[1,9,11],instead:9,integ:[1,4,5,6,7],interceptor:8,interfac:11,intern:[0,1,4,6,7],introduc:8,invalid:[0,1,3,4,5,6,7,8,11],io:11,ip:11,is_act:[0,4],is_active_for_us:4,is_registration_en:1,issu:[10,11],jan:7,javascript:8,john_do:6,jpeg:6,jpg:0,js:11,json:[0,1,3,4,5,6,7],jul:[0,3,6,7],keep:[8,10,11],kei:[8,9,11],kjxavsturjvoah2wvcegef:7,km:[7,9],label:4,languag:[0,6,9],larg:[0,7,9],larger:11,last:[0,11],last_nam:[0,6],latitud:7,layer:[8,11],ld:[0,3,6,7],leaflet:[7,11],least:7,legitim:8,less:8,librari:11,licens:[8,10],like:[9,11],limit:[8,9],link:11,linux:11,list:[8,10,11],listen:11,load:[8,12],local:[8,10,11],localhost:[8,11],locat:[0,6,11],log:[0,1,3,4,5,6,7,10,11,12],logfil:11,login:0,logo:11,logout:[0,8],longer:[8,12],longest:[3,8,9],longitud:7,m:[0,5,7],made:11,mai:[9,10,11],mailhog:11,major:8,make:[8,11],makefil:11,manag:8,mandatori:[7,8,11],map:[7,8,9,10],map_attribut:[1,11],map_id:7,map_til:7,match:0,max:[1,6,7,8],max_alt:7,max_single_file_s:1,max_spe:7,max_speed_from:7,max_speed_to:7,max_us:1,max_zip_file_s:1,maxim:7,maximum:[3,8,9],messag:[0,1,7,8],method:11,metric:9,migrat:8,min:8,min_alt:7,minim:7,miss:8,mobil:10,model:8,modifi:[6,8],modification_d:7,modul:11,mon:7,mondai:[0,5,9],montain:8,month:[5,8,9],more:[8,9,10,11],morn:7,mountain:[4,9],mous:8,move:[7,8],movement:8,mpwoadmin:11,ms:[0,3,6,7],multi:11,multipart:[0,7],must:[0,1,4,8,9,11,12],mv:11,n:0,name:[0,5,6,11],nano:11,nb_sport:[0,6],nb_workout:[0,5,6],necessari:[9,11],need:11,network:11,next:9,next_workout:7,nginx:[9,11],no_gpx:7,non:[4,10],noopen:11,noreferr:11,nosuchmoduleerror:12,note:[7,8,9,11],now:[8,9,11],number:[1,6,7,8,9,11],oauth:[0,1,3,4,5,6,7],object:[0,1,4,6,7],ok:[0,1,3,4,5,6,7],omit:11,one:[6,7,9],onli:[6,7,8,9,11],open:[10,11],openstreetmap:[1,8,11],opentrack:10,option:[8,11],order:[6,7,8],order_bi:6,org:[1,11],os:11,other:[6,11],out:0,outdoor:[8,10,11],over:8,overrid:9,overridden:9,overwrit:11,own:[6,10],owner:[8,9],packag:[8,11],paf38:8,page:[6,7],pagin:[6,7],par_pag:6,paramet:[0,4,5,6,7,8,9],pari:[0,6],pars:[8,11],part:[0,7],pass:11,password:[0,8,9,11],password_conf:0,patch:[1,4,6,7],path:11,paus:[7,8],payload:[0,1,4,7],pem:11,per:[6,7,8],per_pag:[6,7],period:9,permiss:[1,4,5,6,7],pg_dump:11,pictur:[0,6,7],ping:1,pip:11,pipenv:8,pleas:[0,1,3,4,5,6,7,8],plugin:12,png:[0,7,11],poetri:[8,11],point:[8,11],pong:1,pool:11,port:11,possibl:[8,10],post:[0,7],postgr:[8,12],postgresql:[8,11,12],prefer:[0,8],previous_workout:7,privileg:11,privkei:11,process:[0,9,11],productionconfig:11,profil:0,project:11,provid:[0,1,3,4,5,6,7,8,9,11],proxi:11,proxy_add_x_forwarded_for:11,proxy_pass:11,proxy_redirect:11,proxy_set_head:11,pull:11,purpos:[8,11],pwd:11,py:11,python:[8,11],q:6,queri:[5,6,7],queue:11,r:11,rais:9,read:8,real:11,rebuild:8,rechart:7,recommend:11,record:[0,2,6,7,8,9],record_typ:[0,3,6,7],redi:[8,11],redis_url:11,refactor:8,regist:[0,1,11],registr:[0,1,8,9],rel:11,relat:[9,11],releas:11,remain:8,remote_addr:11,remov:9,renam:8,replac:[8,11],repo:11,repositori:11,request:[0,1,3,4,5,6,7],request_uri:11,requir:0,reset:[0,8,9],respons:[0,1,3,4,5,6,7],restart:11,restartsec:11,right:[6,8,9],rout:8,row:9,run:[4,8,9,11],runner:10,s:[6,7,8,9,11],sam:[0,6],same:8,samr1:11,sat:6,save:[8,9],schema:11,screen:8,search:8,second:7,secret:11,see:[8,9,10,11],seem:8,segment:[7,8,9],segment_id:7,select:[0,7],send:[8,11],sender:11,sender_email:11,serv:11,server:[0,1,4,6,7,8,9,10],server_nam:11,servic:11,set:[8,9],sever:[10,11],shell:11,should:11,show:8,shown:8,side:8,signatur:[0,1,3,4,5,6,7],simpl:11,simplifi:8,sinc:11,singl:[1,6],size:[0,1,7,8,9],ski:9,sky:11,slow:8,smtp:[8,11],snowsho:[8,9],some:[6,7,8,10,11],sorri:0,sort:[6,7],spawn:11,speed:[0,3,7,8,9,11],spinner:8,sport:[0,2,5,7,8,9,11],sport_id:[0,3,4,5,6,7],sports_list:[0,6],sql:11,sqlalchemi:[8,11,12],ssl:11,ssl_certif:11,ssl_certificate_kei:11,standard:[8,11],standarderror:11,standardoutput:11,start:[0,5,7,8,9,11,13],startlimitintervalsec:11,starttl:11,stat:[5,8],staticmap:11,statist:2,statu:[0,1,3,4,5,6,7],step:11,still:[9,10],stop:[0,8,9,11],stopped_speed_threshold:[0,4],store:[9,10],street:10,string:[0,4,5,6,7],subdomain:7,success:[0,1,3,4,5,6,7],successfulli:0,sun:[0,3,6,7],sundai:[5,7,9],support:[8,9,12],syslog:11,syslogidentifi:11,system:[9,11],systemd:11,t:[0,8,12],tar:11,target:11,task:11,term:[8,11],test:11,textarea:8,than:8,thank:8,thei:11,them:10,thi:[7,8,9,10,11],threshold:[0,8,9],thunderforest:[8,11],tile:[7,8],tile_server_url:11,time:[0,5,7,8,9],timezon:[0,6,8,9],titl:7,tl:11,todo:14,token:[0,1,3,4,5,6,7],too:[0,7],tool:11,tooltip:8,total:[8,9],total_asc:5,total_dist:[0,5,6],total_dur:[0,5,6],track:10,trail:9,transport:[4,8,9],troubleshoot:10,type:[0,1,3,4,5,6,7,11],typescript:11,u:11,ui:8,ui_url:11,unauthor:[0,1,3,4,5,6,7],under:[10,11],unencrypt:11,unit:[8,11],unstabl:[10,11],up:[9,10],updat:[0,1,4,6,7,8,9,11],upload:[8,9,11],upload_fold:11,uploads_dir_s:5,uri:8,url:[8,11,12],us:[0,6,7,8,9,10,11],user:[0,1,2,3,4,5,7,8,9,11,13],user_id:0,user_nam:[5,6],usernam:[0,6,11],uuid:[7,8],v0:11,v3:10,valid:[0,1,3,4,5,6,7,8,11],valu:[0,3,6,7],variabl:[8,12],venv:11,version:[1,11],view:8,virtualenv:11,vue3:11,vue:11,vue_app_api_url:11,vuex:11,wa:8,wai:11,walk:[4,8,9],wantedbi:11,warn:8,weather:[8,9,11],weather_api:11,weather_api_kei:11,weather_end:7,weather_start:7,web:[0,10,11],week:[0,5,8,9],weekend:8,weekm:[0,5],were:8,wget:11,when:[0,1,8,9,11],where:11,which:9,with_gpx:7,without:[5,6,7,8,9,10],worker:11,workers_process:11,workingdirectori:11,workout:[0,2,5,8,10],workout_d:[0,3,6,7],workout_id:[0,3,6,7],workout_short_id:7,workouts_count:6,written:11,www:[1,11],x:[7,11],xml:7,xxxx:11,xzf:11,y:[0,5,7,11],yai:11,yarn:11,year:[5,9],yet:10,you:[1,4,5,6,7,10],your:[6,10,11],z:[7,11],zip:[1,7,8,9],zone:0,zoom:7},titles:["Authentication","Configuration","API documentation","Records","Sports","Statistics","Users","Workouts","Change log","Features","FitTrackee","Installation","Administrator","Troubleshooting","User"],titleterms:{"0":8,"01":8,"02":8,"03":8,"04":8,"07":8,"09":8,"1":8,"10":8,"11":8,"12":8,"14":8,"15":8,"16":8,"17":8,"19":8,"2":8,"2018":8,"2019":8,"2020":8,"2021":8,"2022":8,"21":8,"23":8,"29":8,"3":8,"30":8,"31":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"new":8,account:9,administr:[8,9,12],api:2,authent:0,avail:8,bug:8,chang:8,close:8,configur:1,content:10,dashboard:9,deploy:11,detail:9,dev:11,develop:11,docker:11,document:2,email:11,endpoint:[2,13],environ:11,fail:12,featur:[8,9],first:8,fittracke:[8,10,12],fix:8,french:8,from:11,improv:8,instal:11,issu:8,list:9,log:8,map:11,minor:8,misc:8,prefer:9,prerequisit:11,prod:11,product:11,pull:8,pypi:[8,11],record:3,releas:8,request:8,server:11,sourc:11,sport:4,start:12,statist:[5,8,9],tabl:10,tile:11,translat:9,troubleshoot:13,upgrad:11,user:[6,14],variabl:11,version:8,workout:[7,9]}}) \ No newline at end of file diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html index 45f86338..fdc4a3a0 100644 --- a/docs/troubleshooting/administrator.html +++ b/docs/troubleshooting/administrator.html @@ -5,7 +5,7 @@ - Administrator — FitTrackee 0.5.3 + <title>Administrator — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4
                                      diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index 4ee6d729..37f9f434 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -5,7 +5,7 @@ - Troubleshooting — FitTrackee 0.5.3 + <title>Troubleshooting — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4
                                      diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html index 1d6e60e0..161dddee 100644 --- a/docs/troubleshooting/user.html +++ b/docs/troubleshooting/user.html @@ -5,7 +5,7 @@ - User — FitTrackee 0.5.3 + <title>User — FitTrackee 0.5.4 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.5.3 + 0.5.4
                                      diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png index 57b281878bad3033b6a0999dfd87c76bdfbed9c2..bff294de3d3800c2cb5211fcdb2633fe84aa441a 100644 GIT binary patch delta 18880 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� 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 N@O1TaS?83{1OPR>W*`6n delta 18867 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 diff --git a/docsrc/source/_images/fittrackee_screenshot-02.png b/docsrc/source/_images/fittrackee_screenshot-02.png index f371029f52b78fa6a0354821ab7067b95a6c49c1..3d72b92412dc934aed1a0271e61301613a92ed02 100644 GIT binary patch delta 21381 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 fNtlu>XHR70aE0x|LZ7qyL7S}jo delta 21356 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∓uXxtX92r~ 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 diff --git a/docsrc/source/_images/fittrackee_screenshot-03.png b/docsrc/source/_images/fittrackee_screenshot-03.png index e6fe4ffeeb3fa1a6c6e1f0bd064ff86f7596ed19..85bdd58e803d780f6a6ba72383ebb12842a20e47 100644 GIT binary patch delta 27262 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⋁* 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 UfRCf`cdk!C?&Z@`S>reV2d^uuX#fBK delta 27257 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

                                      ipOIL1OfvS>zvpZgdM9(lzbwt{Hjv<*EJ||QH4@gN*9MNRpZ0YDb;pR zbJyIa{&gGG{K%79_q8ucl5To&owl@XP{@&|WW6QV^o%+ZZR4I4{brDZ4*-AxR8#^0 zaEe&X9$mEja!Jy2FFvfD>DSZ~Jak4^QjT<76_pczFjYg!)4ET^hR4LjDKMf^HnGi8 zVw*M8-c9jFIf@smxp7B!e{^}|iEdGaf4E|=A(GUto}}DPm)y>=m3%w4?be13uS=3< zmR0DE+uwIWo9TACvccwvK-6?k-gzZ%#kAG2anx;TD=lRthvAS6$zeI%$+vYf`s&u)^|x zc*U)l8m&5Y`5M)cXw`nt_MuA3F~^{h&IXp&z|RB0TfwwkoqJ2Qe15;y+;N8f2AV-9c_6A$%Tx|=0QMgEfGZWo8)P{@_1qI9`Bmk!TV zHTUk1Y2(+vq24`py5@lgq-ad}mt3TO{7WuUYk692kro9*eq}OU+4Y1B^|;zcRiX|G zI0Et~a+QfP91H*eL)Qm10RRA#FW#M2*{p0I-K9&HX;JbVJ^%U(>Ioh?Wsg}?RHKrC zaI#n-DVTlymPn7bwQf6Y&pladDd2QYxa;?Xg9E=)slKy!w%ox0c(U6S<2!tR{K~{O zOFP1^six=>_4RC0ZozcK$zx1>9MeYcKJ_HKq_`xnq~r-acqZEoeD>9qdTHHD`tV0Spr8Ka z7g}@29oo^qX()Ki^jlJ&sqS5Weafv4$}F*@s*G~0{4xU*3+u)U{EnohS_wo9bb<<-SY-=#<2_>GKHQ0O=IMnb?AUX`MHz+oGN@X z^~dNlL&sFW5m30lOgnG8afrS;{RM2q~qbR!<)Lh1Aizg$Fb0=xA4deu1p0Ti!gk zN?c{~MZ#kP$)n7}y<6wrI^1R7D#=lQs#iC?xK5qhcPQWwC{X=f zZLc=5gWUiCAOJ~!L_t*DrnEPqzI4~9bp;#&dAoC!?6Kr3F%_k(f+a;*Y8(%f4dfcRV>z=1q-yO_+5Id_r*ya zr?SXjtl2qbN~b-F#-a)ZeM(yiTb{QSmh!{C(>A#ba3UOj=eQxcGnfsoMh2FyXk10D z8&#HcDrZ5ZtnhNh(s`<1msH-ukQ~j=DA8faSG8XYi*D1Fj_iFKB1yTOhN?p@J@~*Q zy5jn4^!rDDf3Hv9bLzg}bU0l~XR?pqpYB&dZb}D|2Nlm87Ql`yN<3EBceo=g@30(7 z8)+5J%~PAYv}wz$diP~F>;B(9qKhwBsrH@@Ir}n71q_+6tOrlzua)WRIoH^r$*gy-Fw33Z@yO5&(dq&to(JFuq?t_=LXm-~X%6{>caR z)h~QT!GK@8YwHvY1Wx<5#1ly!YHroiMGLZ@&kaN8FFxmp%m3t84{O^eVQS15^9rEs+l&~`B%F($+Gu7TAb#^x^5Ok{PP>*KM4cqga zCm2vtO?mth+bp@m2D5&j?1$f@?0bW^4+fUb);i5SRIBN;SIXh?3@z6bNvgjjr~~_Z zRN%i!RV97$_3l@D?LTP7+%?*-nUbV^Jqhi9sXwH?bVAQQ{;ZZPUUEvGo7dq}VnitE zH9V7WP-}D`c%*R99R6G3+&nc#TUEPtuP(k|rCzJuq|g1I %YMSB`|sy)**R8e`{ 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 IQYHca0qMl61^@s6 diff --git a/docsrc/source/_images/fittrackee_screenshot-04.png b/docsrc/source/_images/fittrackee_screenshot-04.png index d1f61671a5912eddb02166f4c4bc312658d8ddc4..d1f6c113d39eae262968cc1a9bf8c320275be2b9 100644 GIT binary patch delta 19246 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 MQA45f)w@ss3r`{Q!vFvP delta 16379 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 diff --git a/docsrc/source/_images/fittrackee_screenshot-06.png b/docsrc/source/_images/fittrackee_screenshot-06.png index 7a921086cdd69cfa7f9800a927142ad12d00980f..8e80445176e4c2604474f826f6524ca3acc20394 100644 GIT binary patch delta 16359 zcmbum2UHYIv@SX(R8aUuK|q3mjDP||4k7{q0z=L@4_O#8w2F!-L9&u_8iM2uiXusJ zk}Nq40|*RZVBps1|JFJ8o_p4NXT4ejwoFxb^{(Buzwg_--&BzlRFkBhf{yFIZPT2V zGV+?>JaxdK(o@_KR_O#k7G74;PVSK`9oo2*(BmKrQCwt_?(S)2G7;h-B*t9DSH)yZ z^c;-(+_SXnE5bvQG(R&z2{dKsM`$+YPTDRwdLGJ1o z{Q>gv1I8jz)!NE;PPL1b2GEjg^%v?4lkeA)y`=nvc@^0k@veNdxN%35hnM*;9MES< zZ01AjElE~rhQ$Kb0&xbJ1`9sVx4(Fsx~7dkRaL%lqw5S{dFJn3{Kfi4ya=KF-qT;Z z41?~ckM@s``s+#fJ_vM--H!RZYyUQRg6v|mg1f2d>~G|CokfXLx6D_dZ`Ou4&sc`4 zxQvd@`n!fbAiaomm<(DLqjljpXlIoOjcO0|GKyDvD<DsL zZbiG67;R&#_I$LXqT~6pITf*uQmc{4WWBlpJob>cbaB1lAc})QH(76PNS#qb_*GP< z$Q`q(NAlm_Wj}kd8_&9kogts)m%o5i1@@&%fEWNF(&4nhPwwMXFNWD?l&Zu1QJ0$H#we;3cB@}ry zgT(x#d~SxrZlpVjQ%Webo`|fnsuc9l<#ssj!3u|SoT?Sh?vcG1HapfGmY6Ut(IR?% zV{JvM*w6Sw#?s;wL#^F0j}n%3oAsM@K|g6fSjNzH&Z=y1+)Vl4S9p^)hEl%$BcFra zj>^EUp@!M7{BKL+=?VtE(li-6!tII5Y68>u!_IB7r{vsAOtbCW)8ZaCKBC)pC>k}? zAF3^yF$gh=rAEyyV!AaBTl-Q1TfW|(M-7|#JTt4!D8EzO=RH#+?Q4Qe`mrF&GCGhL zu=&pY9;%np#mt80%ka*6xo9E$Oul)U>e-(c&uS4KrIvA#pFeea;J8eH;{Dl6pXc8_ zDlt1H3xl0{71eu{0g{b)8%Xtto^SAlskG)dH8kQSX_~g}(3klvs5kSLf~)H_Lo)K? zyV?wfi71o{)!8ph|H!kk$zJF9-I&>X`}+;X1L2M2ufBVy9ya_CKwHrFx{p6$nKfsv zJ@oS|fvw;iNkI{fKM$M#^8wz}WoSdrnw0dvD} z|84mP(}FIpll{>Wzn-3_@#C}9@W{H!eJkbsRL}Cq(g!Epy=9ACg*D*==Wi;PDNe!8 z2R$f%Fp81fTX#wsZ<6RbAix}ppJu&N2sjIaT~)Qy)OFWYej;j7W=Hk>G_$1{ztw%X zl_0kjzqJLofPj@Sx3Hyv6*vEVAuDSuK7P2sec>o_nmjTgetr=+-#z|&_wJW9(-e_J zG13__TM1jjtu2Lwxh>5Ft+)jQ`31Pm?puTZ!bPm%{DS5d!f>;w=Qm{k;p4t{AAB_V z_(TQxMeoDQ%$b}noK@cHRgD^C<3CTuMS&7Z3JxS^uOeqZg%p956V}~()#WxXQ>Vg;r<@2Y{&g9$9^B~T?y?xrM=XC7lSL*uu%h`5OtW8p+ z5o6S3r|o8Ne&Tqq_fc*tDpE^^c3X?0BeIB#)$J#ay7Q!WY}Urr3x6~Byt>*Ta0*6j z6YYVNu=NNHa};!V-_STGO%CqV)&A!zn3H_C;%8;;%QP}qV6e~L1D~XgST=rUP~TT( z|IWb-j!1BKm=#C@pTB^?Tp0T@D8aDm3*Rc<_PrfaP@F0WGS|H2-O5;~o0Lg{lCio+ z(?Nj2p1FlH#(<8WWpCacOn>fQXXm!X1G+qdq&fRi176m;+j59tw*pq6>5)SJw%dJ-f9%7kbB41TM8yv2_`J8tSE$o z{{MNDr2yT++?>X)?B@Xu!31TMoTyJ*nRK+5NIpJc{n%xFu)p7C3kgtao`$(3{{w!* zVAq4M-bxG#3aW2t(9+jee5|Js8X}h=E+KJ|;}lG|=K?1%-?Mk$+M~WE()dQCmYRpE z6j8xo!qC6pT)IUMgXIQ`v;Q?S4CZ+!7x*Hv{qi_VGyt(pgryRV2HLZ6=*pi9gJT!5 zKle-gv(u8oMIN4DE+O^5gAv@5wdGkCgq<&NdI$b{>WMIerhgBs8KhZ=!$7P0f4koQ zc{zwU%1It^k@zoIAMBqyAs$vIv9Z9A#n|yG`}Rndj zGKhLMZ{@o@WC%M7!xn!S6zr=w4i@WNCshxg zXYkz_c)>#Vvnqjj2D;F*u`pPo{MncX+zVK&(aO_@VC@kfFDF!SG-}+acw_hQe!fe( zU_z88LWaL!((N(%!1dz$D@7j z$(%cPj+2v9-OesAQHAZ*DKIEio&})mVj$`Etpz$Sify-$)INX&5>m{tT=27P$n4qYn#6bdjLKi{T zPD@Km+wMdWU}P8W@kakTxlp>S3C6!b#mvrGNuXfVD+Nuqegag7t`ztU?ZP z5^E^60=0dpe$EL7?+xOZgr%a>;hjT`XJBW1dG zuaW)vW)RY6jD{^~L=5F`EFP!(A5y4?AayH{S~c(a*x4UT`0V7m8~y8-h=ePev-Nr@ zJ3%CqUf}`9R>7q2-m*W2f9P6#8ZL%fWp;Mn;2h~`YwKMdLc{Hc@3Js68-7C7VAE`H z9d%J1+)B!wy}5_SMoxOcUD@RR^0u9oMo`Ygba`<=@6Yoo9unQ6@fpJs#cFbk5u}(g zY!=}F&Y)| zF0xWE@N9F~)$aU|ZG)|lkO-|!_qBoBQ?{HVh1ndGJ)FikjSx-(^jHLMoXg89ojQ6f zFLkiSguMez6^puTPijdzOC@GaCgD3HOdfnW1*`u2516IbOeh6>J=@-W@_oRyIRPWo zkk&$ThlX;lTd7KtsL?0*${18q=z*OqF31omvTEWrL4RNkEw@|{9Vx9ysLXde9NyZz zmpC+X(sbAg9C_F<5#|!>FkPWqb%N1jXz%XZ=p0$C*vm#l(`5^L2YGm|Zs12pHbfcd zPMjGG8nY*Sp39tXgC01O0?Tz@h+6rTXwW307gQF8{LzNy_)c33t>&YdiEgS@boJV` zOyG1a-@kJT3hurrlHaxtrE<79n2%DRn{+QM?@U>-R}(XXq3nb;?+67EqTMcc2{bWSKug1iLx8&LUfk`yZe9 z>}s(PN@OCgpxpPCudMoev%Phr%O~Y(XlS4UCKB7I-%iha^~Dt77bILL&Zx;+G?hBc zZ82D=VW51lB{u5dq0s-ma2&UmvDel!B423mefj%L;5C|G#V=braTE4T%Wv0{tOV#( z5A?kcpmRR!LwmT5^UgY&gf`9*-?^`L@%xKpNO~=kt2TZaHpbqn4RxsKKHEX`hVn4+ zym+_peB(*c_`^<0Pq$Hgug`LAFH~K-ms>1;`b;!*(4WA!k7r+-@ttR9*Ib0AwfkOoJ*AFo z(=0A(Ht{nw4$VM042d!jT=LgwKSpLg<2q#DNvk_PGH~WwX{);$bE5HLe&*ImfCQE3 zu?KB^JtuuwS-IwDii*xuINAJNo(Sh04^rP*Y1+WkB04bGU}ZQh*m1@xlYA=hLJ705t13&(#vnURvfBVc^s^`CSw~p;xw0PR)gH z#u(wHu*G@g5mv~~rHL`J z!)Zys7TK`KtDn6XCy@Oh=N1b~R{ugM9lUlKd1d;(ifYqV@-9{?Hw!(y(%m=GX?ic$ zH;!CCv05(e7IljW^^!gW;YZvAe2<+)qa*TWXCq66J~yo>A56{jR``z?ckOS+G@Ya` zE@AMVZ&)5jYHDg05Y7e7y9jr$zLbO^687;Qs3_?(Eo8M7`s1d%w44GODRmrgX4e1X z<<&+*SxWX(I!1bTatEsvKpF!QNw7i;_Oh!O3Ldo(nOG_s*f`B z^Nb90pmZ|op;gUqx&=Q;rCXjM`J18#Zi`&*M+|%<2Fwc5LYH;MlET~U$~sMFG2}2< z#YL#bwcFd*yB)(@wIWb(JuPFj=Gv0O(9iM1^uwgDUmp&YtI2fX?@K>F4tVQ?@G$TQ z-zWEhwoV3b@-52CF7&^jspx(wsS`Cs+q1x)9S_`H+x+@FjeF|Zs}8Y<}& zjeO?fDc&tfqIuE9k@L2|%H)Sch`Z@|7uT(AT;HIlaX*M)+DQG^%y#R|EDOW8G7B0K zJ?a$8!a8Wo^EMMto=t6C*wN_@agN4)4=SAyFpM=Qin~MtQ61H49+WNR2}qfc1WL2` zs?WO%8;;Wjazn?`F_r~aIS(T;Vi*G@_?7gWp@KV1Pk0P|xwQSVh|NeveE)S*1t7_a z3(_pzHFB3R_Foq*N6xZEmfLTf!eMAtT~#!+BskGxSNC6K+qYKgS0WpHzL_lQQ$uXGG0)l zPJ?_oKk9{&W>2N#IHysg4-V-#-AG7B%a4RPR{fzsV}}|n3gk9=J(tTy4eVAvDvG?%UQ4WhTI|}1k{QfDVDZ^n z@C4qkdPswjm&?_QvTZm%zUBzxu>!Q#o09^4ZMpO-T|-FxiN>_Q!ez`5iu+DxK~kb% zox^#+YVBT^P8~l=qnO|b|NM*;L$&b}TMMyFfQ>c;^>Bf`G=JxDrTCHGg1?{cHB77{ z=crM@+E)LB_(Fh$L3h9UD1SKn9yHxv>>REb&Sts{vr@$yR-QTEdE9uNQR8=IQX)GH zhP>sYIh$xdnf`Ig>sZbI-U65MzDquxJiK?l%2+e0*A&FEr%#`{?{Auo%;n~?L)hu2 zX`B}TpL9|IN3!seZY$TqYxLK0$sP4$45rHL<*h8OYZ#}6{oYqPjAxcZ`Oeg|2d^r!A%yUW_tEq(3T*CK6Q7nUaZ#VXXNnriEy~?5R zwEw}h&oPcdV6_qIq`a02-6HrPhZD~k4#Iduub>{nag%X7gV0nT)npwpY_cnIm(_K~ zL^4|-p4A(`b>?4QUl=Gc%EH91O=RrIr$m)i>yq&D9vDx_KG&g$ycFrYv^yqsr0p&D zva{}hWvi)FwZ`#G(B)_X;@+hB0X)$}+3?s$VNRZ3rZnHMv)<==Rj=(x%Sm z_s3gKQz2JLU=O%0Ttt&pIuQIUMH9JBMq}z19!F{y>Sw(oyI#v^0ugWktM^8-Kw;Zd zSFdJVxg&=tpj%%uiCZNon5-_H_&>T2zegIwHWhaRdGHr>^68W!KQa)7CJCYxyLKoo$*va@n`< ztS&$HD9Y|h%pi9yWWV$Wzq8!}!2T3^NPk^$1B@GKN)U23UXOJd6d(6k>w~5~=7RV| zO1h~tqT+~aYp5a;YtU340^;VPjngnV4X8K$3&qse0Ep)OqyGKd zx8;0v(QK^K-%EViNuQ(xd>sW3pOah5$S|g_p z{PI8=@T~A zjCnj&BG0AGmZuaH%SS^GC~6TCpkM2NF~b4%b*TB+pnAS4=nU*x$IDmx0-v0P995>W zsL)aDk6Gvj!x3@h+$=dp$*jCUU7!t>BRvDe6JTaT7~stLOwf@UXg2gNr(w^?5&(GA z&6Q0Wt3W`V)|UZkwyGLma2MrJsSy>Kx7&&wb%+I@oE$a@pg0JtUf_IA_Q23Eadvi= z9n3s8@{8&FKHKQ8 zdym^Zo*ifUnv|3jK%C6}esy3^uz$DkIqCcy2kthNED}5N={NK1d_;W6b zxKu9(R_^Zo9gRo;!qWABP6M6}8p7be*ommW{ND`)L>=VI6v}{+HZi8ch}PH$??;8c z#u-O1n)%0$U53?gwLS%;q~WgVeNoq&pOJMDVM5Mw}fCmj3_|JmAsuA)?lE?J{_j z`-U0naGU(a9D|gZH-accd5cpv4@nC}!=VVOeO3nuZwOF8^87K> ztAoet*vXVteMtgF1n<**dST&u+eoYYoO7K*;34ik^C&h8@3N{BFL441EzB?GnGtH^ zf6s7H?Giu;F1H$2@!$IHwsk+js1rIyFVnc@@Ywt283$~gvRay7!BJ!* zTgF05spHs>ONAwVf5wthkmY@H4*HsAW8!au9(LAtbq&6a8SdK-pF#s|hgsn~h1GJ) zMJ9W@@L*y*7A;gwc2PMW6T=AH8^pLXPO4 zc&|zy93F7q*?xmJ_NA>kIu3wfA7fAIKB5aP<>GLh|w^Y0x!Z1CF zVFq3fNo-Br$iGURKHZp-@66hi*Ai^cxn?n@BelG4AaA=+&kOhYrsXr6RaNea@#soE zPNx2Gq?s4QCt$DgFs9ZjR7mA6M?IwOX z`_e*ai<1aC*Va3=PPP!rY5F_P?{JtKx~9ga897*Iz!vkF8I}Rd@ zS)+LD=oiMi2W$tUd7Ct5^DpD~aW-g)?76g%Cx!ZPneywjcOWT~gAZLkJ5%?^D)ycU zvTYQ&C#)NZ63KVuAlhC&i?QQ9GlRIhu0hpC|Cy@kyUx5(!0SwqI#7Ib}-v2 zL|pt5U2k22gJ7Lg-3r|SU^ds5i}yQcqa)+B7w(7Ccx0vDc+~OrYpR*fuG&n=?JTD5 z+1dZ+Hk}CH?dq_LGsFkysc4d-l2k#?@nLd5h0RKh{6@srnO>sE1=N}j>#9x{zh|xL zK{AoisGVHs_MK*~NoPf5eD?9id0F_I=;CnIitwf0nY$o}3|+ho!s-14D*9`wcjVnT z3m^e8os=gjS={3u9V_nno4OH-N}XZ6+WF=jed)uRvBv_Rb`KOWMS-mFVmxO%md>s=;N1J)h+Ll$tqH5od0**(&zf0zH)8lNy%0z^#< ze>mF_x;mVN)tg-U3s`kDCdht(L-t0Q0zZF$DoV=RCMG6-K@GU`&m4*G*3Q|4{mJMM zE%Bcd8viB2f$#s@00)Ep$v+U&7WHic4hWrgv0cO)vd4eGoYcceA{O`yNB_ol*Fy7h za}=f7!nxc3CB;OX$RKNS^siY;YGmK%#>sLK?>OxOmGqkxhJpAitNm$N^W~ib^DI&A z%m5mh5&Od)Kp=F62L8*tuUT90^^lIRgs1dP+Sx;EQ%kB8m$S4+r?<-}DR-9q>M6d%;aX zK>;Eqy1YF4JyaT-qMFgi4$=n?{{;#5S2T@ZswBHCeDivJ7HqM8$$rLvV?6Q>xGK#T z>OWJ5AxSCzjsPn%`5$SU|5-BVul@hG)#3f=Zw~Wb5bklGBqWAuFQ(w zwZB{Gue)N=$yx7zJs?#J{6}-x6hOnFWdFRE|K`qY`qFmpVn^fhK{`o2gznofchRKi zv_+zTcP4K|G(Jfl@GfHOegVz_2Of1C(0DC_Zf6!52B-@ zG8CfNbaWXhDbrmoT9GTIR{Bi=4J73BxgV^%I18#=W*#~!D&{{u88P;S3h9K9JK^DO zfV_>BxaG)&(`9XLx>OBv^75)~U%!jc*N-P|0n=IU^sAhVR%-cex(A;RYW@)qLaUGQ z8tc<5?yHcAf7UK`EYEv;(J-+BVV5W4@0^@U>pWeAM+Hv$+~wflh!=ty*BdcKWwq0p zj(K>qFC-F&zj~p!j+vkHdm0r6Belfb1#%Flj;$xXv}{7@$J7LU^PK2Ug2ODYci8SA z9_gm~v;}s-lHDPY!{f8_xFT zW#e$y*+)hqrqAL9?3&N{g*{2G(Omgh)Kp3w-`CJnm5uoP=0al8vVSyGziyL_R!JiUj#R ztFlod?OM^>W$PNStv5yPd|ewQrJ&F`2_U#{{*vZ?{21~0@tf6=Vv`lTzt5g_#@wyK zc1t`oPT)0ZG+bF(F$~G=3s8PCyoIW>>3vGH$E+Lcv&0ErE&gbj&ByVkV9nLoS_ApvmSpj6J7+LGNQM5i;rxdw(d{h=0 z6*bgkBGvNkn;`{v)`BuGU)}}k)3auoGhnsQ zzA4FRfh(gn6K5*SEJr=~A;UWgwNAZOLsP>*=-!~xaWQw*4_my3#Owy1*b-_{FLv4( z2pp`i)bB*HJIEd!9IOx3AY(`_(`6coc_K%Oj3P5vQXrnF_RRB4Ua1|9Wu>J8*s`9% zLIWYk=}P5M5s})Z^*S6TT~<-d3-PKoti82W-qqE0wZEo}c|}((B0#Si;k$>88d%XJ z;BlzQijmlHXIIw}R+V^Wz)QxR>y%le6qI6lhJe+y0M~@@I1JjPDS(vpQZ%#U&ri}f zgq$>;jFTTed^m`?J=$D>Mc43 zhC;ag$nhMVL7_H5+&Q_3{@#P&&bX9qH+_Bm{4?jt+3(%^G$y_Jaep=_2Jf@34+t1? z;!{|%FJzm$`tmFgmY%addD4sL=GfX5Tv2W3lxZ5 z%o*5WGqrClY0WF)eez2Rv$X=9juEBzIa+@nndzS=zk@wO`JA*QSlvsULg9b2rPyw! zN+W-MO3N%g5!grd-DVJZ`lzw7aka0ZPQTJ2ue@A zS9@zCj{T=^a+_2sooqmpDa;BD&R#}lUykE(eG+3eLNZZ}`uRzRe9vkG7H($wW5+5=^$S-gYRW)- zthjkg`i7vx`;?RvIzii1|HECosd{g#84dNw0HgB9S>!?Sf_CX^YYtt>{PNo9iX$dd z3W^Hks5)d&>4f4|>S;rmnWdS>!!-f|8jsGL?r@xA`sY_IOCz6DR}wn-DjV|mY)k1l zR;#EAT#4JD++~tAfCupRt|Pp?|2DQNUeqz(V|~I~#h6X33K3<)GgL-#Y3Q4d(-7*6 zSQ{n616zOG?gy3M9>^T|Zu{+h7~jVb#VOQdrXJmb-xhe}*h^OclpBu^zf36Z*>P8{tc*12jK^Mv zFNC`K9GiR{EO31^x+T=86Qq;@U%-{niIis;`z^_1RYdM8jFm}g@HR>5d@Xh;UV)sa zvV)v3I!;Yxi$z1(^Jjb(f-yV4A-TNN-u!m{xFlDjxVuLAjFWYkMyv7 z@5%|~92^QdGl~<5z(0TJ1oq8lH}7p*2vr-;`+Rw zVrjK-$*C7Cx7K!c#KQO($C#!TwnjA4lR@2M{l5RfRFco^lr;XRjw-&%tBi;a2BvG3 zJBQby!S98K=pn%h2`WA;coFt15z3G!;;k@7iF_f}CoU4}gLzRt^i5fZFL{#0 zxFjTu>O8RO(_BTlyP1MtzI>q*vj##<$FbCUx7fOiMAg#;MQ)`hn%dg2M@L8HZc8eF zS79n$=Ky#^_xJa2J&zp9M`1>|KrK@oYB@DM{WeIgC||j9g-#^hA+gT62|83cPfq`S z(rE;L`NsUrOxg{(u;@{T;rty-%+Jpc|yotsn;3_gu4s6*79^Uk!>e`5V^@bc_Qc zPM`7Xz`BjbCjmLty=Qp}?8upO4bcI5v3JX=6g;7+K@F0?!B56-h8!=R|7(MfI9 z0Nu7QH&+?$Ec#|WQVJKt?Uo5GN6O9Q-=NNAL08(hQMq!8Yu{Da+T+3yD#TbcI!CZi z9eq3DzZXuI0k`tVq94AIau)&i9;2lKzN9fhHN-Q$CT`VXV2g6(SH^Sa@VTgMk|LC` z-#&8Tx_*VrinheTSXKP-FqW!Y76q+MR44&R2EqZzs<`0ZJOQhVK)e?<*7h*)1_#>3 zdKn;PbdGVOW)dzrHT15+`yI7@K)q*qmvt2LITDf%^O83663xTJL|i4b{2uc=mfN6P zVO%O+BX?Q{+dC-qJx?tVpo4R@16^93s0^-uB4;F) z8(7~UzJOiGvktvoE``kHqMZW6_UcRdFMFUHI;Xc-pgeYE6ET5(GPL`Nqkh$J={M++tgL+JcxUI3FZa!x4-R+NxvQL{ zrJtWZek$f=^-$)armn88Sxs?q@%IV+W5LfNQpdSU1{La2tjgU!k2w^ipFdw6u0RhL z7;(L8N#Ex&>K?5Lm=8Oqdn$Xw|2IK#5;wnupKr=wv1!4n7+WGny@G}oqZ7kAgg|{k z?c8@L8DOKi>GS8burm4o=mSKj(`L?HnS!s>1l+yJ{hfKjAmMPj#Z#N7~xFCPwJ(zf;NFe{w+WUv=jBsx)W{R${a zePy#FCYq#Wa$cEEXn1qxYmaRc;Si^hFkA@u5U0PS#cLoJp|rc(S1JibMs-L4i2>gb zwQ-!*H;-!{@XBX3KqZLE`ttbVcgEzcWc+JYey@~wUG3VwRxC9$a86WP6H2d2sZ#^g zaivh<;?~ZNaMC+f5?W3keod74YkvPapxBk)lVgFU%8C6xSC*T*98x)*qAnOPkyWUl zXBH^sJSjjIN=nL!vGTkL*Q#l44d4P=Qx)OaDWDP17o5q<8*A{b!U%Q%?ENYzh>MR; z9Xy+)l8qCT*D?VdfV>$f81CG;V^yM?f9aHkg@u;7dOFH}WVJu)`#$Ql7p{)%?tCAWZ4v-(jcuG zlEEH>qbV?8dn~qVsfnQxKk2vM`&nW!R8;n-P9Pi|^xI@y1%xvPk2-+0eB_pX>#7B7 zJN<+TPmZQ5;&)bQlzmVk+4X|jxMptsdh-PFOC&~9B_FMi%jE=pS2*^lXc;p}BEAff zb7Ym$Mvhm#9iIQ#d2J-!EXG1#G*JaRkx=wH!bVW-$ph2WettgAqnzLt^S+rMKR5$_ zAPM9s44|=QU@I9+Zty+%Eh2K&D7=bbAPzE zs7In61^A82IY-T?c%a2J1%@>ll0j=v2H-lCI+kAVFOlTsRzFH^Ju}`hT3eJB(ym@Zn9WUw_4Uhf9?# zU^*SdA;+J!CP2Y_d#Q^3?l+U9alzq)D9ZA^2eFZrS*x8)+DMla!N|;9eA-jtB>f84 z@XXR+cxf1Q?#{Ily{1kBDBE*06=27_5fS7nDNTnRgvKE)<-)O_HL1E!ujyn!;(=&c(p2YqfocW;EZov6IRR>%Yzkrp9ORn0kAoN0-)8&3hx-~ zII@D1p9|e@+}*`f^9VqEMcrzIo_rWPn2Yb;x>lJIPsF4XuR(H57QjJ;x;3TxO{&0o zE1f3u!LEaqa(O_Mkk6hY%(V?swykB*DWr-GK2Es4;Q zZc(V*xp+q=sQl#fDOw2$6n1ka9@iz*(awW06S8dkrz=IuYP)ywzsLSTuGB_wPAK1sVoG6pd5wK#*Q@@e4z%p z13R}43x|Q)3P2M&Lr3lI(YWJ2nd!fW-lygbWVcUGo17`G?}w)$JUlAxS$`K4+$G%e ztpvh4l|#w$meb_mR%Y+^Jc?J-`#?6n!6kzz5Z2d=gB83nGEbvADfOt>pU-4Z99L7{ zpiI}B5mU4dii%T;!{gSOCgqC*1XMvfR6?wEIn9+29iMEpU>{o3n6O0#75E$wQY;00 zavk5jUhNZ+<4zbFh}yf{pJT$)2Y%E7+e}00)ejthoeHpS*qz74Z?2r4EOAHQUOj8K zv*`tJrqA}r2p`e6$%iAIWnG3TkWQC`VOQRn6A9M~pfYdAJPK z>F~1LHOvLlZ(C=l5_m1grAwS!L5754_{BN09bAFl*4CCf*t-&kE_qY4u%b=&VyR*& zmirV3tXVj@@5tkB-^Fic83?SPv+x_|r7*f`C3KHogKI)QAh(k1k-BrR$3^_<;7-`@ zD6Fm5;0Mo>+6Z}Ew6D{8IWI z;+R_d9RxA8_QhJw&9CAm{cBI3IWq*81T`EAcjQBQ>kqc!gzX-pQ2BGQiz`G!?;|n( zI!;uV-1XYs(F81k%KwP4l9Ct|-(mXR__%4thY)p8yV$*_RqXVMu`#2mF{P=o;5#&s zosaC1J|$UuGA!w{kl_u2XRgiC&nACo;g|ut1W1dwIh`m9ww)a6tKlB*j75!Lp5ND5 zmSXxbG~`)d41`TwZ*{;}>6~c{gwYXBzQv%0upQ#R+6WR9d7|Ip{Y_4oo*;7Av%`~0 zv7`{ezo|*s=Z0$B-^@RFaqoYa=l+u~{J*@N_vn9?JwKMxL$Qf{E9SHzo=`znUQj$u delta 16362 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. diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index 7304c362..585f9f6e 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -11,7 +11,7 @@ from flask_sqlalchemy import SQLAlchemy from fittrackee.emails.email import Email -VERSION = __version__ = '0.5.3' +VERSION = __version__ = '0.5.4' db = SQLAlchemy() bcrypt = Bcrypt() migrate = Migrate() diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py index 902ac75f..d5fe4e93 100644 --- a/fittrackee/application/app_config.py +++ b/fittrackee/application/app_config.py @@ -45,7 +45,7 @@ def get_application_config() -> Union[Dict, HttpResponse]: "max_zip_file_size": 10485760, "max_users": 0, "map_attribution": "© OpenStreetMap contributors" - "version": "0.5.3" + "version": "0.5.4" }, "status": "success" } diff --git a/fittrackee_client/package.json b/fittrackee_client/package.json index c6fd359c..b76c7279 100644 --- a/fittrackee_client/package.json +++ b/fittrackee_client/package.json @@ -1,6 +1,6 @@ { "name": "fittrackee_client", - "version": "0.5.3", + "version": "0.5.4", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/pyproject.toml b/pyproject.toml index 6e22b6e9..5a05aac4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fittrackee" -version = "0.5.3" +version = "0.5.4" description = "Self-hosted outdoor workout/activity tracker" authors = ["SamR1"] license = "AGPL-3.0"