diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index 0b29964d..6273f31f 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.044e624348389b8946ac9a1756fae04a.js b/fittrackee/dist/precache-manifest.aab9327d959797e12b9f2af90df626c8.js similarity index 97% rename from fittrackee/dist/precache-manifest.044e624348389b8946ac9a1756fae04a.js rename to fittrackee/dist/precache-manifest.aab9327d959797e12b9f2af90df626c8.js index 578629e5..a0883ffb 100644 --- a/fittrackee/dist/precache-manifest.044e624348389b8946ac9a1756fae04a.js +++ b/fittrackee/dist/precache-manifest.aab9327d959797e12b9f2af90df626c8.js @@ -64,7 +64,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/img/workouts/mountains.svg" }, { - "revision": "9623aa1a1c19a881086977a3edfc1145", + "revision": "f75f8df3621aa692bd0f287b779f98b7", "url": "/index.html" }, { @@ -80,7 +80,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/css/admin.27bf6ef5.css" }, { - "revision": "6b46b4d95a705ed57b97", + "revision": "e370f660b4615a7b1407", "url": "/static/css/app.4717d662.css" }, { @@ -196,8 +196,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/js/admin.ae6123c4.js" }, { - "revision": "6b46b4d95a705ed57b97", - "url": "/static/js/app.dad9d7e0.js" + "revision": "e370f660b4615a7b1407", + "url": "/static/js/app.fba56819.js" }, { "revision": "bd7d183c9f68e5f4027d", diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index 0db80d23..62346fce 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.044e624348389b8946ac9a1756fae04a.js" + "/precache-manifest.aab9327d959797e12b9f2af90df626c8.js" ); workbox.core.setCacheNameDetails({prefix: "fittrackee_client"}); diff --git a/fittrackee/dist/static/js/app.dad9d7e0.js b/fittrackee/dist/static/js/app.dad9d7e0.js deleted file mode 100644 index 9af0e49d..00000000 --- a/fittrackee/dist/static/js/app.dad9d7e0.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var r,o,i=t[0],s=t[1],u=t[2],l=0,d=[];lr?1:n2&&void 0!==arguments[2]&&arguments[2];return e.filter((function(e){return!n||e.is_active})).map((function(e){return Object(r["a"])(Object(r["a"])({},e),{},{translatedLabel:t("sports.".concat(e.label,".LABEL"))})})).sort(c)},s=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.label}))[0]}},"13dc":function(e,t,n){"use strict";n("c0dc")},"16c2":function(e,t,n){"use strict";n("a03e")},1850:function(e,t,n){"use strict";n("da66")},"1f4c":function(e,t,n){},2024:function(e,t,n){},2906:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n("5502");function o(){return Object(r["b"])()}},3214:function(e,t,n){"use strict";n("2024")},3853:function(e,t,n){"use strict";n("c75e")},"3c44":function(e,t,n){"use strict";n("b680"),n("a9e3");var r=n("7a23"),o=Object(r["withScopeId"])("data-v-a6fa997c");Object(r["pushScopeId"])("data-v-a6fa997c");var a={class:"box user-header"},c={class:"user-details"},i={class:"user-name"},s={class:"user-stats"},u={class:"user-stat"},l={class:"stat-number"},d={class:"stat-label"},O={class:"user-stat"},p={class:"stat-number"},m=Object(r["createVNode"])("span",{class:"stat-label"},"km",-1),b={class:"user-stat hide-small"},T={class:"stat-number"},E={class:"stat-label"};Object(r["popScopeId"])();var S=o((function(e,t,n,o,S,f){var _=Object(r["resolveComponent"])("UserPicture");return Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[Object(r["createVNode"])(_,{user:e.user},null,8,["user"]),Object(r["createVNode"])("div",c,[Object(r["createVNode"])("div",i,Object(r["toDisplayString"])(e.user.username),1),Object(r["createVNode"])("div",s,[Object(r["createVNode"])("div",u,[Object(r["createVNode"])("span",l,Object(r["toDisplayString"])(e.user.nb_workouts),1),Object(r["createVNode"])("span",d,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",e.user.nb_workouts)),1)]),Object(r["createVNode"])("div",O,[Object(r["createVNode"])("span",p,Object(r["toDisplayString"])(Number(e.user.total_distance).toFixed(0)),1),m]),Object(r["createVNode"])("div",b,[Object(r["createVNode"])("span",T,Object(r["toDisplayString"])(e.user.nb_sports),1),Object(r["createVNode"])("span",E,Object(r["toDisplayString"])(e.$t("workouts.SPORT",e.user.nb_sports)),1)])])])])})),f=n("c46a"),_=Object(r["defineComponent"])({name:"ProfileDisplay",components:{UserPicture:f["a"]},props:{user:{type:Object,required:!0}}});n("5085");_.render=S,_.__scopeId="data-v-a6fa997c";t["a"]=_},4370:function(e,t,n){},"466e":function(e,t,n){},4870:function(e,t,n){"use strict";var r,o,a;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return o})),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"}(o||(o={})),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={}))},"4a13":function(e,t,n){"use strict";n("92d6")},"4b55":function(e,t,n){"use strict";n("8384")},5085:function(e,t,n){"use strict";n("1f4c")},5567:function(e,t,n){"use strict";n("8349")},5712:function(e,t,n){},"5e65":function(e,t,n){"use strict";n.d(t,"d",(function(){return p})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return b})),n.d(t,"b",(function(){return T})),n.d(t,"a",(function(){return E}));var r=n("69eb"),o=n("d6e9"),a=n("f628"),c=n("f7f1"),i=n("cdb6"),s=n("74b5"),u=n("8cac"),l=n("2fc8"),d=n("b166"),O=n("78b2"),p=function(e,t,n){switch(e){case"week":return Object(r["a"])(t,{weekStartsOn:n?1:0});case"year":return Object(o["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(c["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,'"'))}},b=function(e,t){return Object(O["a"])(new Date(e),t)},T=function(e,t){var n=Object(a["a"])(e),o=Object(u["a"])(e),c=t?1:0;return{start:Object(r["a"])(n,{weekStartsOn:c}),end:Object(l["a"])(o,{weekStartsOn:c})}},E=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)}}},"608d":function(e,t,n){"use strict";n("90b9")},"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"])}}}}},o={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 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"])},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"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},c={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"])}}},u={"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"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},l={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"])},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"])},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"])},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"])}},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"])},KM:e=>{const{normalize:t}=e;return t(["km"])},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"])},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:o,buttons:a,common:c,dashboard:i,error:s,sports:u,statistics:l,user:d,workouts:O}},"6d7d":function(e,t,n){"use strict";var r=n("7a23"),o=Object(r["withScopeId"])("data-v-56dc89d4");Object(r["pushScopeId"])("data-v-56dc89d4");var a={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},i=Object(r["createVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),s={key:0},u=Object(r["createVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1);Object(r["popScopeId"])();var l=o((function(e,t,n,l,d,O){var p=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createBlock"])("nav",a,[Object(r["createVNode"])("ul",c,[Object(r["createVNode"])("li",{class:["page-prev",{disabled:!e.pagination.has_prev}]},[Object(r["createVNode"])(p,{class:"page-link",to:{path:e.path,query:e.getQuery(e.pagination.page,-1)},event:e.pagination.has_prev?"click":"",disabled:!e.pagination.has_prev},{default:o((function(){return[i,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("api.PAGINATION.PREVIOUS")),1)]})),_:1},8,["to","event","disabled"])],2),(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.rangePagination(e.pagination.pages,e.pagination.page),(function(t){return Object(r["openBlock"])(),Object(r["createBlock"])("li",{key:t,class:["page",{active:t===e.pagination.page}]},["..."===t?(Object(r["openBlock"])(),Object(r["createBlock"])("span",s," ... ")):(Object(r["openBlock"])(),Object(r["createBlock"])(p,{key:1,class:"page-link",to:{path:e.path,query:e.getQuery(+t)}},{default:o((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(t),1)]})),_:2},1032,["to"]))],2)})),128)),Object(r["createVNode"])("li",{class:["page-next",{disabled:!e.pagination.has_next}]},[Object(r["createVNode"])(p,{class:"page-link",to:{path:e.path,query:e.getQuery(e.pagination.page,1)},event:e.pagination.has_next?"click":"",disabled:!e.pagination.has_next},{default:o((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("api.PAGINATION.NEXT"))+" ",1),u]})),_:1},8,["to","event","disabled"])],2)])])})),d=n("97e5"),O=Object(r["defineComponent"])({name:"Pagination",props:{pagination:{type:Object,required:!0},path:{type:String,required:!0},query:{type:Object,required:!0}},setup:function(e){function t(t,n){var r=Object.assign({},e.query);return r.page=n?t+n:t,r}return{rangePagination:d["b"],getQuery:t}}});n("1850");O.render=l,O.__scopeId="data-v-56dc89d4";t["a"]=O},"6eb4":function(e,t,n){},"71a7":function(e,t,n){"use strict";var r=n("7a23"),o=Object(r["withScopeId"])("data-v-1267fe4f");Object(r["pushScopeId"])("data-v-1267fe4f");var a={id:"user-infos",class:"description-list"},c={class:"user-bio"},i={key:1,class:"profile-buttons"},s={key:2,class:"profile-buttons"};Object(r["popScopeId"])();var u=o((function(e,t,n,o,u,l){var d=Object(r["resolveComponent"])("Modal");return Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[e.displayModal?(Object(r["openBlock"])(),Object(r["createBlock"])(d,{key:0,title:e.$t("common.CONFIRMATION"),message:"admin.CONFIRM_USER_ACCOUNT_DELETION",strongMessage:e.user.username,onConfirmAction:t[1]||(t[1]=function(t){return e.deleteUserAccount(e.user.username)}),onCancelAction:t[2]||(t[2]=function(t){return e.updateDisplayModal(!1)})},null,8,["title","strongMessage"])):Object(r["createCommentVNode"])("",!0),Object(r["createVNode"])("dl",null,[Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.registrationDate),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.user.first_name),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.user.last_name),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.birthDate),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.user.location),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIO"))+":",1),Object(r["createVNode"])("dd",c,Object(r["toDisplayString"])(e.user.bio),1)]),e.fromAdmin?(Object(r["openBlock"])(),Object(r["createBlock"])("div",i,[e.authUser.username!==e.user.username?(Object(r["openBlock"])(),Object(r["createBlock"])("button",{key:0,class:"danger",onClick:t[3]||(t[3]=Object(r["withModifiers"])((function(t){return e.updateDisplayModal(!0)}),["prevent"]))},Object(r["toDisplayString"])(e.$t("admin.DELETE_USER")),1)):Object(r["createCommentVNode"])("",!0),Object(r["createVNode"])("button",{onClick:t[4]||(t[4]=function(t){return e.$router.go(-1)})},Object(r["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(r["openBlock"])(),Object(r["createBlock"])("div",s,[Object(r["createVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/profile/edit")})},Object(r["toDisplayString"])(e.$t("user.PROFILE.EDIT")),1),Object(r["createVNode"])("button",{onClick:t[6]||(t[6]=function(t){return e.$router.push("/")})},Object(r["toDisplayString"])(e.$t("common.HOME")),1)]))])})),l=n("b166"),d=n("dad5"),O=n("2906"),p=Object(r["defineComponent"])({name:"UserInfos",props:{user:{type:Object,required:!0},fromAdmin:{type:Boolean,default:!1}},setup:function(e){var t=Object(O["a"])(),n=Object(r["computed"])((function(){return t.getters[d["e"].GETTERS.AUTH_USER_PROFILE]})),o=Object(r["computed"])((function(){return e.user.created_at?Object(l["a"])(new Date(e.user.created_at),"dd/MM/yyyy HH:mm"):""})),a=Object(r["computed"])((function(){return e.user.birth_date?Object(l["a"])(new Date(e.user.birth_date),"dd/MM/yyyy"):""})),c=Object(r["ref"])(!1);function i(e){c.value=e}function s(e){t.dispatch(d["e"].ACTIONS.DELETE_ACCOUNT,{username:e})}return{authUser:n,birthDate:a,displayModal:c,registrationDate:o,deleteUserAccount:s,updateDisplayModal:i}}});n("966c");p.render=u,p.__scopeId="data-v-1267fe4f";t["a"]=p},"79e1":function(e,t,n){"use strict";n("851f")},"7b3e":function(e,t,n){"use strict";n("b715")},"7ffe":function(e,t,n){"use strict";n("9f54")},8349:function(e,t,n){},8384:function(e,t,n){},"851f":function(e,t,n){},"85fa":function(e,t,n){"use strict";n("0a59")},8728:function(e,t,n){"use strict";n("8d9f")},"8d9f":function(e,t,n){},"90b9":function(e,t,n){},9176:function(e,t,n){"use strict";n("99af"),n("4e82");var r=n("7a23"),o=Object(r["withScopeId"])("data-v-50c78582");Object(r["pushScopeId"])("data-v-50c78582");var a={class:"table-selects"};Object(r["popScopeId"])();var c=o((function(e,t,n,o,c,i){return Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[Object(r["createVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),Object(r["createVNode"])("select",{name:"order_by",id:"order_by",value:e.query.order_by,onChange:t[1]||(t[1]=function(){return e.onSelectUpdate&&e.onSelectUpdate.apply(e,arguments)})},[(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.order_by,(function(t){return Object(r["openBlock"])(),Object(r["createBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("".concat(e.message,".").concat(t.toUpperCase()))),9,["value"])})),128))],40,["value"])]),Object(r["createVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),Object(r["createVNode"])("select",{name:"order",id:"order",value:e.query.order,onChange:t[2]||(t[2]=function(){return e.onSelectUpdate&&e.onSelectUpdate.apply(e,arguments)})},[(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.sort,(function(t){return Object(r["openBlock"])(),Object(r["createBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.".concat(t.toUpperCase()))),9,["value"])})),128))],40,["value"])]),Object(r["createVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),Object(r["createVNode"])("select",{name:"per_page",id:"per_page",value:e.query.per_page,onChange:t[3]||(t[3]=function(){return e.onSelectUpdate&&e.onSelectUpdate.apply(e,arguments)})},[(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.per_page,(function(e){return Object(r["openBlock"])(),Object(r["createBlock"])("option",{value:e,key:e},Object(r["toDisplayString"])(e),9,["value"])})),128))],40,["value"])])])})),i=Object(r["defineComponent"])({name:"FilterSelects",props:{order_by:{type:Object,required:!0},query:{type:Object,required:!0},sort:{type:Object,required:!0},message:{type:String,required:!0}},emits:["updateSelect"],setup:function(e,t){var n=t.emit;function r(e){n("updateSelect",e.target.id,e.target.value)}return{per_page:[10,25,50,100],onSelectUpdate:r}}});n("79e1");i.render=c,i.__scopeId="data-v-50c78582";t["a"]=i},"92d6":function(e,t,n){},"95ba":function(e,t,n){"use strict";n("6eb4")},"966c":function(e,t,n){"use strict";n("5712")},"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 u})),n.d(t,"b",(function(){return d}));n("caad"),n("2532"),n("a630"),n("3ca3"),n("99af");var r=["asc","desc"],o=1,a=10,c=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 u=s||{},l=u.defaultSort||"asc",d=u.query||{};return d.page=c(e.page,o),d.per_page=c(e.per_page,a),d.order=i(e.order,r,l),d.order_by=i(e.order_by,t,n),d},u=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],l=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 l(e);var n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(l(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{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"])}}}}},o={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 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"])},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"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},c={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"])}}},u={"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"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},l={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"])},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"])},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"])},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"])}},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"])},KM:e=>{const{normalize:t}=e;return t(["km"])},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"])},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:o,buttons:a,common:c,dashboard:i,error:s,sports:u,statistics:l,user:d,workouts:O}},c364:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a}));n("b680"),n("99af");var r=["bytes","KB","MB","GB","TB"],o=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 o=(e/Math.pow(1024,n)).toFixed(1),a=r[n];return t?"".concat(o).concat(a):{size:o,suffix:a}},a=function(e){var t=e/1048576;return+t.toFixed(2)}},c46a:function(e,t,n){"use strict";var r=n("7a23"),o={class:"user-picture"},a={key:1,class:"no-picture"},c=Object(r["createVNode"])("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1);function i(e,t,n,i,s,u){return Object(r["openBlock"])(),Object(r["createBlock"])("div",o,[""!==e.authUserPictureUrl?(Object(r["openBlock"])(),Object(r["createBlock"])("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:e.authUserPictureUrl},null,8,["alt","src"])):(Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[c]))])}n("99af");var s=n("d257"),u=Object(r["defineComponent"])({name:"UserPicture",props:{user:{type:Object,required:!0}},setup:function(e){return{authUserPictureUrl:Object(r["computed"])((function(){return e.user.picture?"".concat(Object(s["a"])(),"users/").concat(e.user.username,"/picture"):""}))}}});n("13dc");u.render=i;t["a"]=u},c75e:function(e,t,n){},cbea:function(e,t,n){"use strict";n("fb41")},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("159b"),n("b0c0");var r=n("9b4a"),o=n("d9fa"),a=n("7a23"),c=n("9483");Object(c["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=Object(a["withScopeId"])("data-v-317a6409");Object(a["pushScopeId"])("data-v-317a6409");var s=Object(a["createVNode"])("div",{id:"top"},null,-1),u={key:0,class:"app-container"},l={class:"app-loading"},d={class:"container scroll"},O=Object(a["createVNode"])("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1);Object(a["popScopeId"])();var p=i((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("NavBar"),p=Object(a["resolveComponent"])("Loader"),m=Object(a["resolveComponent"])("router-view"),b=Object(a["resolveComponent"])("NoConfig"),T=Object(a["resolveComponent"])("Footer");return Object(a["openBlock"])(),Object(a["createBlock"])(a["Fragment"],null,[s,Object(a["createVNode"])(i,{onMenuInteraction:e.updateHideScrollBar},null,8,["onMenuInteraction"]),e.appLoading?(Object(a["openBlock"])(),Object(a["createBlock"])("div",u,[Object(a["createVNode"])("div",l,[Object(a["createVNode"])(p)])])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",{key:1,class:["app-container",{"hide-scroll":e.hideScrollBar}]},[e.appConfig?(Object(a["openBlock"])(),Object(a["createBlock"])(m,{key:0})):(Object(a["openBlock"])(),Object(a["createBlock"])(b,{key:1}))],2)),Object(a["createVNode"])("div",d,[Object(a["createVNode"])("div",{class:["scroll-button",{"display-button":e.displayScrollButton}],onClick:t[1]||(t[1]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[O],2)]),e.appConfig?(Object(a["openBlock"])(),Object(a["createBlock"])(T,{key:2,version:e.appConfig?e.appConfig.version:""},null,8,["version"])):Object(a["createCommentVNode"])("",!0)],64)})),m=Object(a["withScopeId"])("data-v-e1641806");Object(a["pushScopeId"])("data-v-e1641806");var b={id:"footer"},T={class:"footer-items"},E={class:"footer-item"},S=Object(a["createVNode"])("strong",null,"FitTrackee",-1),f=Object(a["createStaticVNode"])('',4);Object(a["popScopeId"])();var _=m((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",b,[Object(a["createVNode"])("div",T,[Object(a["createVNode"])("div",E,[S,Object(a["createTextVNode"])(" v"+Object(a["toDisplayString"])(e.version),1)]),f])])})),j=Object(a["defineComponent"])({name:"Footer",props:{version:{type:String,required:!0}}});n("7b3e");j.render=_,j.__scopeId="data-v-e1641806";var A=j,N=Object(a["withScopeId"])("data-v-03a78350");Object(a["pushScopeId"])("data-v-03a78350");var R={id:"nav"},I={class:"nav-container"},g={class:"nav-app-name"},U={class:"nav-items-close"},v=Object(a["createVNode"])("div",{class:"app-name"},"FitTrackee",-1),D={key:0,class:"nav-items-group"},h=Object(a["createVNode"])("div",{class:"nav-item nav-separator"},null,-1),P={class:"nav-items-user-menu"},C={key:0,class:"nav-items-group"},M={class:"nav-item nav-profile-img"},k={key:1,class:"nav-items-group"},L=Object(a["createVNode"])("i",{class:"fa fa-language"},null,-1);Object(a["popScopeId"])();var z=N((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("router-link"),s=Object(a["resolveComponent"])("UserPicture"),u=Object(a["resolveComponent"])("Dropdown");return Object(a["openBlock"])(),Object(a["createBlock"])("div",R,[Object(a["createVNode"])("div",I,[Object(a["createVNode"])("div",g,[Object(a["createVNode"])("div",{class:"nav-item app-name",onClick:t[1]||(t[1]=function(t){return e.$router.push("/")})}," FitTrackee ")]),Object(a["createVNode"])("div",{class:["nav-icon-open",{"menu-open":e.isMenuOpen}]},[Object(a["createVNode"])("i",{class:"fa fa-bars hamburger-icon",onClick:t[2]||(t[2]=function(t){return e.openMenu()})})],2),Object(a["createVNode"])("div",{class:["nav-items",{"menu-open":e.isMenuOpen}]},[Object(a["createVNode"])("div",U,[v,Object(a["createVNode"])("i",{class:["fa fa-close close-icon nav-item",{"menu-closed":!e.isMenuOpen}],onClick:t[3]||(t[3]=function(t){return e.closeMenu()})},null,2)]),Object(a["createVNode"])("div",{class:"nav-items-app-menu",onClick:t[4]||(t[4]=function(t){return e.closeMenu()})},[e.isAuthenticated?(Object(a["openBlock"])(),Object(a["createBlock"])("div",D,[Object(a["createVNode"])(i,{class:"nav-item",to:"/"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("dashboard.DASHBOARD")),1)]})),_:1}),Object(a["createVNode"])(i,{class:"nav-item",to:"/workouts"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.WORKOUT",2))),1)]})),_:1}),Object(a["createVNode"])(i,{class:"nav-item",to:"/statistics"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("statistics.STATISTICS")),1)]})),_:1}),Object(a["createVNode"])(i,{class:"nav-item",to:"/workouts/add"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("workouts.ADD_WORKOUT")),1)]})),_:1}),e.isAuthenticated&&e.authUser.admin?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,class:"nav-item",to:"/admin"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.ADMIN")),1)]})),_:1})):Object(a["createCommentVNode"])("",!0),h])):Object(a["createCommentVNode"])("",!0)]),Object(a["createVNode"])("div",P,[e.isAuthenticated?(Object(a["openBlock"])(),Object(a["createBlock"])("div",C,[Object(a["createVNode"])("div",M,[Object(a["createVNode"])(s,{user:e.authUser},null,8,["user"])]),Object(a["createVNode"])(i,{class:"nav-item",to:"/profile",onClick:e.closeMenu},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.authUser.username),1)]})),_:1},8,["onClick"]),Object(a["createVNode"])("div",{class:"nav-item nav-link",onClick:t[5]||(t[5]=function(){return e.logout&&e.logout.apply(e,arguments)})},Object(a["toDisplayString"])(e.$t("user.LOGOUT")),1)])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",k,[Object(a["createVNode"])(i,{class:"nav-item",to:"/login",onClick:e.closeMenu},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.LOGIN")),1)]})),_:1},8,["onClick"]),Object(a["createVNode"])(i,{class:"nav-item",to:"/register",onClick:e.closeMenu},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.REGISTER")),1)]})),_:1},8,["onClick"])])),e.availableLanguages&&e.language?(Object(a["openBlock"])(),Object(a["createBlock"])(u,{key:2,class:"nav-item",options:e.availableLanguages,selected:e.language,onSelected:e.updateLanguage},{default:N((function(){return[L]})),_:1},8,["options","selected","onSelected"])):Object(a["createCommentVNode"])("",!0)])],2)])])})),y=(n("99af"),n("d3b7"),n("25f0"),n("47e2")),w=n("c46a"),V=n("dad5"),B=n("2906"),G=n("d257"),x=(n("d81d"),n("8923")),F=n("d481");n("ddb0"),n("ac1f"),n("466d");function W(){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 o=r[1];t[o]=e(n).default}})),t}var K=Object(y["a"])({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:W()}),$={en:x["a"],fr:F["a"]},H={en:"English",fr:"Français"},Y=K.global.availableLocales,q=Y.map((function(e){return{label:H[e],value:e}})),X=Object(a["defineComponent"])({name:"NavBar",components:{UserPicture:w["a"]},emits:["menuInteraction"],setup:function(e,t){var n=t.emit,r=Object(y["b"])(),o=r.locale,c=Object(B["a"])(),i=Object(a["computed"])((function(){return c.getters[V["e"].GETTERS.AUTH_USER_PROFILE]})),s=Object(a["computed"])((function(){return c.getters[V["e"].GETTERS.IS_AUTHENTICATED]})),u=Object(a["computed"])((function(){return s.value&&i.value.picture?"".concat(Object(G["a"])(),"/users/").concat(i.value.username,"/picture?").concat(Date.now()):""})),l=Object(a["computed"])((function(){return c.getters[V["a"].GETTERS.LANGUAGE]})),d=Object(a["ref"])(!1);function O(){d.value=!0,n("menuInteraction",!0)}function p(){d.value=!1,n("menuInteraction",!1)}function m(e){o.value=e.value.toString(),c.commit(V["a"].MUTATIONS.UPDATE_LANG,e.value)}function b(){c.dispatch(V["e"].ACTIONS.LOGOUT)}return{availableLanguages:q,authUser:i,authUserPictureUrl:u,isAuthenticated:s,isMenuOpen:d,language:l,capitalize:a["capitalize"],openMenu:O,closeMenu:p,updateLanguage:m,logout:b}}});n("5567");X.render=z,X.__scopeId="data-v-03a78350";var Z=X,Q=Object(a["withScopeId"])("data-v-01d4a985");Object(a["pushScopeId"])("data-v-01d4a985");var J={id:"no-config"},ee={class:"error-page"},te=Object(a["createVNode"])("div",{class:"error-img"},[Object(a["createVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},[Object(a["createVNode"])("g",{id:"error"},[Object(a["createVNode"])("path",{class:"error-page-img",d:"M 0 0 C 0 11.300781 0 399.777344 0 410 L 512 410 C 512 402.324219 512 2.425781 512 0 Z M 370 71 L 370 30 L 411 30 L 411 71 Z M 30 30 L 340 30 L 340 71 L 30 71 Z M 482 380 L 30 380 L 30 101 L 482 101 Z M 441 71 L 441 30 L 482 30 L 482 71 Z M 441 71 "}),Object(a["createVNode"])("path",{class:"error-page-img",d:"M 325.519531 297.070312 C 294.328125 265.878906 294.328125 215.125 325.519531 183.929688 L 304.304688 162.71875 C 261.417969 205.605469 261.417969 275.390625 304.304688 318.28125 Z M 325.519531 297.070312 "}),Object(a["createVNode"])("path",{class:"error-page-img",d:"M 197.089844 180 L 237.089844 180 L 237.089844 220 L 197.089844 220 Z M 197.089844 180 "}),Object(a["createVNode"])("path",{class:"error-page-img",d:"M 197.089844 261 L 237.089844 261 L 237.089844 301 L 197.089844 301 Z M 197.089844 261 "})])])],-1);Object(a["popScopeId"])();var ne=Q((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",J,[Object(a["createVNode"])("div",ee,[te,Object(a["createVNode"])("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,["innerHTML"])])])})),re=Object(a["defineComponent"])({name:"NoConfig",setup:function(){var e=Object(y["b"])(),t=e.t;return{t:t}}});n("f037");re.render=ne,re.__scopeId="data-v-01d4a985";var oe=re,ae=Object(a["defineComponent"])({name:"App",components:{Footer:A,NavBar:Z,NoConfig:oe},setup:function(){var e=Object(B["a"])(),t=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.APP_CONFIG]})),n=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.APP_LOADING]})),r=Object(a["ref"])(!1),o=Object(a["ref"])(!1);function c(e){r.value=e}function i(e){return e.getBoundingClientRect().top=0}function s(){window.onscroll=function(){var e=document.querySelector("#bottom");o.value=null!==e&&i(e)}}function u(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((function(){o.value=!1}),300)}return Object(a["onBeforeMount"])((function(){return e.dispatch(V["a"].ACTIONS.GET_APPLICATION_CONFIG)})),Object(a["onMounted"])((function(){return s()})),{appConfig:t,appLoading:n,hideScrollBar:r,displayScrollButton:o,scrollToTop:u,updateHideScrollBar:c}}});n("608d");ae.render=p,ae.__scopeId="data-v-317a6409";var ce=ae,ie=(n("5319"),n("3ca3"),n("caad"),n("6c02")),se=Object(a["withScopeId"])("data-v-26175b66");Object(a["pushScopeId"])("data-v-26175b66");var ue={id:"admin-app",class:"admin-card"},le={for:"max_users"},de={class:"user-limit-help"},Oe={class:"info-box"},pe=Object(a["createVNode"])("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1),me={for:"max_single_file_size"},be={for:"max_zip_file_size"},Te={for:"gpx_limit_import"},Ee={key:1,class:"form-buttons"},Se={class:"confirm",type:"submit"},fe={key:2,class:"form-buttons"};Object(a["popScopeId"])();var _e=se((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("ErrorMessage"),s=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",ue,[Object(a["createVNode"])(s,null,{title:se((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.TITLE")),1)]})),content:se((function(){return[Object(a["createVNode"])("form",{class:"admin-form",onSubmit:t[8]||(t[8]=Object(a["withModifiers"])((function(){return e.onSubmit&&e.onSubmit.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("label",le,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.appData.max_users=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.max_users]])]),Object(a["createVNode"])("div",de,[Object(a["createVNode"])("span",Oe,[pe,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),Object(a["createVNode"])("label",me,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.appData.max_single_file_size=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.max_single_file_size]])]),Object(a["createVNode"])("label",be,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.appData.max_zip_file_size=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.max_zip_file_size]])]),Object(a["createVNode"])("label",Te,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.appData.gpx_limit_import=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.gpx_limit_import]])]),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),e.edition?(Object(a["openBlock"])(),Object(a["createBlock"])("div",Ee,[Object(a["createVNode"])("button",Se,Object(a["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[5]||(t[5]=Object(a["withModifiers"])((function(){return e.onCancel&&e.onCancel.apply(e,arguments)}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.CANCEL")),1)])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",fe,[Object(a["createVNode"])("button",{class:"confirm",onClick:t[6]||(t[6]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin/application/edit")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.EDIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[7]||(t[7]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)]))],32)]})),_:1})])})),je=(n("b64b"),n("c364")),Ae=Object(a["defineComponent"])({name:"AdminApplication",props:{appConfig:{type:Object,required:!0},edition:{type:Boolean,default:!1}},setup:function(e){var t=Object(B["a"])(),n=Object(ie["d"])(),r=Object(a["reactive"])({max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),o=Object(a["computed"])((function(){return t.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function c(e){Object.keys(r).map((function(t){["max_single_file_size","max_zip_file_size"].includes(t)?r[t]=Object(je["a"])(e[t]):r[t]=e[t]}))}function i(){c(e.appConfig),t.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),n.push("/admin/application")}function s(){var e=Object.assign({},r);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,t.dispatch(V["a"].ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return Object(a["onBeforeMount"])((function(){e.appConfig&&c(e.appConfig)})),{appData:r,errorMessages:o,onCancel:i,onSubmit:s}}});n("3853");Ae.render=_e,Ae.__scopeId="data-v-26175b66";var Ne=Ae,Re=Object(a["withScopeId"])("data-v-4f30aa64");Object(a["pushScopeId"])("data-v-4f30aa64");var Ie={id:"admin-menu",class:"center-card"},ge={class:"admin-menu description-list"},Ue=Object(a["createVNode"])("br",null,null,-1),ve={class:"registration-status"};Object(a["popScopeId"])();var De=Re((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("AppStatsCards"),s=Object(a["resolveComponent"])("router-link"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",Ie,[Object(a["createVNode"])(u,null,{title:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.ADMINISTRATION")),1)]})),content:Re((function(){return[Object(a["createVNode"])(i,{"app-statistics":e.appStatistics},null,8,["app-statistics"]),Object(a["createVNode"])("div",ge,[Object(a["createVNode"])("dl",null,[Object(a["createVNode"])("dt",null,[Object(a["createVNode"])(s,{to:"/admin/application"},{default:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APPLICATION")),1)]})),_:1})]),Object(a["createVNode"])("dd",null,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),Ue,Object(a["createVNode"])("span",ve,Object(a["toDisplayString"])(e.$t("admin.REGISTRATION_".concat(e.appConfig.is_registration_enabled?"ENABLED":"DISABLED"))),1)]),Object(a["createVNode"])("dt",null,[Object(a["createVNode"])(s,{to:"/admin/sports"},{default:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.SPORT",0))),1)]})),_:1})]),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),Object(a["createVNode"])("dt",null,[Object(a["createVNode"])(s,{to:"/admin/users"},{default:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("admin.USER",0))),1)]})),_:1})]),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]})),_:1})])})),he={id:"user-stats"};function Pe(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("StatCard");return Object(a["openBlock"])(),Object(a["createBlock"])("div",he,[Object(a["createVNode"])(i,{icon:"users",value:e.usersCount,text:e.$t("admin.USER",e.usersCount)},null,8,["value","text"]),Object(a["createVNode"])(i,{icon:"tags",value:e.sportsCount,text:e.$t("workouts.SPORT",e.sportsCount)},null,8,["value","text"]),Object(a["createVNode"])(i,{icon:"calendar",value:e.workoutCount,text:e.$t("workouts.WORKOUT",e.workoutCount)},null,8,["value","text"]),Object(a["createVNode"])(i,{icon:"folder-open",value:e.uploadDirSize.size,text:e.uploadDirSize.suffix},null,8,["value","text"])])}var Ce=n("05d9"),Me=Object(a["defineComponent"])({name:"UserStatsCards",components:{StatCard:Ce["a"]},props:{appStatistics:{type:Object,default:function(){return{}}}},setup:function(e){return{uploadDirSize:Object(a["computed"])((function(){return e.appStatistics.uploads_dir_size?Object(je["b"])(e.appStatistics.uploads_dir_size,!1):{size:0,suffix:"bytes"}})),usersCount:Object(a["computed"])((function(){return e.appStatistics.users?e.appStatistics.users:0})),sportsCount:Object(a["computed"])((function(){return e.appStatistics.sports?e.appStatistics.sports:0})),workoutCount:Object(a["computed"])((function(){return e.appStatistics.workouts?e.appStatistics.workouts:0}))}}});n("a1fe");Me.render=Pe;var ke=Me,Le={class:"card"},ze={class:"card-title"},ye={class:"card-content"};function we(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",Le,[Object(a["createVNode"])("div",ze,[Object(a["renderSlot"])(e.$slots,"title")]),Object(a["createVNode"])("div",ye,[Object(a["renderSlot"])(e.$slots,"content")])])}var Ve=Object(a["defineComponent"])({name:"Card"});n("16c2");Ve.render=we;var Be=Ve,Ge=Object(a["defineComponent"])({name:"AdminMenu",components:{AppStatsCards:ke,Card:Be},props:{appConfig:{type:Object,required:!0},appStatistics:{type:Object}},setup:function(){return{capitalize:a["capitalize"]}}});n("4a13");Ge.render=De,Ge.__scopeId="data-v-4f30aa64";var xe=Ge,Fe=Object(a["withScopeId"])("data-v-6d930723");Object(a["pushScopeId"])("data-v-6d930723");var We={id:"admin-sports",class:"admin-card"},Ke={class:"responsive-table"},$e=Object(a["createVNode"])("th",null,"#",-1),He={class:"text-left"},Ye={class:"text-left sport-action"},qe=Object(a["createVNode"])("th",null,null,-1),Xe={class:"center-text"},Ze=Object(a["createVNode"])("span",{class:"cell-heading"},"id",-1),Qe={class:"cell-heading"},Je={class:"sport-label"},et={class:"cell-heading"},tt={class:"center-text"},nt={class:"cell-heading"},rt={class:"sport-action"},ot={class:"cell-heading"},at={class:"action-button"},ct={key:0,class:"has-workouts"},it=Object(a["createVNode"])("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1);Object(a["popScopeId"])();var st=Fe((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("SportImage"),s=Object(a["resolveComponent"])("ErrorMessage"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",We,[Object(a["createVNode"])(u,null,{title:Fe((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.SPORTS.TITLE")),1)]})),content:Fe((function(){return[Object(a["createVNode"])("button",{class:"top-button",onClick:t[1]||(t[1]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(a["createVNode"])("div",Ke,[Object(a["createVNode"])("table",null,[Object(a["createVNode"])("thead",null,[Object(a["createVNode"])("tr",null,[$e,Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(a["createVNode"])("th",He,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(a["createVNode"])("th",Ye,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1),qe])]),Object(a["createVNode"])("tbody",null,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.translatedSports,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("tr",{key:t.id},[Object(a["createVNode"])("td",Xe,[Ze,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.id),1)]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",Qe,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(a["createVNode"])(i,{title:t.translatedLabel,"sport-label":t.label},null,8,["title","sport-label"])]),Object(a["createVNode"])("td",Je,[Object(a["createVNode"])("span",et,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.translatedLabel),1)]),Object(a["createVNode"])("td",tt,[Object(a["createVNode"])("span",nt,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(a["createVNode"])("i",{class:"fa fa".concat(t.is_active?"-check":"","-square-o"),"aria-hidden":"true"},null,2)]),Object(a["createVNode"])("td",rt,[Object(a["createVNode"])("span",ot,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1),Object(a["createVNode"])("div",at,[Object(a["createVNode"])("button",{class:{danger:t.is_active},onClick:function(n){return e.updateSportStatus(t.id,!t.is_active)}},Object(a["toDisplayString"])(e.$t("buttons.".concat(t.is_active?"DIS":"EN","ABLE"))),11,["onClick"]),t.has_workouts?(Object(a["openBlock"])(),Object(a["createBlock"])("span",ct,[it,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):Object(a["createCommentVNode"])("",!0)])])])})),128))])]),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("button",{onClick:t[2]||(t[2]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])})),ut=n("1119"),lt=Object(a["defineComponent"])({name:"AdminSports",setup:function(){var e=Object(y["b"])(),t=e.t,n=Object(B["a"])(),r=Object(a["computed"])((function(){return Object(ut["d"])(n.getters[V["b"].GETTERS.SPORTS],t)})),o=Object(a["computed"])((function(){return n.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function c(e,t){n.dispatch(V["b"].ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return{errorMessages:o,translatedSports:r,updateSportStatus:c}}});n("3214");lt.render=st,lt.__scopeId="data-v-6d930723";var dt=lt,Ot=Object(a["withScopeId"])("data-v-4711ecf8");Object(a["pushScopeId"])("data-v-4711ecf8");var pt={id:"admin-users",class:"admin-card"},mt={class:"responsive-table"},bt=Object(a["createVNode"])("th",null,"#",-1),Tt={class:"left-text"},Et={class:"left-text"},St={class:"left-text"},ft={class:"cell-heading"},_t={class:"cell-heading"},jt={class:"cell-heading"},At={class:"cell-heading"},Nt={class:"center-text"},Rt={class:"cell-heading"},It={class:"center-text"},gt={class:"cell-heading"},Ut={class:"center-text"},vt={class:"cell-heading"};Object(a["popScopeId"])();var Dt=Ot((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("FilterSelects"),s=Object(a["resolveComponent"])("UserPicture"),u=Object(a["resolveComponent"])("router-link"),l=Object(a["resolveComponent"])("Pagination"),d=Object(a["resolveComponent"])("ErrorMessage"),O=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",pt,[Object(a["createVNode"])(O,null,{title:Ot((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("admin.USER",0))),1)]})),content:Ot((function(){return[Object(a["createVNode"])("button",{class:"top-button",onClick:t[1]||(t[1]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(a["createVNode"])(i,{sort:e.sortList,order_by:e.orderByList,query:e.query,message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:e.reloadUsers},null,8,["sort","order_by","query","onUpdateSelect"]),Object(a["createVNode"])("div",mt,[Object(a["createVNode"])("table",null,[Object(a["createVNode"])("thead",null,[Object(a["createVNode"])("tr",null,[bt,Object(a["createVNode"])("th",Tt,Object(a["toDisplayString"])(e.$t("user.USERNAME")),1),Object(a["createVNode"])("th",Et,Object(a["toDisplayString"])(e.$t("user.EMAIL")),1),Object(a["createVNode"])("th",St,Object(a["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.WORKOUT",0))),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("user.ADMIN")),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1)])]),Object(a["createVNode"])("tbody",null,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.users,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("tr",{key:t.username},[Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",ft,Object(a["toDisplayString"])(e.$t("user.PROFILE.PICTURE")),1),Object(a["createVNode"])(s,{user:t},null,8,["user"])]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",_t,Object(a["toDisplayString"])(e.$t("user.USERNAME")),1),Object(a["createVNode"])(u,{to:"/users/".concat(t.username)},{default:Ot((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.username),1)]})),_:2},1032,["to"])]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",jt,Object(a["toDisplayString"])(e.$t("user.EMAIL")),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.email),1)]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",At,Object(a["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.format(e.getDateWithTZ(t.created_at,e.authUser.timezone),"dd/MM/yyyy HH:mm")),1)]),Object(a["createVNode"])("td",Nt,[Object(a["createVNode"])("span",Rt,Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.WORKOUT",0))),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.nb_workouts),1)]),Object(a["createVNode"])("td",It,[Object(a["createVNode"])("span",gt,Object(a["toDisplayString"])(e.$t("user.ADMIN")),1),Object(a["createVNode"])("i",{class:"fa fa".concat(t.admin?"-check":"","-square-o"),"aria-hidden":"true"},null,2)]),Object(a["createVNode"])("td",Ut,[Object(a["createVNode"])("span",vt,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1),Object(a["createVNode"])("button",{class:{danger:t.admin},disabled:t.username===e.authUser.username,onClick:function(n){return e.updateUser(t.username,!t.admin)}},Object(a["toDisplayString"])(e.$t("admin.USERS.TABLE.".concat(t.admin?"REMOVE":"ADD","_ADMIN_RIGHTS"))),11,["disabled","onClick"])])])})),128))])]),e.pagination.page?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,path:"/admin/users",pagination:e.pagination,query:e.query},null,8,["pagination","query"])):Object(a["createCommentVNode"])("",!0),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(d,{key:1,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("button",{onClick:t[2]||(t[2]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])})),ht=n("b166"),Pt=n("9176"),Ct=n("6d7d"),Mt=n("97e5"),kt=n("5e65"),Lt=Object(a["defineComponent"])({name:"AdminUsers",components:{FilterSelects:Pt["a"],Pagination:Ct["a"],UserPicture:w["a"]},setup:function(){var e=Object(B["a"])(),t=Object(ie["c"])(),n=Object(ie["d"])(),r=["admin","created_at","username","workouts_count"],o="created_at",c=Object(a["reactive"])(Object(Mt["a"])(t.query,r,o)),i=Object(a["computed"])((function(){return e.getters[V["e"].GETTERS.AUTH_USER_PROFILE]})),s=Object(a["computed"])((function(){return e.getters[V["d"].GETTERS.USERS]})),u=Object(a["computed"])((function(){return e.getters[V["d"].GETTERS.USERS_PAGINATION]})),l=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function d(t){e.dispatch(V["d"].ACTIONS.GET_USERS,t)}function O(t,n){e.dispatch(V["d"].ACTIONS.UPDATE_USER,{username:t,admin:n})}function p(e,t){c[e]=t,"per_page"===e&&(c.page=1),n.push({path:"/admin/users",query:c})}return Object(a["onBeforeMount"])((function(){return d(c)})),Object(a["watch"])((function(){return t.query}),(function(e){c=Object(Mt["a"])(e,r,o,{query:c}),d(c)})),Object(a["onUnmounted"])((function(){e.dispatch(V["d"].ACTIONS.EMPTY_USERS)})),{authUser:i,errorMessages:l,orderByList:r,pagination:u,query:c,sortList:Mt["c"],users:s,capitalize:a["capitalize"],format:ht["a"],getDateWithTZ:kt["c"],reloadUsers:p,updateUser:O}}});n("c083");Lt.render=Dt,Lt.__scopeId="data-v-4711ecf8";var zt=Lt,yt=Object(a["withScopeId"])("data-v-c81580c0");Object(a["pushScopeId"])("data-v-c81580c0");var wt={id:"user-profile"},Vt={class:"box"};Object(a["popScopeId"])();var Bt=yt((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("UserHeader"),s=Object(a["resolveComponent"])("UserProfileTabs"),u=Object(a["resolveComponent"])("router-view");return Object(a["openBlock"])(),Object(a["createBlock"])("div",wt,[Object(a["createVNode"])(i,{user:e.user},null,8,["user"]),Object(a["createVNode"])("div",Vt,[Object(a["createVNode"])(s,{tabs:e.tabs,selectedTab:e.tab,edition:!1},null,8,["tabs","selectedTab"]),Object(a["createVNode"])(u,{user:e.user},null,8,["user"])])])})),Gt=n("3c44"),xt={class:"profile-tabs custom-checkboxes-group"},Ft={class:"profile-tabs-checkboxes custom-checkboxes"};function Wt(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",xt,[Object(a["createVNode"])("div",Ft,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.tabs,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("div",{class:"profile-tab custom-checkbox",key:t},[Object(a["createVNode"])("label",null,[Object(a["createVNode"])("input",{type:"radio",id:t,name:t,checked:e.selectedTab===t,disabled:e.disabled,onInput:function(n){return e.$router.push(e.getPath(t))}},null,40,["id","name","checked","disabled","onInput"]),Object(a["createVNode"])("span",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.TABS.".concat(t))),1)])])})),128))])])}var Kt=Object(a["defineComponent"])({name:"UserProfileTabs",props:{tabs:{type:Object,required:!0},selectedTab:{type:String,required:!0},edition:{type:Boolean,required:!0},disabled:{type:Boolean,default:!1}},setup:function(e){function t(t){switch(t){case"PICTURE":return"/profile/edit/picture";case"PREFERENCES":return"/profile".concat(e.edition?"/edit":"","/preferences");default:case"PROFILE":return"/profile".concat(e.edition?"/edit":"")}}return{getPath:t}}});n("d42e");Kt.render=Wt;var $t=Kt,Ht=Object(a["defineComponent"])({name:"ProfileDisplay",components:{UserHeader:Gt["a"],UserProfileTabs:$t},props:{user:{type:Object,required:!0},tab:{type:String,required:!0}},setup:function(){return{tabs:["PROFILE","PREFERENCES"]}}});n("7ffe");Ht.render=Bt,Ht.__scopeId="data-v-c81580c0";var Yt=Ht,qt=n("71a7"),Xt=Object(a["withScopeId"])("data-v-39667dbe");Object(a["pushScopeId"])("data-v-39667dbe");var Zt={id:"user-preferences",class:"description-list"},Qt={class:"profile-buttons"};Object(a["popScopeId"])();var Jt=Xt((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",Zt,[Object(a["createVNode"])("dl",null,[Object(a["createVNode"])("dt",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+":",1),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.language),1),Object(a["createVNode"])("dt",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+":",1),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.timezone),1),Object(a["createVNode"])("dt",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.".concat(e.fistDayOfWeek))),1)]),Object(a["createVNode"])("div",Qt,[Object(a["createVNode"])("button",{onClick:t[1]||(t[1]=function(t){return e.$router.push("/profile/edit/preferences")})},Object(a["toDisplayString"])(e.$t("user.PROFILE.EDIT_PREFERENCES")),1),Object(a["createVNode"])("button",{onClick:t[2]||(t[2]=function(t){return e.$router.push("/")})},Object(a["toDisplayString"])(e.$t("common.HOME")),1)])])})),en=Object(a["defineComponent"])({name:"UserPreferences",props:{user:{type:Object,required:!0}},setup:function(e){var t=Object(a["computed"])((function(){return e.user.language?H[e.user.language]:H["en"]})),n=Object(a["computed"])((function(){return e.user.weekm?"MONDAY":"SUNDAY"})),r=Object(a["computed"])((function(){return e.user.timezone?e.user.timezone:"Europe/Paris"}));return{fistDayOfWeek:n,language:t,timezone:r}}});n("cbea");en.render=Jt,en.__scopeId="data-v-39667dbe";var tn=en,nn={id:"user-profile-edition",class:"center-card"};function rn(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("UserProfileTabs"),s=Object(a["resolveComponent"])("router-view"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",nn,[Object(a["createVNode"])(u,null,{title:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.".concat(e.tab,"_EDITION"))),1)]})),content:Object(a["withCtx"])((function(){return[Object(a["createVNode"])(i,{tabs:e.tabs,selectedTab:e.tab,edition:!0,disabled:e.loading},null,8,["tabs","selectedTab","disabled"]),Object(a["createVNode"])(s,{user:e.user},null,8,["user"])]})),_:1})])}var on=Object(a["defineComponent"])({name:"ProfileEdition",components:{UserProfileTabs:$t},props:{user:{type:Object,required:!0},tab:{type:String,required:!0}},setup:function(){var e=Object(B["a"])();return{loading:Object(a["computed"])((function(){return e.getters[V["e"].GETTERS.USER_LOADING]})),tabs:["PROFILE","PICTURE","PREFERENCES"]}}});on.render=rn;var an=on,cn={id:"user-infos-edition"},sn={class:"profile-form form-box"},un={class:"form-items",for:"email"},ln={class:"form-items",for:"registrationDate"},dn={class:"form-items",for:"password"},On={class:"form-items",for:"passwordConfirmation"},pn=Object(a["createVNode"])("hr",null,null,-1),mn={class:"form-items",for:"first_name"},bn={class:"form-items",for:"last_name"},Tn={class:"form-items",for:"birth_date"},En={class:"form-items",for:"location"},Sn={class:"form-items"},fn={class:"form-buttons"},_n={class:"confirm",type:"submit"};function jn(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("Modal"),s=Object(a["resolveComponent"])("ErrorMessage"),u=Object(a["resolveComponent"])("CustomTextArea");return Object(a["openBlock"])(),Object(a["createBlock"])("div",cn,[e.displayModal?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[1]||(t[1]=function(t){return e.deleteAccount(e.user.username)}),onCancelAction:t[2]||(t[2]=function(t){return e.updateDisplayModal(!1)})},null,8,["title","message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("div",sn,[e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("form",{onSubmit:t[11]||(t[11]=Object(a["withModifiers"])((function(){return e.updateProfile&&e.updateProfile.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("label",un,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.EMAIL"))+" ",1),Object(a["createVNode"])("input",{id:"email",value:e.user.email,disabled:""},null,8,["value"])]),Object(a["createVNode"])("label",ln,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),Object(a["createVNode"])("input",{id:"registrationDate",value:e.registrationDate,disabled:""},null,8,["value"])]),Object(a["createVNode"])("label",dn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PASSWORD"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"password",type:"password","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userForm.password=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.password]])]),Object(a["createVNode"])("label",On,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PASSWORD_CONFIRMATION"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"passwordConfirmation",type:"password","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.userForm.password_conf=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.password_conf]])]),pn,Object(a["createVNode"])("label",mn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"first_name","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.userForm.first_name=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.first_name]])]),Object(a["createVNode"])("label",bn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"last_name","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.userForm.last_name=t})},null,512),[[a["vModelText"],e.userForm.last_name]])]),Object(a["createVNode"])("label",Tn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[7]||(t[7]=function(t){return e.userForm.birth_date=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.birth_date]])]),Object(a["createVNode"])("label",En,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"location","onUpdate:modelValue":t[8]||(t[8]=function(t){return e.userForm.location=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.location]])]),Object(a["createVNode"])("label",Sn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.BIO"))+" ",1),Object(a["createVNode"])(u,{name:"bio",charLimit:200,input:e.userForm.bio,disabled:e.loading,onUpdateValue:e.updateBio},null,8,["input","disabled","onUpdateValue"])]),Object(a["createVNode"])("div",fn,[Object(a["createVNode"])("button",_n,Object(a["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[9]||(t[9]=Object(a["withModifiers"])((function(t){return e.$router.push("/profile")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.CANCEL")),1),Object(a["createVNode"])("button",{class:"danger",onClick:t[10]||(t[10]=Object(a["withModifiers"])((function(t){return e.updateDisplayModal(!0)}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],32)])])}var An=Object(a["defineComponent"])({name:"UserInfosEdition",props:{user:{type:Object,required:!0}},setup:function(e){var t=Object(B["a"])(),n=Object(a["reactive"])({password:"",password_conf:"",first_name:"",last_name:"",birth_date:"",location:"",bio:""}),r=Object(a["computed"])((function(){return e.user.created_at?Object(ht["a"])(new Date(e.user.created_at),"dd/MM/yyyy HH:mm"):""})),o=Object(a["computed"])((function(){return t.getters[V["e"].GETTERS.USER_LOADING]})),c=Object(a["computed"])((function(){return t.getters[V["a"].GETTERS.ERROR_MESSAGES]})),i=Object(a["ref"])(!1);function s(e){n.first_name=e.first_name?e.first_name:"",n.last_name=e.last_name?e.last_name:"",n.birth_date=e.birth_date?Object(ht["a"])(new Date(e.birth_date),"yyyy-MM-dd"):"",n.location=e.location?e.location:"",n.bio=e.bio?e.bio:""}function u(e){n.bio=e}function l(){t.dispatch(V["e"].ACTIONS.UPDATE_USER_PROFILE,n)}function d(e){i.value=e}function O(e){t.dispatch(V["e"].ACTIONS.DELETE_ACCOUNT,{username:e})}return Object(a["onMounted"])((function(){e.user&&s(e.user)})),{displayModal:i,errorMessages:c,loading:o,registrationDate:r,userForm:n,deleteAccount:O,updateBio:u,updateDisplayModal:d,updateProfile:l}}});n("0679");An.render=jn;var Nn=An,Rn=Object(a["withScopeId"])("data-v-500d4a7a");Object(a["pushScopeId"])("data-v-500d4a7a");var In={id:"user-picture-edition"},gn={class:"user-picture-form"},Un={class:"picture-buttons"};Object(a["popScopeId"])();var vn=Rn((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("ErrorMessage"),s=Object(a["resolveComponent"])("UserPicture");return Object(a["openBlock"])(),Object(a["createBlock"])("div",In,[Object(a["createVNode"])("div",gn,[e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])(s,{user:e.user},null,8,["user"]),Object(a["createVNode"])("form",{onSubmit:t[4]||(t[4]=Object(a["withModifiers"])((function(){return e.updateUserPicture&&e.updateUserPicture.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:t[1]||(t[1]=function(){return e.updatePictureFile&&e.updatePictureFile.apply(e,arguments)})},null,32),Object(a["createVNode"])("div",Un,[Object(a["createVNode"])("button",{type:"submit",disabled:!e.pictureFile},Object(a["toDisplayString"])(e.$t("user.PROFILE.PICTURE_UPDATE")),9,["disabled"]),e.user.picture?(Object(a["openBlock"])(),Object(a["createBlock"])("button",{key:0,class:"danger",onClick:t[2]||(t[2]=function(){return e.deleteUserPicture&&e.deleteUserPicture.apply(e,arguments)})},Object(a["toDisplayString"])(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("button",{class:"cancel",onClick:t[3]||(t[3]=function(t){return e.$router.push("/profile")})},Object(a["toDisplayString"])(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)]),Object(a["createVNode"])("span",null,Object(a["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(a["toDisplayString"])(e.fileSizeLimit),1)],32)])])})),Dn=Object(a["defineComponent"])({name:"UserPictureEdition",components:{UserPicture:w["a"]},props:{user:{type:Object,required:!0}},setup:function(){var e=Object(B["a"])(),t=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.ERROR_MESSAGES]})),n=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.APP_CONFIG]})),r=n.value.max_single_file_size?Object(je["b"])(n.value.max_single_file_size):"",o=Object(a["ref"])(null);function c(){e.dispatch(V["e"].ACTIONS.DELETE_PICTURE)}function i(e){e.target.files&&(o.value=e.target.files[0])}function s(){o.value&&e.dispatch(V["e"].ACTIONS.UPDATE_USER_PICTURE,{picture:o.value})}return{errorMessages:t,fileSizeLimit:r,pictureFile:o,deleteUserPicture:c,updateUserPicture:s,updatePictureFile:i}}});n("b9fd");Dn.render=vn,Dn.__scopeId="data-v-500d4a7a";var hn=Dn,Pn={id:"user-preferences-edition"},Cn={class:"profile-form form-box"},Mn={class:"form-items"},kn={class:"form-items",for:"timezone"},Ln={class:"form-items"},zn={class:"form-buttons"},yn={class:"confirm",type:"submit"};function wn(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("ErrorMessage");return Object(a["openBlock"])(),Object(a["createBlock"])("div",Pn,[Object(a["createVNode"])("div",Cn,[e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("form",{onSubmit:t[5]||(t[5]=Object(a["withModifiers"])((function(){return e.updateProfile&&e.updateProfile.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("label",Mn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("select",{id:"language","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.userForm.language=t}),disabled:e.loading},[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.availableLanguages,(function(e){return Object(a["openBlock"])(),Object(a["createBlock"])("option",{value:e.value,key:e.value},Object(a["toDisplayString"])(e.label),9,["value"])})),128))],8,["disabled"]),[[a["vModelSelect"],e.userForm.language]])]),Object(a["createVNode"])("label",kn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"timezone","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.userForm.timezone=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.timezone]])]),Object(a["createVNode"])("label",Ln,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("select",{id:"weekm","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userForm.weekm=t}),disabled:e.loading},[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.weekStart,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("option",{value:t.value,key:t.value},Object(a["toDisplayString"])(e.$t("user.PROFILE.".concat(t.label))),9,["value"])})),128))],8,["disabled"]),[[a["vModelSelect"],e.userForm.weekm]])]),Object(a["createVNode"])("div",zn,[Object(a["createVNode"])("button",yn,Object(a["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[4]||(t[4]=Object(a["withModifiers"])((function(t){return e.$router.push("/profile/preferences")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.CANCEL")),1)])],32)])])}var Vn=Object(a["defineComponent"])({name:"UserPreferencesEdition",props:{user:{type:Object,required:!0}},setup:function(e){var t=Object(B["a"])(),n=Object(a["reactive"])({language:"",timezone:"Europe/Paris",weekm:!1}),r=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],o=Object(a["computed"])((function(){return t.getters[V["e"].GETTERS.USER_LOADING]})),c=Object(a["computed"])((function(){return t.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function i(e){n.language=e.language?e.language:"en",n.timezone=e.timezone?e.timezone:"Europe/Paris",n.weekm=!!e.weekm&&e.weekm}function s(){t.dispatch(V["e"].ACTIONS.UPDATE_USER_PREFERENCES,n)}return Object(a["onMounted"])((function(){e.user&&i(e.user)})),{availableLanguages:q,errorMessages:c,loading:o,userForm:n,weekStart:r,updateProfile:s}}});Vn.render=wn;var Bn=Vn,Gn=n("5502"),xn=n("ade3"),Fn=n("bc3a"),Wn=n.n(Fn),Kn=Wn.a.create({baseURL:Object(G["a"])()});Kn.interceptors.request.use((function(e){var t=Zr.getters[V["e"].GETTERS.AUTH_TOKEN];if(t){var n="Bearer ".concat(t);e.headers.Authorization!==n&&(e.headers.Authorization="Bearer ".concat(t))}return e}),(function(e){return Promise.reject(e)}));var $n,Hn,Yn,qn,Xn,Zn,Qn,Jn,er,tr,nr,rr,or,ar,cr=Kn,ir=($n={},Object(xn["a"])($n,V["a"].ACTIONS.GET_APPLICATION_CONFIG,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_LOADING,!0),cr.get("config").then((function(t){"success"===t.data.status?e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_LOADING,!1)}))})),Object(xn["a"])($n,V["a"].ACTIONS.GET_APPLICATION_STATS,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("stats/all").then((function(t){"success"===t.data.status?e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])($n,V["a"].ACTIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.patch("config",t).then((function(t){"success"===t.data.status?(e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),no.push("/admin/application")):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),$n),sr=(Hn={},Object(xn["a"])(Hn,V["a"].GETTERS.APP_CONFIG,(function(e){return e.application.config})),Object(xn["a"])(Hn,V["a"].GETTERS.APP_LOADING,(function(e){return e.appLoading})),Object(xn["a"])(Hn,V["a"].GETTERS.APP_STATS,(function(e){return e.application.statistics})),Object(xn["a"])(Hn,V["a"].GETTERS.ERROR_MESSAGES,(function(e){return e.errorMessages})),Object(xn["a"])(Hn,V["a"].GETTERS.LANGUAGE,(function(e){return e.language})),Object(xn["a"])(Hn,V["a"].GETTERS.LOCALE,(function(e){return e.locale})),Hn),ur=(Yn={},Object(xn["a"])(Yn,V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES,(function(e){e.errorMessages=null})),Object(xn["a"])(Yn,V["a"].MUTATIONS.SET_ERROR_MESSAGES,(function(e,t){e.errorMessages=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.application.config=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_APPLICATION_LOADING,(function(e,t){e.appLoading=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_APPLICATION_STATS,(function(e,t){e.application.statistics=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_LANG,(function(e,t){e.language=t,e.locale=$[t]})),Yn),lr={root:!0,language:"en",locale:x["a"],errorMessages:null,application:{},appLoading:!1},dr=(qn={},Object(xn["a"])(qn,V["b"].ACTIONS.GET_SPORTS,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("sports").then((function(t){"success"===t.data.status?e.commit(V["b"].MUTATIONS.SET_SPORTS,t.data.data.sports):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(qn,V["b"].ACTIONS.UPDATE_SPORTS,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.patch("sports/".concat(t.id),{is_active:t.isActive}).then((function(t){"success"===t.data.status?e.dispatch(V["b"].ACTIONS.GET_SPORTS):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),qn),Or=Object(xn["a"])({},V["b"].GETTERS.SPORTS,(function(e){return e.sports})),pr=Object(xn["a"])({},V["b"].MUTATIONS.SET_SPORTS,(function(e,t){e.sports=t})),mr={sports:[]},br={state:mr,actions:dr,getters:Or,mutations:pr},Tr=br,Er=Object(xn["a"])({},V["c"].ACTIONS.GET_USER_STATS,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("stats/".concat(t.username,"/").concat(t.filterType),{params:t.params}).then((function(t){"success"===t.data.status?e.commit(V["c"].MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Sr=Object(xn["a"])({},V["c"].GETTERS.USER_STATS,(function(e){return e.statistics})),fr=(Xn={},Object(xn["a"])(Xn,V["c"].MUTATIONS.UPDATE_USER_STATS,(function(e,t){e.statistics=t})),Object(xn["a"])(Xn,V["c"].MUTATIONS.EMPTY_USER_STATS,(function(e){e.statistics={}})),Xn),_r={statistics:{}},jr={state:_r,actions:Er,getters:Sr,mutations:fr},Ar=jr,Nr=Wn.a.create({baseURL:Object(G["a"])()}),Rr=Nr,Ir=K.global.locale,gr=function(e){localStorage.removeItem("authToken"),e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["c"].MUTATIONS.EMPTY_USER_STATS),e.commit(V["e"].MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(V["d"].MUTATIONS.UPDATE_USERS,[]),e.commit(V["f"].MUTATIONS.EMPTY_WORKOUTS),e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),no.push("/login")},Ur=(Zn={},Object(xn["a"])(Zn,V["e"].ACTIONS.CHECK_AUTH_USER,(function(e){window.localStorage.authToken&&!e.getters[V["e"].GETTERS.IS_AUTHENTICATED]&&(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE))})),Object(xn["a"])(Zn,V["e"].ACTIONS.GET_USER_PROFILE,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("auth/profile").then((function(t){"success"===t.data.status?(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&(e.commit(V["a"].MUTATIONS.UPDATE_LANG,t.data.data.language),Ir.value=t.data.data.language),e.dispatch(V["b"].ACTIONS.GET_SPORTS)):(Object(G["b"])(e,null),gr(e))})).catch((function(t){Object(G["b"])(e,t),gr(e)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.LOGIN_OR_REGISTER,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),Rr.post("/auth/".concat(t.actionType),t.formData).then((function(n){if("success"===n.data.status){var r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(V["e"].MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE).then((function(){return no.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")}))}else Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.LOGOUT,(function(e){gr(e)})),Object(xn["a"])(Zn,V["e"].ACTIONS.UPDATE_USER_PROFILE,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),cr.post("auth/profile/edit",t).then((function(t){"success"===t.data.status?(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),no.push("/profile")):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.UPDATE_USER_PREFERENCES,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),cr.post("auth/profile/edit/preferences",t).then((function(t){"success"===t.data.status?(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(V["a"].MUTATIONS.UPDATE_LANG,t.data.data.language),Ir.value=t.data.data.language,no.push("/profile/preferences")):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.UPDATE_USER_PICTURE,(function(e,t){if(e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");var n=new FormData;n.append("file",t.picture),cr.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){"success"===t.data.status?e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE).then((function(){return no.push("/profile")})):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.DELETE_ACCOUNT,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.delete("users/".concat(t.username)).then((function(t){204===t.status?e.dispatch(V["e"].ACTIONS.LOGOUT).then((function(){return no.push("/")})):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.DELETE_PICTURE,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),cr.delete("auth/picture").then((function(t){204===t.status?e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE).then((function(){return no.push("/profile")})):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.SEND_PASSWORD_RESET_REQUEST,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),Rr.post("auth/password/reset-request",t).then((function(t){"success"===t.data.status?no.push("/password-reset/sent"):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.RESET_USER_PASSWORD,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),Rr.post("auth/password/update",t).then((function(t){"success"===t.data.status?no.push("/password-reset/password-updated"):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Zn),vr=(Qn={},Object(xn["a"])(Qn,V["e"].GETTERS.AUTH_TOKEN,(function(e){return e.authToken})),Object(xn["a"])(Qn,V["e"].GETTERS.AUTH_USER_PROFILE,(function(e){return e.authUserProfile})),Object(xn["a"])(Qn,V["e"].GETTERS.IS_AUTHENTICATED,(function(e){return null!==e.authToken})),Object(xn["a"])(Qn,V["e"].GETTERS.IS_ADMIN,(function(e){return e.authUserProfile&&e.authUserProfile.admin})),Object(xn["a"])(Qn,V["e"].GETTERS.USER_LOADING,(function(e){return e.loading})),Qn),Dr=(Jn={},Object(xn["a"])(Jn,V["e"].MUTATIONS.CLEAR_AUTH_USER_TOKEN,(function(e){e.authToken=null,e.authUserProfile={}})),Object(xn["a"])(Jn,V["e"].MUTATIONS.UPDATE_AUTH_TOKEN,(function(e,t){e.authToken=t})),Object(xn["a"])(Jn,V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,(function(e,t){e.authUserProfile=t})),Object(xn["a"])(Jn,V["e"].MUTATIONS.UPDATE_USER_LOADING,(function(e,t){e.loading=t})),Jn),hr={authToken:null,authUserProfile:{},loading:!1},Pr={state:hr,actions:Ur,getters:vr,mutations:Dr},Cr=Pr,Mr=(er={},Object(xn["a"])(er,V["d"].ACTIONS.EMPTY_USER,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USER,{})})),Object(xn["a"])(er,V["d"].ACTIONS.EMPTY_USERS,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USERS,[]),e.commit(V["d"].MUTATIONS.UPDATE_USERS_PAGINATION,{})})),Object(xn["a"])(er,V["d"].ACTIONS.GET_USER,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!0),cr.get("users/".concat(t)).then((function(t){"success"===t.data.status?e.commit(V["d"].MUTATIONS.UPDATE_USER,t.data.data.users[0]):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(xn["a"])(er,V["d"].ACTIONS.GET_USERS,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!0),cr.get("users",{params:t}).then((function(t){"success"===t.data.status?(e.commit(V["d"].MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(V["d"].MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(xn["a"])(er,V["d"].ACTIONS.UPDATE_USER,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.patch("users/".concat(t.username),{admin:t.admin}).then((function(t){"success"===t.data.status?e.commit(V["d"].MUTATIONS.UPDATE_USER_IN_USERS,t.data.data.users[0]):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),er),kr=(tr={},Object(xn["a"])(tr,V["d"].GETTERS.USER,(function(e){return e.user})),Object(xn["a"])(tr,V["d"].GETTERS.USERS,(function(e){return e.users})),Object(xn["a"])(tr,V["d"].GETTERS.USERS_LOADING,(function(e){return e.loading})),Object(xn["a"])(tr,V["d"].GETTERS.USERS_PAGINATION,(function(e){return e.pagination})),tr),Lr=(nr={},Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USER,(function(e,t){e.user=t})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USER_IN_USERS,(function(e,t){e.users=e.users.map((function(e){return e.username===t.username?t:e}))})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USERS,(function(e,t){e.users=t})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USERS_LOADING,(function(e,t){e.loading=t})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USERS_PAGINATION,(function(e,t){e.pagination=t})),nr),zr={user:{},users:[],loading:!1,pagination:{}},yr={state:zr,actions:Mr,getters:kr,mutations:Lr},wr=yr,Vr=n("4870"),Br=function(e,t,n){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("workouts",{params:t}).then((function(t){"success"===t.data.status?(e.commit(V["f"].MUTATIONS[n],t.data.data.workouts),n===Vr["c"]["SET_USER_WORKOUTS"]&&e.commit(V["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))},Gr=(rr={},Object(xn["a"])(rr,V["f"].ACTIONS.GET_CALENDAR_WORKOUTS,(function(e,t){e.commit(V["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Br(e,t,Vr["c"]["SET_CALENDAR_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_USER_WORKOUTS,(function(e,t){Br(e,t,Vr["c"]["SET_USER_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_TIMELINE_WORKOUTS,(function(e,t){Br(e,t,Vr["c"]["SET_TIMELINE_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_MORE_TIMELINE_WORKOUTS,(function(e,t){Br(e,t,Vr["c"]["ADD_TIMELINE_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_WORKOUT_DATA,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0);var n=t.segmentId?"/segment/".concat(t.segmentId):"";cr.get("workouts/".concat(t.workoutId)).then((function(r){var o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(V["f"].MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(cr.get("workouts/".concat(t.workoutId,"/chart_data").concat(n)).then((function(t){"success"===t.data.status&&e.commit(V["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),cr.get("workouts/".concat(t.workoutId,"/gpx").concat(n)).then((function(t){"success"===t.data.status&&e.commit(V["f"].MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),Object(G["b"])(e,null)})).catch((function(t){e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.DELETE_WORKOUT,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),cr.delete("workouts/".concat(t.workoutId)).then((function(){e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE),no.push("/")})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.EDIT_WORKOUT,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),cr.patch("workouts/".concat(t.workoutId),t.data).then((function(){e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE),e.dispatch(V["f"].ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((function(){no.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.ADD_WORKOUT,(function(e,t){if(e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");var n=new FormData;n.append("file",t.file),n.append("data",'{"sport_id": '.concat(t.sport_id,', "notes": "').concat(t.notes,'"}')),cr.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){if("created"===t.data.status){e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];no.push(1===t.data.data.workouts.length?"/workouts/".concat(n.id):"/")}})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.ADD_WORKOUT_WITHOUT_GPX,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),cr.post("workouts/no_gpx",t).then((function(t){if("created"===t.data.status){e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];no.push("/workouts/".concat(n.id))}})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),rr),xr=(or={},Object(xn["a"])(or,V["f"].GETTERS.CALENDAR_WORKOUTS,(function(e){return e.calendar_workouts})),Object(xn["a"])(or,V["f"].GETTERS.TIMELINE_WORKOUTS,(function(e){return e.timeline_workouts})),Object(xn["a"])(or,V["f"].GETTERS.USER_WORKOUTS,(function(e){return e.user_workouts})),Object(xn["a"])(or,V["f"].GETTERS.WORKOUT_DATA,(function(e){return e.workoutData})),Object(xn["a"])(or,V["f"].GETTERS.WORKOUTS_PAGINATION,(function(e){return e.pagination})),or),Fr=(ar={},Object(xn["a"])(ar,V["f"].MUTATIONS.ADD_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=e.timeline_workouts.concat(t)})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_CALENDAR_WORKOUTS,(function(e,t){e.calendar_workouts=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_USER_WORKOUTS,(function(e,t){e.user_workouts=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,(function(e,t){e.pagination=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT,(function(e,t){e.workoutData.workout=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,(function(e,t){e.workoutData.chartData=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT_GPX,(function(e,t){e.workoutData.gpx=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT_LOADING,(function(e,t){e.workoutData.loading=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS,(function(e){e.calendar_workouts=[]})),Object(xn["a"])(ar,V["f"].MUTATIONS.EMPTY_WORKOUTS,(function(e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]})),Object(xn["a"])(ar,V["f"].MUTATIONS.EMPTY_WORKOUT,(function(e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}})),ar),Wr={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},Kr={state:Wr,actions:Gr,getters:xr,mutations:Fr},$r=Kr,Hr={sportsModule:Tr,statsModule:Ar,userModule:Cr,usersModule:wr,workoutsModule:$r},Yr={state:lr,actions:ir,getters:sr,mutations:ur,modules:Hr},qr=Yr,Xr=Object(Gn["a"])(qr),Zr=Xr,Qr=function(e){var t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},Jr=[{path:"/",name:"Dashboard",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"7277"))}},{path:"/login",name:"Login",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"d277"))},props:{action:"login"}},{path:"/register",name:"Register",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"d277"))},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:Yt,props:function(e){return{tab:Qr(e.path)}},children:[{path:"",name:"UserInfos",component:qt["a"]},{path:"preferences",name:"UserPreferences",component:tn}]},{path:"edit",name:"UserProfileEdition",component:an,props:function(e){return{tab:Qr(e.path)}},children:[{path:"",name:"UserInfosEdition",component:Nn},{path:"picture",name:"UserPictureEdition",component:hn},{path:"preferences",name:"UserPreferencesEdition",component:Bn}]}]},{path:"/statistics",name:"Statistics",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).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 Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"0385"))}},{path:"/workouts/:workoutId",name:"Workout",component:function(){return Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"304a"))},props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:function(){return Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"8ee9"))}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:function(){return Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"304a"))},props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:function(){return Promise.all([n.e("main~workouts"),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:xe},{path:"application",name:"ApplicationAdministration",component:Ne},{path:"application/edit",name:"ApplicationAdministrationEdition",component:Ne,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:dt},{path:"users",name:"UsersAdministration",component:zt}]},{path:"/:pathMatch(.*)*",name:"not-found",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"e19f"))}}],eo=Object(ie["a"])({history:Object(ie["b"])("/"),routes:Jr}),to=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register"];eo.beforeEach((function(e,t,n){Zr.dispatch(V["e"].ACTIONS.CHECK_AUTH_USER).then((function(){if(Zr.getters[V["e"].GETTERS.IS_AUTHENTICATED]&&to.includes(e.path))return n("/");if(Zr.getters[V["e"].GETTERS.IS_AUTHENTICATED]||to.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()}))}));var no=eo,ro=Object(a["withScopeId"])("data-v-f5e8066a");Object(a["pushScopeId"])("data-v-f5e8066a");var oo={class:"alert-message"};Object(a["popScopeId"])();var ao=ro((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",oo,[Object(a["createVNode"])("div",{innerHTML:e.$t(e.message)},null,8,["innerHTML"])])})),co=Object(a["defineComponent"])({name:"AlertMessage",props:{message:String}});n("f5dfd");co.render=ao,co.__scopeId="data-v-f5e8066a";var io=co,so=Object(a["withScopeId"])("data-v-ad3739fc");Object(a["pushScopeId"])("data-v-ad3739fc");var uo={class:"custom-textarea"},lo={class:"remaining-chars"};Object(a["popScopeId"])();var Oo=so((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",uo,[Object(a["withDirectives"])(Object(a["createVNode"])("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.text=t}),onInput:t[2]||(t[2]=function(){return e.updateText&&e.updateText.apply(e,arguments)})},null,40,["id","name","maxLenght","disabled"]),[[a["vModelText"],e.text]]),Object(a["createVNode"])("div",lo,Object(a["toDisplayString"])(e.$t("workouts.REMAINING_CHARS"))+": "+Object(a["toDisplayString"])(e.text.length)+"/"+Object(a["toDisplayString"])(e.charLimit),1)])})),po=(n("a9e3"),Object(a["defineComponent"])({name:"CustomTextArea",props:{charLimit:{type:Number,default:500},disabled:{type:Boolean,default:!1},input:{type:String,default:""},name:{type:String,required:!0}},emits:["updateValue"],setup:function(e,t){var n=t.emit,r=Object(a["ref"])("");function o(e){n("updateValue",e.target.value)}return Object(a["watch"])((function(){return e.input}),(function(e){r.value=e})),{text:r,updateText:o}}}));n("aa0a");po.render=Oo,po.__scopeId="data-v-ad3739fc";var mo=po,bo=Object(a["withScopeId"])("data-v-5ef2ddef");Object(a["pushScopeId"])("data-v-5ef2ddef");var To={class:"dropdown-wrapper"},Eo={key:0,class:"dropdown-list"};Object(a["popScopeId"])();var So=bo((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",To,[Object(a["createVNode"])("div",{class:"dropdown-selected",onClick:t[1]||(t[1]=function(){return e.toggleDropdown&&e.toggleDropdown.apply(e,arguments)})},[Object(a["renderSlot"])(e.$slots,"default",{},void 0,!0)]),e.isOpen?(Object(a["openBlock"])(),Object(a["createBlock"])("ul",Eo,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.dropdownOptions,(function(t,n){return Object(a["openBlock"])(),Object(a["createBlock"])("li",{class:["dropdown-item",{selected:t.value===e.selected}],key:n,onClick:function(n){return e.updateSelected(t)}},Object(a["toDisplayString"])(t.label),11,["onClick"])})),128))])):Object(a["createCommentVNode"])("",!0)])})),fo=Object(a["defineComponent"])({name:"Dropdown",props:{options:{type:Object,required:!0},selected:{type:String,required:!0}},emits:{selected:function(e){return e}},setup:function(e,t){var n=t.emit,r=Object(ie["c"])(),o=Object(a["ref"])(!1),c=e.options.map((function(e){return e}));function i(){o.value=!o.value}function s(e){n("selected",e),o.value=!1}return Object(a["watch"])((function(){return r.path}),(function(){return o.value=!1})),{dropdownOptions:c,isOpen:o,toggleDropdown:i,updateSelected:s}}});n("95ba");fo.render=So,fo.__scopeId="data-v-5ef2ddef";var _o=fo,jo=Object(a["withScopeId"])("data-v-5c177a93");Object(a["pushScopeId"])("data-v-5c177a93");var Ao={class:"error-message"},No={key:0},Ro={key:1};Object(a["popScopeId"])();var Io=jo((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",Ao,[Array.isArray(e.message)?(Object(a["openBlock"])(),Object(a["createBlock"])("ul",No,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.message,(function(t,n){return Object(a["openBlock"])(),Object(a["createBlock"])("li",{key:n},Object(a["toDisplayString"])(e.$t(t)),1)})),128))])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",Ro,Object(a["toDisplayString"])(e.$t(e.message)),1))])})),go=Object(a["defineComponent"])({name:"ErrorMessage",props:{message:[String,Array]}});n("4b55");go.render=Io,go.__scopeId="data-v-5c177a93";var Uo=go;function vo(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("CyclingSport"),s=Object(a["resolveComponent"])("CyclingTransport"),u=Object(a["resolveComponent"])("Hiking"),l=Object(a["resolveComponent"])("MountainBiking"),d=Object(a["resolveComponent"])("Running"),O=Object(a["resolveComponent"])("Walking");return Object(a["openBlock"])(),Object(a["createBlock"])("div",{class:"sport-img",style:{fill:e.sportColors[e.sportLabel]},title:e.title?e.title:e.$t("sports.".concat(e.sportLabel,".LABEL"))},["Cycling (Sport)"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0})):Object(a["createCommentVNode"])("",!0),"Cycling (Transport)"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:1})):Object(a["createCommentVNode"])("",!0),"Hiking"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(u,{key:2})):Object(a["createCommentVNode"])("",!0),"Mountain Biking"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:3})):Object(a["createCommentVNode"])("",!0),"Running"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(d,{key:4})):Object(a["createCommentVNode"])("",!0),"Walking"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(O,{key:5})):Object(a["createCommentVNode"])("",!0)],12,["title"])}var Do={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"},ho=Object(a["createVNode"])("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Po=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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);function Co(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Do,[ho,Po])}var Mo={name:"CyclingSport"};Mo.render=Co;var ko=Mo,Lo={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"},zo=Object(a["createVNode"])("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),yo=Object(a["createVNode"])("g",{id:"g147"},[Object(a["createVNode"])("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["createVNode"])("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);function wo(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Lo,[zo,yo])}var Vo={name:"CyclingTransport"};Vo.render=wo;var Bo=Vo,Go={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"},xo=Object(a["createVNode"])("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Fo=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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);function Wo(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Go,[xo,Fo])}var Ko={name:"Hiking"};Ko.render=Wo;var $o=Ko,Ho={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"},Yo=Object(a["createVNode"])("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),qo=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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["createVNode"])("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);function Xo(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Ho,[Yo,qo])}var Zo={name:"MountainBiking"};Zo.render=Xo;var Qo=Zo,Jo={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"},ea=Object(a["createVNode"])("desc",{id:"runningDescription"},"silhouette of a running person",-1),ta=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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);function na(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Jo,[ea,ta])}var ra={name:"Running"};ra.render=na;var oa=ra,aa={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"},ca=Object(a["createVNode"])("desc",{id:"walkingDescription"},"silhouette of a walking person",-1),ia=Object(a["createVNode"])("defs",{id:"defs797"},null,-1),sa=Object(a["createVNode"])("g",{id:"g792"},[Object(a["createVNode"])("path",{d:"m 272.74,80.771 c 22.318,0 40.401,-18.08 40.401,-40.389 C 313.141,18.084 295.058,0 272.74,0 c -22.281,0 -40.378,18.084 -40.378,40.383 0,22.308 18.096,40.388 40.378,40.388 z",id:"path788"}),Object(a["createVNode"])("path",{d:"m 328.5854,174.48445 -40.64148,10.93729 4.76008,-51.90474 0.123,-0.944 c 1.384,-10.514 -1.475,-21.146 -7.94,-29.556 -6.461,-8.409 -16.007,-13.903 -26.52,-15.287 -10.926,-1.429 -22.619,3.12 -31.206,8.646 -1.441,0.928 -84.97,54.921 -84.97,54.921 -5.175,3.358 -8.542,8.877 -9.165,15.016 -0.634,6.13 1.574,12.222 5.976,16.541 l 58.982,58 -6.417,48.954 -25.88143,79.08977 -54.08338,43.67932 c -14.762199,11.1022 -24.410111,22.37008 -15.912276,36.07186 8.515526,13.68031 27.439076,15.75973 42.273746,4.63076 l 48.9456,-38.84296 c 12.09075,-7.84858 23.84126,-20.18502 28.3003,-35.27702 L 235.052,315.187 l 26.365,36.639 6.684,119.628 c 0.73,12.991 11.501,23.036 24.349,23.036 0.441,0 0.92,-0.016 1.379,-0.039 13.453,-0.748 23.745,-12.262 23,-25.713 l -7.083,-126.736 c -0.271,-4.643 -1.846,-9.116 -4.56,-12.887 l -32.24,-44.811 7.981,-57.1 c -15.00943,6.0905 -25.84439,5.48716 0,0 l 59.50354,-17.8263 c 10.75379,-3.22166 16.4326,-12.34116 13.52152,-25.36894 -2.44853,-10.95778 -14.74571,-13.15695 -25.36666,-9.52431 z M 204.606,190.357 185.58,171.64 209.056,156.434 Z",id:"path790"})],-1);function ua(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",aa,[ca,ia,sa])}var la={name:"Walking"};la.render=ua;var da=la,Oa=Object(a["defineComponent"])({name:"SportImage",components:{CyclingSport:ko,CyclingTransport:Bo,Hiking:$o,MountainBiking:Qo,Running:oa,Walking:da},props:{sportLabel:{type:String,required:!0},title:{type:String,required:!1}},setup:function(){return{sportColors:Object(a["inject"])("sportColors")}}});Oa.render=vo;var pa=Oa,ma=Object(a["withScopeId"])("data-v-8bf75da8");Object(a["pushScopeId"])("data-v-8bf75da8");var ba={class:"loader"};Object(a["popScopeId"])();var Ta=ma((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",ba)})),Ea=Object(a["defineComponent"])({name:"Loader"});n("b373");Ea.render=Ta,Ea.__scopeId="data-v-8bf75da8";var Sa=Ea,fa=Object(a["withScopeId"])("data-v-21b6cb61");Object(a["pushScopeId"])("data-v-21b6cb61");var _a={id:"modal"},ja={class:"custom-modal"},Aa={key:0,class:"modal-message"},Na={key:1,class:"modal-message"},Ra={class:"modal-buttons"};Object(a["popScopeId"])();var Ia=fa((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("i18n-t"),s=Object(a["resolveComponent"])("ErrorMessage"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",_a,[Object(a["createVNode"])("div",ja,[Object(a["createVNode"])(u,null,{title:fa((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.title),1)]})),content:fa((function(){return[e.strongMessage?(Object(a["openBlock"])(),Object(a["createBlock"])("div",Aa,[Object(a["createVNode"])(i,{keypath:e.message},{default:fa((function(){return[Object(a["createVNode"])("span",null,Object(a["toDisplayString"])(e.strongMessage),1)]})),_:1},8,["keypath"])])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",Na,Object(a["toDisplayString"])(e.message),1)),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:2,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("div",Ra,[Object(a["createVNode"])("button",{class:"confirm",onClick:t[1]||(t[1]=function(t){return e.emit("confirmAction")})},Object(a["toDisplayString"])(e.$t("buttons.YES")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[2]||(t[2]=function(t){return e.emit("cancelAction")})},Object(a["toDisplayString"])(e.$t("buttons.NO")),1)])]})),_:1})])])})),ga=Object(a["defineComponent"])({name:"Modal",props:{title:{type:String,required:!0},message:{type:String,required:!0},strongMessage:{type:String||null,default:null}},emits:["cancelAction","confirmAction"],setup:function(e,t){var n=t.emit,r=Object(B["a"])(),o=Object(a["computed"])((function(){return r.getters[V["a"].GETTERS.ERROR_MESSAGES]}));return Object(a["onUnmounted"])((function(){return r.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),{errorMessages:o,emit:n}}});n("8728");ga.render=Ia,ga.__scopeId="data-v-21b6cb61";var Ua=ga,va=[io,Be,mo,_o,Uo,Sa,Ua,pa],Da={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)}};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"],o["a"]);var ha=Object(a["createApp"])(ce).provide("sportColors",ut["b"]).use(K).use(Zr).use(no).directive("click-outside",Da);va.forEach((function(e){ha.component(e.name,e)})),ha.mount("#app")},d257:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));n("caad"),n("2532"),n("d81d"),n("4de4"),n("ac1f"),n("1276");var r=n("dad5"),o=function(){return"/api/"},a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"UNKNOWN",o=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["a"].MUTATIONS.SET_ERROR_MESSAGES,o.includes("\n")?o.split("\n").filter((function(e){return""!==e})).map((function(e){return"api.ERROR.".concat(e)})):"api.ERROR.".concat(o))}},d42e:function(e,t,n){"use strict";n("dc79")},da66:function(e,t,n){},dad5:function(e,t,n){"use strict";var r,o,a,c,i,s,u,l,d,O,p,m,b,T,E;n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return _})),n.d(t,"c",(function(){return j})),n.d(t,"e",(function(){return A})),n.d(t,"d",(function(){return N})),n.d(t,"f",(function(){return R})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(r||(r={})),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"}(o||(o={})),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"}(a||(a={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(c||(c={})),function(e){e["SPORTS"]="SPORTS"}(i||(i={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(s||(s={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(u||(u={})),function(e){e["USER_STATS"]="USER_STATS"}(l||(l={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(d||(d={})),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["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES"}(O||(O={})),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"}(p||(p={})),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"}(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"}(b||(b={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(T||(T={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION"}(E||(E={}));var S=n("4870"),f={ACTIONS:r,GETTERS:o,MUTATIONS:a},_={ACTIONS:c,GETTERS:i,MUTATIONS:s},j={ACTIONS:u,GETTERS:l,MUTATIONS:d},A={ACTIONS:O,GETTERS:p,MUTATIONS:m},N={ACTIONS:b,GETTERS:T,MUTATIONS:E},R={ACTIONS:S["a"],GETTERS:S["b"],MUTATIONS:S["c"]}},dc79:function(e,t,n){},e7b6:function(e,t,n){var r={"./en/en.ts":"c142","./fr/fr.ts":"663e"};function o(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]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id="e7b6"},edb9:function(e,t,n){},f037:function(e,t,n){"use strict";n("aa8e")},f5dfd:function(e,t,n){"use strict";n("9838")},fb34:function(e,t,n){},fb41:function(e,t,n){}}); -//# sourceMappingURL=app.dad9d7e0.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.dad9d7e0.js.map b/fittrackee/dist/static/js/app.dad9d7e0.js.map deleted file mode 100644 index eb7e1d54..00000000 --- a/fittrackee/dist/static/js/app.dad9d7e0.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Common/StatCard.vue","webpack:///./src/components/Common/StatCard.vue?50f0","webpack:///./src/components/Common/StatCard.vue?8fe7","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?67ed","webpack:///./src/utils/sports.ts","webpack:///./src/components/User/UserPicture.vue?6d42","webpack:///./src/components/Common/Card.vue?8159","webpack:///./src/components/Common/Pagination.vue?efed","webpack:///./src/use/useStore.ts","webpack:///./src/components/Administration/AdminSports.vue?6443","webpack:///./src/components/Administration/AdminApplication.vue?7cc7","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?73f1","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?4ce6","webpack:///./src/store/modules/workouts/enums.ts","webpack:///./src/components/Administration/AdminMenu.vue?4bef","webpack:///./src/components/Common/ErrorMessage.vue?f921","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?a4e5","webpack:///./src/components/NavBar.vue?410d","webpack:///./src/utils/dates.ts","webpack:///./src/App.vue?4cf5","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/Pagination.vue","webpack:///./src/components/Common/Pagination.vue?93e2","webpack:///./src/components/Common/Pagination.vue?73f7","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?7c95","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?820e","webpack:///./src/components/Common/FilterSelects.vue?56eb","webpack:///./src/components/Footer.vue?d019","webpack:///./src/components/User/ProfileDisplay/index.vue?1702","webpack:///./src/components/Common/StatCard.vue?c013","webpack:///./src/components/Common/Modal.vue?4e3e","webpack:///./src/components/Common/FilterSelects.vue","webpack:///./src/components/Common/FilterSelects.vue?927e","webpack:///./src/components/Common/FilterSelects.vue?0254","webpack:///./src/components/Common/Dropdown.vue?2734","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?db14","webpack:///./src/utils/api.ts","webpack:///./src/components/Administration/AppStatsCards.vue?d919","webpack:///./src/components/Common/CustomTextArea.vue?6de7","webpack:///./src/components/Common/Loader.vue?9489","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?a666","webpack:///./src/components/Administration/AdminUsers.vue?8815","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?2f01","webpack:///./src/components/User/UserPicture.vue?22b2","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?2098","webpack:///./src/registerServiceWorker.ts","webpack:///./src/App.vue","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?87b7","webpack:///./src/components/Footer.vue?c832","webpack:///./src/components/NavBar.vue","webpack:///./src/i18n.ts","webpack:///./src/utils/locales.ts","webpack:///./src/components/NavBar.vue?a890","webpack:///./src/components/NavBar.vue?ab0f","webpack:///./src/components/NoConfig.vue","webpack:///./src/components/NoConfig.vue?37a4","webpack:///./src/components/NoConfig.vue?ad85","webpack:///./src/App.vue?3acc","webpack:///./src/App.vue?dfb6","webpack:///./src/components/Administration/AdminApplication.vue","webpack:///./src/components/Administration/AdminApplication.vue?8e5b","webpack:///./src/components/Administration/AdminApplication.vue?80c4","webpack:///./src/components/Administration/AdminMenu.vue","webpack:///./src/components/Administration/AppStatsCards.vue","webpack:///./src/components/Administration/AppStatsCards.vue?d6b2","webpack:///./src/components/Administration/AppStatsCards.vue?7576","webpack:///./src/components/Common/Card.vue","webpack:///./src/components/Common/Card.vue?f962","webpack:///./src/components/Common/Card.vue?a585","webpack:///./src/components/Administration/AdminMenu.vue?9783","webpack:///./src/components/Administration/AdminMenu.vue?4828","webpack:///./src/components/Administration/AdminSports.vue","webpack:///./src/components/Administration/AdminSports.vue?9572","webpack:///./src/components/Administration/AdminSports.vue?271c","webpack:///./src/components/Administration/AdminUsers.vue","webpack:///./src/components/Administration/AdminUsers.vue?e346","webpack:///./src/components/Administration/AdminUsers.vue?d3af","webpack:///./src/components/User/ProfileDisplay/index.vue","webpack:///./src/components/User/UserProfileTabs.vue","webpack:///./src/components/User/UserProfileTabs.vue?9e70","webpack:///./src/components/User/UserProfileTabs.vue?3fc9","webpack:///./src/components/User/ProfileDisplay/index.vue?f20a","webpack:///./src/components/User/ProfileDisplay/index.vue?b24c","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?2ffa","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?a232","webpack:///./src/components/User/ProfileEdition/index.vue","webpack:///./src/components/User/ProfileEdition/index.vue?4849","webpack:///./src/components/User/ProfileEdition/index.vue?f268","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?b205","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?92df","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?203b","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?311f","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?13dd","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?d2de","webpack:///./src/api/authApi.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/api/defaultApi.ts","webpack:///./src/store/modules/user/actions.ts","webpack:///./src/store/modules/user/getters.ts","webpack:///./src/store/modules/user/mutations.ts","webpack:///./src/store/modules/user/state.ts","webpack:///./src/store/modules/user/index.ts","webpack:///./src/store/modules/users/actions.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/router/index.ts","webpack:///./src/components/Common/AlertMessage.vue","webpack:///./src/components/Common/AlertMessage.vue?af1b","webpack:///./src/components/Common/AlertMessage.vue?2e10","webpack:///./src/components/Common/CustomTextArea.vue","webpack:///./src/components/Common/CustomTextArea.vue?8616","webpack:///./src/components/Common/CustomTextArea.vue?3b63","webpack:///./src/components/Common/Dropdown.vue","webpack:///./src/components/Common/Dropdown.vue?3644","webpack:///./src/components/Common/Dropdown.vue?9a46","webpack:///./src/components/Common/ErrorMessage.vue","webpack:///./src/components/Common/ErrorMessage.vue?ab8e","webpack:///./src/components/Common/ErrorMessage.vue?7b9e","webpack:///./src/components/Common/Images/SportImage/index.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue?7ed2","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue?dba6","webpack:///./src/components/Common/Images/SportImage/Hiking.vue","webpack:///./src/components/Common/Images/SportImage/Hiking.vue?3937","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue?9b70","webpack:///./src/components/Common/Images/SportImage/Running.vue","webpack:///./src/components/Common/Images/SportImage/Running.vue?2248","webpack:///./src/components/Common/Images/SportImage/Walking.vue","webpack:///./src/components/Common/Images/SportImage/Walking.vue?d660","webpack:///./src/components/Common/Images/SportImage/index.vue?2baa","webpack:///./src/components/Common/Images/SportImage/index.vue?5245","webpack:///./src/components/Common/Loader.vue","webpack:///./src/components/Common/Loader.vue?2b84","webpack:///./src/components/Common/Loader.vue?4fd1","webpack:///./src/components/Common/Modal.vue","webpack:///./src/components/Common/Modal.vue?1385","webpack:///./src/components/Common/Modal.vue?e362","webpack:///./src/custom-components.ts","webpack:///./src/directives.ts","webpack:///./src/main.ts","webpack:///./src/utils/index.ts","webpack:///./src/components/User/UserProfileTabs.vue?722a","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/user/enums.ts","webpack:///./src/store/modules/users/enums.ts","webpack:///./src/store/constants.ts","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack:///./src/components/NoConfig.vue?56f6","webpack:///./src/components/Common/AlertMessage.vue?e180"],"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","class","icon","text","props","String","required","Number","render","sportColors","Hiking","Running","Walking","sportIdColors","sports","colors","map","sport","id","label","sortSports","a","b","sportATranslatedLabel","translatedLabel","toLowerCase","sportBTranslatedLabel","translateSports","onlyActive","filter","is_active","sort","getSportLabel","workout","sport_id","useStore","user","username","nb_workouts","$t","total_distance","toFixed","nb_sports","components","UserPicture","__scopeId","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","Action","Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.","Admin","Administration","Application","Nombre maximum d'utilisateurs actifs ","Si égal à 0, pas limite d'inscription","Taille max. des archives zip (en Mo) ","Taille max. des fichiers (en Mo) ","Configuration de l'application","Nombre max. de fichiers dans une archive zip ","Revenir à l'admin","Etes-vous sûr de vouloir supprimer le compte de ","0"," ? Toutes les données seront définitivement.","Supprimer l'utilisateur","Activer/désactiver des sports.","Les inscriptions sont actuellement désactivées.","Les inscriptions sont actuellement activées.","Actif","des séances existent","Image","Label","Administration - Sports","Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).","utilisateur","utilisateurs","Ajouter les drois d'admin","Retirer les drois d'admin","status administrateur","date d'inscription","nom d'utilisateur","nombre de séances","Erreur. Veuillez réessayer ou contacter l'administrateur.","Email : une adresse email valide doit être fournie.","Erreur lors de la récupération de la configuration.","Erreur lors de la mise à jour de la configuration","Erreur, veuillez réessayer ou contacter l'administrateur.","Erreur, les inscriptions sont désactivées.","Extension de fichier non autorisée.","La taille du fichier est supérieure à la limite autorisée.","Identifiants invalides.","Données fournies incorrectes.","Jeton de connexion invalide, merci de vous reconnecter.","Jeton de connexion, merci de vous reconnecter.","Pas de fichier fourni.","Pas de fichier sélectionné.","Erreur Réseau.","Mot de passe : les mots de passe saisis sont différents.","Merci de fournir un jeton de connexion valide.","Mot de passe : 8 caractères minimum.","Ce sport n'existe pas.","Signature expirée. Merci de vous reconnecter.","Désolé, cet utilisateur existe déjà.","Inscription validée.","L'utilisateur n'existe pas","Nom d'utilisateur : 3 à 12 caractères requis.","Vous n'avez pas les permissions nécessaires.","précédent","suivant","Précédent","Annuler","Supprimer mon compte","Désactiver","Modifier","Activer","Filtrer","Se connecter","Non","S'inscrire","Valider","Oui","Confirmation","jour","jours","Accueil","ici","trier par ","tri","ascendant","descendant","par page","Total","Tableau de Bord","Ce mois","L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.","Page introuvable","Séance introuvable","Vélo (Sport)","Vélo (Transport)","Randonnée","VTT","Course","Marche","Statistiques","semaine","mois","année","Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.","Email","Saisir une adresse email","Saisir un mot de passe","Confirmer le mot de passe","Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe.","Langue","Se déconnecter","Mot de passe","Confirmation du mot de passe","Mot de passe oublié ?","Réinitialisation du mot de passe","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.","Votre mot de passe a été mis à jour. Cliquez "," pour vous connecter.","Revenir au profil","Bio","Date de naissance","Modifier le profil","Modifier les préférences","Premier jour de la semaine","Prénom","Nom","Lieu","Lundi","Image de profil","Mise à jour de l'image de profil","Mettre à jour l'image","Supprimer","Mise à jour des préférences","Mise à jour du profil","Date d'inscription","Dimanche","image","préférences","profil","Fuseau horaire","Désolé, les inscriptions sont désactivées.","Réinitialiser votre mot de passe","photo de l'utilisateur","Nom d'utilisateur","Ajouter une séance","analyse","dénivelé positif","vitesse moyenne","vitesse moy.","revenir à la séance","dénivelé négatif","afficher les filtres","distance","durée","Modifier la séance","altitude","fin","à partir de","fichier .gpx","masquer les filtres","km","Séances récentes","Charger les séances suivantes","altitude max","fichiers max. ","taille max. ","vitesse max","altitude min","Segment suivant","Séance suivante","données issues du fichier gpx, sans correction","Pas de fichier fourni","pas de répertoire","Pas de carte","Pas de segment suivant","Pas de séance suivante","Pas de notes","Pas de segment précédent","Pas de séance précédente","Pas de records.","Pas de séances.","notes","pauses","Segment précédent","Séance précédente","record","records","Vitesse moy.","Distance la + longue","Durée la + longue","Vitesse max.","nombre de caractères restants ","segment","segments","vitesse","début","titre","jusqu'au","durée totale","Ajoutez votre première séance !","humidité","température","vent","ensoleillé","nuit claire","nuageux","brouillard","partiellement nuageux","nuit partiellement nuageuse","pluie","neige fondue","neige","venteux","avec un fichier .gpx","sans fichier .gpx","séance","séances","date de la séance","Etes-vous sûr de vouloir supprimer cette séance ?","archive .zip","ou une archive .zip contenant des fichiers .gpx","admin","api","buttons","common","dashboard","statistics","workouts","aria-label","aria-hidden","pagination","has_prev","to","path","getQuery","page","disabled","rangePagination","pages","has_next","query","setup","cursor","newQuery","assign","displayModal","title","strongMessage","deleteUserAccount","updateDisplayModal","registrationDate","first_name","last_name","birthDate","location","bio","fromAdmin","authUser","$router","go","Boolean","default","store","getters","GETTERS","AUTH_USER_PROFILE","created_at","format","birth_date","dispatch","ACTIONS","DELETE_ACCOUNT","order_by","onSelectUpdate","order","toUpperCase","per_page","nb","emits","emit","sortList","defaultPage","defaultPerPage","getNumberQueryValue","queryValue","defaultValue","getStringQueryValue","availableValues","includes","locationQuery","orderByList","defaultOrderBy","options","queryOptions","defaultSort","workoutsPayloadKeys","getRange","stop","Array","from","_","currentPage","concat","Add/remove admin rights, delete user account.","Max. number of active users","If 0, no limitation on registration.","Max. files of zip archive","Max. size of uploaded files (in Mb)","Application configuration","Max. size of zip archive (in Mb)","Back to admin","Are you sure you want to delete "," account? All data will be deleted, this cannot be undone.","Delete user","Enable/disable sports.","Registration is currently disabled.","Registration is currently enabled.","Active","workouts exist","Sports administration","Update application configuration (maximum number of registered users, maximum files size).","users","Add admin rights","Remove admin rights","admin status","registration date","workout count","Error. Please try again or contact the administrator.","Email: valid email must be provided.","Error on getting configuration.","Error when updating configuration","Error, please try again or contact the administrator.","Error, registration is disabled.","File extension not allowed.","File size is greater than the allowed size.","Invalid credentials.","Provided data are invalid.","Invalid token, please log in again.","Network Error.","No file provided.","No selected file.","Password: password and password confirmation don't match.","Provide a valid auth token.","Password: 8 characters required.","Sorry, that user already exists.","Sport does not exist.","Signature expired. Please log in again.","Successfully registered.","User does not exist.","Username: 3 to 12 characters required.","You do not have permissions.","previous","next","Back","Cancel","Delete my account","Disable","Edit","Enable","Filter","Log in","No","Register","Submit","Yes","days","Home","here","order by","ascending","descending","Dashboard","This month","The application seems encounter some issues.
Please try later or contact the administrator.","Page not found","Workout not found","Cycling (Sport)","Cycling (Transport)","Mountain Biking","Statistics","week","month","year","Are you sure you want to delete your account? All data will be deleted, this cannot be undone","Enter an email address","Enter a password","Confirm the password","Invalid token, please request a new password reset.","Language","Login","Logout","Password","Confirm Password","Password confirmation","Forgot password?","Password reset","Check your email. If your address is in our database, you'll received an email with a link to reset your password.","Your password have been updated. Click "," to log in.","Back to profile","Birth date","Edit profile","Edit preferences","First name","First day of week","Last name","Location","Monday","Picture","Picture edition","Update picture","Remove picture","Preferences edition","Profile edition","Registration date","Sunday","picture","preferences","profile","Timezone","Sorry, registration is disabled.","Reset your password","user picture","Username","Add a workout","analysis","ascent","ave. speed","average speed","back to workout","descent","display filters","Edit the workout","elevation",".gpx file","hide filters","Latest workouts","Load more workouts","max. altitude","max files","max size","max. speed","min. altitude","No next segment","Next workout","data from gpx, without any cleaning","No file provided","no folder inside","No map","No next workout","No notes","No previous segment","No previous workout","No records.","No workouts.","Previous segment","Previous workout","Ave. speed","Farest distance","Longest duration","Max. speed","remaining characters","speed","total duration","Upload one!","humidity","temperature","wind","clear day","clear night","cloudy","fog","partly cloudy day","partly cloudy night","rain","sleet","snow","with .gpx file","without .gpx file","workout date","Are you sure you want to delete this workout?",".zip file","or .zip file containing .gpx files","suffixes","getReadableFileSize","fileSize","asText","Math","floor","log","size","suffix","pow","getFileSizeInMB","authUserPictureUrl","alt","ready","registered","cached","updatefound","updated","offline","updateHideScrollBar","appLoading","hideScrollBar","appConfig","displayScrollButton","scrollToTop","version","isMenuOpen","openMenu","closeMenu","isAuthenticated","capitalize","logout","availableLanguages","language","selected","updateLanguage","loadLocaleMessages","locales","messages","keys","forEach","matched","match","locale","legacy","fallbackLocale","globalInjection","localeFromLanguage","en","fr","languageLabels","availableLocales","global","IS_AUTHENTICATED","now","LANGUAGE","option","toString","commit","MUTATIONS","UPDATE_LANG","LOGOUT","xmlns","viewBox","Footer","NavBar","NoConfig","APP_CONFIG","APP_LOADING","isScrolledToBottom","element","getBoundingClientRect","top","innerHeight","bottom","scroll","onscroll","querySelector","scrollTo","behavior","GET_APPLICATION_CONFIG","for","content","onSubmit","min","appData","max_users","edition","step","max_single_file_size","max_zip_file_size","gpx_limit_import","errorMessages","onCancel","router","ERROR_MESSAGES","updateForm","EMPTY_ERROR_MESSAGES","formData","UPDATE_APPLICATION_CONFIG","app-statistics","appStatistics","usersCount","sportsCount","workoutCount","uploadDirSize","StatCard","uploads_dir_size","AppStatsCards","Card","translatedSports","sport-label","updateSportStatus","has_workouts","SPORTS","isActive","UPDATE_SPORTS","reloadUsers","email","updateUser","FilterSelects","Pagination","route","USERS","USERS_PAGINATION","loadUsers","queryParams","GET_USERS","UPDATE_USER","queryParam","EMPTY_USERS","tabs","selectedTab","tab","checked","getPath","UserHeader","UserProfileTabs","timezone","fistDayOfWeek","weekm","loading","USER_LOADING","deleteAccount","updateProfile","userForm","password","password_conf","charLimit","input","updateBio","updateUserForm","UPDATE_USER_PROFILE","updateUserPicture","accept","updatePictureFile","pictureFile","deleteUserPicture","fileSizeLimit","DELETE_PICTURE","files","UPDATE_USER_PICTURE","lang","weekStart","UPDATE_USER_PREFERENCES","authApi","baseURL","interceptors","use","config","authToken","AUTH_TOKEN","auth","headers","Authorization","actions","context","UPDATE_APPLICATION_LOADING","res","status","catch","finally","GET_APPLICATION_STATS","UPDATE_APPLICATION_STATS","payload","patch","state","application","APP_STATS","LOCALE","mutations","SET_ERROR_MESSAGES","root","GET_SPORTS","SET_SPORTS","sportsState","GET_USER_STATS","filterType","params","UPDATE_USER_STATS","USER_STATS","EMPTY_USER_STATS","statisticsState","localStorage","removeItem","CLEAR_AUTH_USER_TOKEN","UPDATE_USERS","EMPTY_WORKOUTS","EMPTY_WORKOUT","CHECK_AUTH_USER","UPDATE_AUTH_TOKEN","GET_USER_PROFILE","UPDATE_AUTH_USER_PROFILE","LOGIN_OR_REGISTER","post","actionType","token","auth_token","setItem","redirectUrl","UPDATE_USER_LOADING","form","FormData","append","delete","SEND_PASSWORD_RESET_REQUEST","RESET_USER_PASSWORD","authUserProfile","IS_ADMIN","userState","EMPTY_USER","UPDATE_USERS_PAGINATION","GET_USER","UPDATE_USERS_LOADING","UPDATE_USER_IN_USERS","USER","USERS_LOADING","updatedUser","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","SET_WORKOUT","with_gpx","SET_WORKOUT_CHART_DATA","chart_data","SET_WORKOUT_GPX","gpx","DELETE_WORKOUT","EDIT_WORKOUT","ADD_WORKOUT","file","ADD_WORKOUT_WITHOUT_GPX","CALENDAR_WORKOUTS","calendar_workouts","TIMELINE_WORKOUTS","timeline_workouts","USER_WORKOUTS","user_workouts","WORKOUT_DATA","workoutData","WORKOUTS_PAGINATION","ADD_TIMELINE_WORKOUTS","SET_CALENDAR_WORKOUTS","SET_TIMELINE_WORKOUTS","SET_USER_WORKOUTS","chartData","workoutsState","sportsModule","statsModule","userModule","usersModule","workoutsModule","getTabFromPath","regex","replace","routes","component","action","children","UserInfos","UserPreferences","ProfileEdition","UserInfosEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","AdminUsers","history","pathsWithoutAuthentication","beforeEach","fullPath","maxLenght","updateText","toggleDropdown","isOpen","dropdownOptions","index","updateSelected","isArray","subMessage","style","sportLabel","xmlns:xlink","x","y","xml:space","xmlns:svg","CyclingSport","CyclingTransport","MountainBiking","keypath","customComponents","AlertMessage","CustomTextArea","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","split","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UserActions","UserGetters","UserMutations","UsersActions","UsersGetters","UsersMutations","ROOT_STORE","SPORTS_STORE","STATS_STORE","USER_STORE","USERS_STORE","WORKOUTS_STORE","webpackContext","req","webpackContextResolve"],"mappings":"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oC,uEACmBC,8D,8EACOC,qD,iDAC7BC,6B,qDACIC,kC,kDACHC,qB,8FAC4CC,+D,+DAC/BC,qD,oEACKC,2C,yDACXC,6B,2EACkBC,oD,oEACPC,2C,4DACRC,2B,wDACJC,iC,0EACkBC,oD,gEACVC,oD,uDAGnBC,gB,uCACJC,gB,0CC7BFC,gB,yCACEC,c,oDACWC,2B,0CACVC,iB,uCACHC,e,yCACEC,c,yCACAC,c,wCACDC,mB,qCACHC,U,2CACMC,iB,yCACFC,c,sCACHC,W,kDCXSC,mB,kDACTC,YAAAC,c,uCACCC,c,uCACAC,U,2DAGKC,kB,+CAGAC,U,sCACFC,gB,uCACCC,kB,kDAGCC,iB,2CAGHC,a,+CCjBGC,sB,6CACCC,e,6CCDHnD,gE,4CACEoD,2H,kDAEHC,uB,0CACGC,2B,8DCHFC,oB,+DAGAC,wB,gDAGAC,iB,2DAGAC,W,iDAGAC,c,iDAGAC,e,gDChBGC,mB,oDAEJC,c,wCACCC,W,uCACDC,c,2CCJD/F,Y,2DACmBgG,0G,wCACnBC,Y,8CACMC,+B,iDACGC,6B,8DACaC,gC,gDACdC,sF,2CACLC,a,wCACHrC,mB,yCACCsC,qB,2CACEC,mB,mDACQC,mC,wDACKA,mC,qDACHC,4B,iDACJC,uC,2DACUC,4J,wEACRC,iDAAClG,EAADA,MAACmG,2B,2DAEAC,wB,sCACZC,U,6CACOC,wB,uCACNC,yB,mDACYC,+B,oDACCC,iC,6CACPC,a,2CACFf,a,4CACCgB,U,2CACDC,W,yCACFC,Y,0CACCC,sB,kDACQC,uC,iDACDC,4B,iDACAC,gB,sDACKC,kC,kDACJC,4B,oDACEC,yB,yCACXC,e,gDAEGC,Y,8CACIC,kB,0CACJC,c,2CAEDC,sB,2CAEFjE,iB,oDACSkE,iD,iDACHC,uC,+CACFC,6B,2CACJC,yB,iDChDGC,yB,2CACHC,c,yCACFC,uB,gDACOC,sB,4CACJC,mB,kDACMC,0B,uCACX3J,W,0CACG4J,uB,kDACQC,2B,2CACPC,e,2CACAC,Y,+CACIC,yB,4CACHC,e,sCACNC,U,uCACCC,kB,2CACIC,mB,+CACIC,0B,qCACVC,S,kDAC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DAGnBC,e,uCACJC,a,0CC7BFC,W,yCACEC,a,oDACWC,wB,0CACVC,c,uCACHC,W,yCACEC,a,yCACAC,a,wCACDC,a,qCACHC,S,2CACMC,e,yCACFC,a,sCACHC,W,kDCXS/R,mB,kDACT5F,WAAA4X,a,uCACCC,W,uCACAC,W,2DAGKC,gB,+CAGAnZ,W,sCACFoZ,gB,uCACCC,kB,kDAGC5R,iB,wCAGJC,a,+CCjBI4R,gB,6CACCC,kB,6CCDH7C,4D,4CACE8C,uG,kDAEHC,qB,0CACGC,0B,8DCHFC,uB,+DAGAC,2B,gDAGAjb,c,2DAGAkb,uB,iDAGAjb,e,iDAGAC,gB,gDChBGib,iB,oDAEJC,W,wCACCC,Y,uCACDC,a,2CCJDvX,Y,2DACmBwX,oG,wCACnBvR,Y,8CACMwR,6B,iDACGC,uB,8DACaC,2B,gDACdC,0D,2CACLC,e,wCACHC,Y,yCACCC,a,2CACEC,e,mDACQC,uB,wDACKC,4B,qDACHC,uB,iDACJC,qB,2DACUC,yH,wEACRC,2CAAC3X,EAADA,MAAC4X,iB,2DAEAC,sB,sCACZxR,U,6CACOyR,iB,uCACNC,mB,mDACYC,uB,6CACNC,iB,oDACOC,wB,2CACThB,e,4CACCiB,gB,2CACDC,e,yCACFC,a,0CACCC,c,kDACQC,sB,iDACDC,qB,iDACAC,qB,sDACKC,0B,kDACJC,sB,oDACEC,wB,yCACXC,a,gDAEGC,c,8CACIC,kB,0CACJC,e,2CAEDC,gB,2CAEFzD,e,oDACS0D,uC,iDACHC,0B,+CACFC,mB,2CACJC,gB,iDChDGC,oB,2CACHC,e,yCACFC,a,4CACGC,iB,gDACIC,oB,kDACEC,sB,uCACXnb,W,0CACGob,c,kDACQC,sB,2CACPvR,e,2CACAxK,e,+CACIgc,uB,4CACHC,gB,sCACNnb,U,uCACC6S,W,2CACIuI,gB,+CACIC,mB,qCACVnR,S,kDACaoR,sB,oDACEC,yB,+CACLC,oB,4CACHC,gB,2CACDC,e,4CACCC,iB,+CACGC,oB,+CACAC,sB,+CACAC,mB,mDACIC,0C,mDACAC,uB,4CACPC,uB,yCACHC,a,kDACSL,sB,kDACAM,sB,2CA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","file":"static/js/app.dad9d7e0.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\",\"main~workouts\":\"main~workouts\",\"main\":\"main\",\"workouts\":\"workouts\",\"profile\":\"profile\",\"reset\":\"reset\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"ae6123c4\",\"main~workouts\":\"896585f2\",\"main\":\"308f7e1a\",\"workouts\":\"13789396\",\"profile\":\"998bc0bd\",\"reset\":\"624f741d\",\"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,\"main~workouts\":1,\"main\":1,\"workouts\":1,\"profile\":1,\"reset\":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\",\"main~workouts\":\"main~workouts\",\"main\":\"main\",\"workouts\":\"workouts\",\"profile\":\"profile\",\"reset\":\"reset\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"27bf6ef5\",\"main~workouts\":\"dec22e70\",\"main\":\"18c88976\",\"workouts\":\"45fb3086\",\"profile\":\"8c004342\",\"reset\":\"0a21856c\",\"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","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'StatCard',\n props: {\n icon: {\n type: String,\n required: true,\n },\n value: {\n type: [String, Number],\n required: true,\n },\n text: {\n type: String,\n required: true,\n },\n },\n })\n","import { render } from \"./StatCard.vue?vue&type=template&id=32e77e48\"\nimport script from \"./StatCard.vue?vue&type=script&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=32e77e48&lang=scss\"\nscript.render = render\n\nexport default script","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserInfosEdition.vue?vue&type=style&index=0&id=a2dfdb58&lang=scss\"","import { ISport, ITranslatedSport } 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 Running: '#835b83',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map((sport) => (colors[sport.id] = sportColors[sport.label]))\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 onlyActive = false\n): ITranslatedSport[] =>\n sports\n .filter((sport) => (onlyActive ? sport.is_active : true))\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserPicture.vue?vue&type=style&index=0&id=4aed39f4&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Card.vue?vue&type=style&index=0&id=c5956538&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Pagination.vue?vue&type=style&index=0&id=56dc89d4&lang=scss&scoped=true\"","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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminSports.vue?vue&type=style&index=0&id=6d930723&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminApplication.vue?vue&type=style&index=0&id=26175b66&lang=scss&scoped=true\"","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { IUserProfile } from '@/types/user'\n\n export default defineComponent({\n name: 'ProfileDisplay',\n components: {\n UserPicture,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n })\n","import { render } from \"./UserHeader.vue?vue&type=template&id=a6fa997c&scoped=true\"\nimport script from \"./UserHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=a6fa997c&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-a6fa997c\"\n\nexport default script","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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminMenu.vue?vue&type=style&index=0&id=4f30aa64&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ErrorMessage.vue?vue&type=style&index=0&id=5c177a93&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserHeader.vue?vue&type=style&index=0&id=a6fa997c&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavBar.vue?vue&type=style&index=0&id=03a78350&scoped=true&lang=scss\"","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--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=317a6409&lang=scss&scoped=true\"","{\n \"ACTION\": \"Action\",\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": \"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\",\n \"ADMIN\": \"Admin\",\n \"ADMINISTRATION\": \"Administration\",\n \"APPLICATION\": \"Application\",\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": \"Nombre maximum d'utilisateurs actifs \",\n \"MAX_USERS_HELP\": \"Si égal à 0, pas limite d'inscription\",\n \"MAX_FILES_IN_ZIP_LABEL\": \"Taille max. des archives zip (en Mo) \",\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": \"Taille max. des fichiers (en Mo) \",\n \"TITLE\": \"Configuration de l'application\",\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": \"Nombre max. de fichiers dans une archive zip \"\n },\n \"BACK_TO_ADMIN\": \"Revenir à l'admin\",\n \"CONFIRM_USER_ACCOUNT_DELETION\": \"Etes-vous sûr de vouloir supprimer le compte de {0} ? Toutes les données seront définitivement.\",\n \"DELETE_USER\": \"Supprimer l'utilisateur\",\n \"ENABLE_DISABLE_SPORTS\": \"Activer/désactiver des sports.\",\n \"REGISTRATION_DISABLED\": \"Les inscriptions sont actuellement désactivées.\",\n \"REGISTRATION_ENABLED\": \"Les inscriptions sont actuellement activées.\",\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": \"Actif\",\n \"HAS_WORKOUTS\": \"des séances existent\",\n \"IMAGE\": \"Image\",\n \"LABEL\": \"Label\"\n },\n \"TITLE\": \"Administration - Sports\"\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": \"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\",\n \"USER\": \"utilisateur | utilisateurs\",\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": \"Ajouter les drois d'admin\",\n \"REMOVE_ADMIN_RIGHTS\": \"Retirer les drois d'admin\"\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": \"status administrateur\",\n \"CREATED_AT\": \"date d'inscription\",\n \"USERNAME\": \"nom d'utilisateur\",\n \"WORKOUTS_COUNT\": \"nombre de séances\"\n }\n }\n }\n}\n","{\n \"ERROR\": {\n \"UNKNOWN\": \"Erreur. Veuillez réessayer ou contacter l'administrateur.\",\n \"email: valid email must be provided\": \"Email : une adresse email valide doit être fournie.\",\n \"error on getting configuration\": \"Erreur lors de la récupération de la configuration.\",\n \"error when updating configuration\": \"Erreur lors de la mise à jour de la configuration\",\n \"error, please try again or contact the administrator\": \"Erreur, veuillez réessayer ou contacter l'administrateur.\",\n \"error, registration is disabled\": \"Erreur, les inscriptions sont désactivées.\",\n \"file extension not allowed\": \"Extension de fichier non autorisée.\",\n \"file size is greater than the allowed size\": \"La taille du fichier est supérieure à la limite autorisée.\",\n \"invalid credentials\": \"Identifiants invalides.\",\n \"invalid payload\": \"Données fournies incorrectes.\",\n \"invalid token, please log in again\": \"Jeton de connexion invalide, merci de vous reconnecter.\",\n \"invalid token, please request a new token\": \"Jeton de connexion, merci de vous reconnecter.\",\n \"no file part\": \"Pas de fichier fourni.\",\n \"no selected file\": \"Pas de fichier sélectionné.\",\n \"Network Error\": \"Erreur Réseau.\",\n \"password: password and password confirmation do not match\": \"Mot de passe : les mots de passe saisis sont différents.\",\n \"provide a valid auth token\": \"Merci de fournir un jeton de connexion valide.\",\n \"password: 8 characters required\": \"Mot de passe : 8 caractères minimum.\",\n \"sport does not exist\": \"Ce sport n'existe pas.\",\n \"signature expired, please log in again\": \"Signature expirée. Merci de vous reconnecter.\",\n \"sorry, that user already exists\": \"Désolé, cet utilisateur existe déjà.\",\n \"successfully registered\": \"Inscription validée.\",\n \"user does not exist\": \"L'utilisateur n'existe pas\",\n \"username: 3 to 12 characters required\": \"Nom d'utilisateur : 3 à 12 caractères requis.\",\n \"you do not have permissions\": \"Vous n'avez pas les permissions nécessaires.\"\n },\n \"PAGINATION\": {\n \"PREVIOUS\": \"précédent\",\n \"NEXT\": \"suivant\"\n }\n}","{\n \"BACK\": \"Précédent\",\n \"CANCEL\": \"Annuler\",\n \"DELETE_MY_ACCOUNT\": \"Supprimer mon compte\",\n \"DISABLE\": \"Désactiver\",\n \"EDIT\": \"Modifier\",\n \"ENABLE\": \"Activer\",\n \"FILTER\": \"Filtrer\",\n \"LOGIN\": \"Se connecter\",\n \"NO\": \"Non\",\n \"REGISTER\": \"S'inscrire\",\n \"SUBMIT\": \"Valider\",\n \"YES\": \"Oui\"\n}","{\n \"CONFIRMATION\": \"Confirmation\",\n \"DAY\": \"jour | jours\",\n \"HOME\": \"Accueil\",\n \"HERE\": \"ici\",\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": \"trier par \"\n },\n \"ORDER\": {\n \"LABEL\": \"tri\",\n \"ASC\": \"ascendant\",\n \"DESC\": \"descendant\"\n },\n \"PER_PAGE\": {\n \"LABEL\": \"par page\"\n }\n },\n \"TOTAL \": \"Total\"\n}","{\n \"DASHBOARD\": \"Tableau de Bord\",\n \"THIS_MONTH\": \"Ce mois\"\n}\n","{\n \"UNKNOWN\": \"Erreur. Veuillez réessayer ou contacter l'administrateur.\",\n \"APP_ERROR\": \"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\",\n \"NOT_FOUND\": {\n \"PAGE\": \"Page introuvable\",\n \"WORKOUT\": \"Séance introuvable\"\n }\n}","{\n \"Cycling (Sport)\": {\n \"LABEL\": \"Vélo (Sport)\"\n },\n \"Cycling (Transport)\": {\n \"LABEL\": \"Vélo (Transport)\"\n },\n \"Hiking\": {\n \"LABEL\": \"Randonnée\"\n },\n \"Mountain Biking\": {\n \"LABEL\": \"VTT\"\n },\n \"Running\": {\n \"LABEL\": \"Course\"\n },\n \"Walking\": {\n \"LABEL\": \"Marche\"\n }\n}","{\n \"STATISTICS\": \"Statistiques\",\n \"TIME_FRAMES\": {\n \"week\": \"semaine\",\n \"month\": \"mois\",\n \"year\": \"année\"\n }\n}\n","{\n \"ADMIN\": \"Admin\",\n \"CONFIRM_ACCOUNT_DELETION\": \"Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\",\n \"EMAIL\": \"Email\",\n \"ENTER_EMAIL\": \"Saisir une adresse email\",\n \"ENTER_PASSWORD\": \"Saisir un mot de passe\",\n \"ENTER_PASSWORD_CONFIRMATION\": \"Confirmer le mot de passe\",\n \"INVALID_TOKEN\": \"Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe.\",\n \"LANGUAGE\": \"Langue\",\n \"LOGIN\": \"Se connecter\",\n \"LOGOUT\": \"Se déconnecter\",\n \"PASSWORD\": \"Mot de passe\",\n \"PASSWORD_CONFIRM\": \"Confirmation du mot de passe\",\n \"PASSWORD_CONFIRMATION\": \"Confirmation du mot de passe\",\n \"PASSWORD_FORGOTTEN\": \"Mot de passe oublié ?\",\n \"PASSWORD_RESET\": \"Réinitialisation du mot de passe\",\n \"PASSWORD_SENT_EMAIL_TEXT\": \"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\": \"Votre mot de passe a été mis à jour. Cliquez {0} pour vous connecter.\",\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": \"Revenir au profil\",\n \"BIO\": \"Bio\",\n \"BIRTH_DATE\": \"Date de naissance\",\n \"EDIT\": \"Modifier le profil\",\n \"EDIT_PREFERENCES\": \"Modifier les préférences\",\n \"FIRST_DAY_OF_WEEK\": \"Premier jour de la semaine\",\n \"FIRST_NAME\": \"Prénom\",\n \"LANGUAGE\": \"Langue\",\n \"LAST_NAME\": \"Nom\",\n \"LOCATION\": \"Lieu\",\n \"MONDAY\": \"Lundi\",\n \"PICTURE\": \"Image de profil\",\n \"PICTURE_EDITION\": \"Mise à jour de l'image de profil\",\n \"PICTURE_UPDATE\": \"Mettre à jour l'image\",\n \"PICTURE_REMOVE\": \"Supprimer\",\n \"PREFERENCES_EDITION\": \"Mise à jour des préférences\",\n \"PROFILE_EDITION\": \"Mise à jour du profil\",\n \"REGISTRATION_DATE\": \"Date d'inscription\",\n \"SUNDAY\": \"Dimanche\",\n \"TABS\": {\n \"PICTURE\": \"image\",\n \"PREFERENCES\": \"préférences\",\n \"PROFILE\": \"profil\"\n },\n \"TIMEZONE\": \"Fuseau horaire\"\n },\n \"REGISTER\": \"S'inscrire\",\n \"REGISTER_DISABLED\": \"Désolé, les inscriptions sont désactivées.\",\n \"RESET_PASSWORD\": \"Réinitialiser votre mot de passe\",\n \"USER_PICTURE\": \"photo de l'utilisateur\",\n \"USERNAME\": \"Nom d'utilisateur\"\n}","{\n \"ADD_WORKOUT\": \"Ajouter une séance\",\n \"ANALYSIS\": \"analyse\",\n \"ASCENT\": \"dénivelé positif\",\n \"AVERAGE_SPEED\": \"vitesse moyenne\",\n \"AVE_SPEED\": \"vitesse moy.\",\n \"BACK_TO_WORKOUT\": \"revenir à la séance\",\n \"DATE\": \"date\",\n \"DESCENT\": \"dénivelé négatif\",\n \"DISPLAY_FILTERS\": \"afficher les filtres\",\n \"DISTANCE\": \"distance\",\n \"DURATION\": \"durée\",\n \"EDIT_WORKOUT\": \"Modifier la séance\",\n \"ELEVATION\": \"altitude\",\n \"END\": \"fin\",\n \"FROM\": \"à partir de\",\n \"GPX_FILE\": \"fichier .gpx\",\n \"HIDE_FILTERS\": \"masquer les filtres\",\n \"KM\": \"km\",\n \"LATEST_WORKOUTS\": \"Séances récentes\",\n \"LOAD_MORE_WORKOUT\": \"Charger les séances suivantes\",\n \"MAX_ALTITUDE\": \"altitude max\",\n \"MAX_FILES\": \"fichiers max. \",\n \"MAX_SIZE\": \"taille max. \",\n \"MAX_SPEED\": \"vitesse max\",\n \"MIN_ALTITUDE\": \"altitude min\",\n \"NEXT_SEGMENT\": \"Segment suivant\",\n \"NEXT_WORKOUT\": \"Séance suivante\",\n \"NO_DATA_CLEANING\": \"données issues du fichier gpx, sans correction\",\n \"NO_FILE_PROVIDED\": \"Pas de fichier fourni\",\n \"NO_FOLDER\": \"pas de répertoire\",\n \"NO_MAP\": \"Pas de carte\",\n \"NO_NEXT_SEGMENT\": \"Pas de segment suivant\",\n \"NO_NEXT_WORKOUT\": \"Pas de séance suivante\",\n \"NO_NOTES\": \"Pas de notes\",\n \"NO_PREVIOUS_SEGMENT\": \"Pas de segment précédent\",\n \"NO_PREVIOUS_WORKOUT\": \"Pas de séance précédente\",\n \"NO_RECORDS\": \"Pas de records.\",\n \"NO_WORKOUTS\": \"Pas de séances.\",\n \"NOTES\": \"notes\",\n \"PAUSES\": \"pauses\",\n \"PREVIOUS_SEGMENT\": \"Segment précédent\",\n \"PREVIOUS_WORKOUT\": \"Séance précédente\",\n \"RECORD\": \"record | records\",\n \"RECORD_AS\": \"Vitesse moy.\",\n \"RECORD_FD\": \"Distance la + longue\",\n \"RECORD_LD\": \"Durée la + longue\",\n \"RECORD_MS\": \"Vitesse max.\",\n \"REMAINING_CHARS\": \"nombre de caractères restants \",\n \"SEGMENT\": \"segment | segments\",\n \"SPEED\": \"vitesse\",\n \"SPORT\": \"sport | sports\",\n \"START\": \"début\",\n \"TITLE\": \"titre\",\n \"TO\": \"jusqu'au\",\n \"TOTAL_DURATION\": \"durée totale\",\n \"UPLOAD_FIRST_WORKOUT\": \"Ajoutez votre première séance !\",\n \"WEATHER\": {\n \"HUMIDITY\": \"humidité\",\n \"TEMPERATURE\": \"température\",\n \"WIND\": \"vent\",\n \"DARK_SKY\": {\n \"clear-day\": \"ensoleillé\",\n \"clear-night\": \"nuit claire\",\n \"cloudy\": \"nuageux\",\n \"fog\": \"brouillard\",\n \"partly-cloudy-day\": \"partiellement nuageux\",\n \"partly-cloudy-night\": \"nuit partiellement nuageuse\",\n \"rain\": \"pluie\",\n \"sleet\": \"neige fondue\",\n \"snow\": \"neige\",\n \"wind\": \"venteux\"\n }\n },\n \"WITH_GPX\": \"avec un fichier .gpx\",\n \"WITHOUT_GPX\": \"sans fichier .gpx\",\n \"WORKOUT\": \"séance | séances\",\n \"WORKOUT_DATE\": \"date de la séance\",\n \"WORKOUT_DELETION_CONFIRMATION\": \"Etes-vous sûr de vouloir supprimer cette séance ?\",\n \"ZIP_ARCHIVE\": \"archive .zip\",\n \"ZIP_ARCHIVE_DESCRIPTION\": \"ou une archive .zip contenant des fichiers .gpx\"\n}\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","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { rangePagination } from '@/utils/api'\n\n export default defineComponent({\n name: 'Pagination',\n props: {\n pagination: {\n type: Object as PropType,\n required: true,\n },\n path: {\n type: String,\n required: true,\n },\n query: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n function getQuery(page: number, cursor?: number): TPaginationPayload {\n const newQuery = Object.assign({}, props.query)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n return { rangePagination, getQuery }\n },\n })\n","import { render } from \"./Pagination.vue?vue&type=template&id=56dc89d4&scoped=true\"\nimport script from \"./Pagination.vue?vue&type=script&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=56dc89d4&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-56dc89d4\"\n\nexport default script","\n\n\n\n\n","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n } from 'vue'\n\n import { USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'UserInfos',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n fromAdmin: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n const authUser: ComputedRef = computed(\n () => store.getters[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(USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n return {\n authUser,\n birthDate,\n displayModal,\n registrationDate,\n deleteUserAccount,\n updateDisplayModal,\n }\n },\n })\n","import { render } from \"./UserInfos.vue?vue&type=template&id=1267fe4f&scoped=true\"\nimport script from \"./UserInfos.vue?vue&type=script&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=1267fe4f&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-1267fe4f\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FilterSelects.vue?vue&type=style&index=0&id=50c78582&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Footer.vue?vue&type=style&index=0&id=e1641806&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./index.vue?vue&type=style&index=0&id=c81580c0&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./StatCard.vue?vue&type=style&index=0&id=32e77e48&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Modal.vue?vue&type=style&index=0&id=21b6cb61&lang=scss&scoped=true\"","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n export default defineComponent({\n name: 'FilterSelects',\n props: {\n order_by: {\n type: Object as PropType,\n required: true,\n },\n query: {\n type: Object as PropType,\n required: true,\n },\n sort: {\n type: Object as PropType,\n required: true,\n },\n message: {\n type: String,\n required: true,\n },\n },\n emits: ['updateSelect'],\n setup(props, { emit }) {\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\n return {\n per_page: [10, 25, 50, 100],\n onSelectUpdate,\n }\n },\n })\n","import { render } from \"./FilterSelects.vue?vue&type=template&id=50c78582&scoped=true\"\nimport script from \"./FilterSelects.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=50c78582&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-50c78582\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dropdown.vue?vue&type=style&index=0&id=5ef2ddef&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserInfos.vue?vue&type=style&index=0&id=1267fe4f&lang=scss&scoped=true\"","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 = queryOptions.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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AppStatsCards.vue?vue&type=style&index=0&id=cd52bcc2&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CustomTextArea.vue?vue&type=style&index=0&id=ad3739fc&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Loader.vue?vue&type=style&index=0&id=8bf75da8&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserPictureEdition.vue?vue&type=style&index=0&id=500d4a7a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminUsers.vue?vue&type=style&index=0&id=4711ecf8&lang=scss&scoped=true\"","{\n \"ACTION\": \"Action\",\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": \"Add/remove admin rights, delete user account.\",\n \"ADMIN\": \"Admin\",\n \"ADMINISTRATION\": \"Administration\",\n \"APPLICATION\": \"Application\",\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": \"Max. number of active users\",\n \"MAX_USERS_HELP\": \"If 0, no limitation on registration.\",\n \"MAX_FILES_IN_ZIP_LABEL\": \"Max. files of zip archive\",\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": \"Max. size of uploaded files (in Mb)\",\n \"TITLE\": \"Application configuration\",\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": \"Max. size of zip archive (in Mb)\"\n },\n \"BACK_TO_ADMIN\": \"Back to admin\",\n \"CONFIRM_USER_ACCOUNT_DELETION\": \"Are you sure you want to delete {0} account? All data will be deleted, this cannot be undone.\",\n \"DELETE_USER\": \"Delete user\",\n \"ENABLE_DISABLE_SPORTS\": \"Enable/disable sports.\",\n \"REGISTRATION_DISABLED\": \"Registration is currently disabled.\",\n \"REGISTRATION_ENABLED\": \"Registration is currently enabled.\",\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": \"Active\",\n \"HAS_WORKOUTS\": \"workouts exist\",\n \"IMAGE\": \"Image\",\n \"LABEL\": \"Label\"\n },\n \"TITLE\": \"Sports administration\"\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": \"Update application configuration (maximum number of registered users, maximum files size).\",\n \"USER\": \"user | users\",\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": \"Add admin rights\",\n \"REMOVE_ADMIN_RIGHTS\": \"Remove admin rights\"\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": \"admin status\",\n \"CREATED_AT\": \"registration date\",\n \"USERNAME\": \"username\",\n \"WORKOUTS_COUNT\": \"workout count\"\n }\n }\n }\n}\n","{\n \"ERROR\": {\n \"UNKNOWN\": \"Error. Please try again or contact the administrator.\",\n \"email: valid email must be provided\": \"Email: valid email must be provided.\",\n \"error on getting configuration\": \"Error on getting configuration.\",\n \"error when updating configuration\": \"Error when updating configuration\",\n \"error, please try again or contact the administrator\": \"Error, please try again or contact the administrator.\",\n \"error, registration is disabled\": \"Error, registration is disabled.\",\n \"file extension not allowed\": \"File extension not allowed.\",\n \"file size is greater than the allowed size\": \"File size is greater than the allowed size.\",\n \"invalid credentials\": \"Invalid credentials.\",\n \"invalid payload\": \"Provided data are invalid.\",\n \"invalid token, please log in again\": \"Invalid token, please log in again.\",\n \"invalid token, please request a new token\": \"Invalid token, please log in again.\",\n \"Network Error\": \"Network Error.\",\n \"no file part\": \"No file provided.\",\n \"no selected file\": \"No selected file.\",\n \"password: password and password confirmation do not match\": \"Password: password and password confirmation don't match.\",\n \"provide a valid auth token\": \"Provide a valid auth token.\",\n \"password: 8 characters required\": \"Password: 8 characters required.\",\n \"sorry, that user already exists\": \"Sorry, that user already exists.\",\n \"sport does not exist\": \"Sport does not exist.\",\n \"signature expired, please log in again\": \"Signature expired. Please log in again.\",\n \"successfully registered\": \"Successfully registered.\",\n \"user does not exist\": \"User does not exist.\",\n \"username: 3 to 12 characters required\": \"Username: 3 to 12 characters required.\",\n \"you do not have permissions\": \"You do not have permissions.\"\n },\n \"PAGINATION\": {\n \"PREVIOUS\": \"previous\",\n \"NEXT\": \"next\"\n }\n}","{\n \"BACK\": \"Back\",\n \"CANCEL\": \"Cancel\",\n \"DELETE_MY_ACCOUNT\": \"Delete my account\",\n \"DISABLE\": \"Disable\",\n \"EDIT\": \"Edit\",\n \"ENABLE\": \"Enable\",\n \"FILTER\": \"Filter\",\n \"LOGIN\": \"Log in\",\n \"NO\": \"No\",\n \"REGISTER\": \"Register\",\n \"SUBMIT\": \"Submit\",\n \"YES\": \"Yes\"\n}","{\n \"CONFIRMATION\": \"Confirmation\",\n \"DAY\": \"day | days\",\n \"HOME\": \"Home\",\n \"HERE\": \"here\",\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": \"order by\"\n },\n \"ORDER\": {\n \"LABEL\": \"sort\",\n \"ASC\": \"ascending\",\n \"DESC\": \"descending\"\n },\n \"PER_PAGE\": {\n \"LABEL\": \"par page\"\n }\n },\n \"TOTAL\": \"Total\"\n}","{\n \"DASHBOARD\": \"Dashboard\",\n \"THIS_MONTH\": \"This month\"\n}\n","{\n \"UNKNOWN\": \"Error. Please try again or contact the administrator.\",\n \"APP_ERROR\": \"The application seems encounter some issues.
Please try later or contact the administrator.\",\n \"NOT_FOUND\": {\n \"PAGE\": \"Page not found\",\n \"WORKOUT\": \"Workout not found\"\n }\n}","{\n \"Cycling (Sport)\": {\n \"LABEL\": \"Cycling (Sport)\"\n },\n \"Cycling (Transport)\": {\n \"LABEL\": \"Cycling (Transport)\"\n },\n \"Hiking\": {\n \"LABEL\": \"Hiking\"\n },\n \"Mountain Biking\": {\n \"LABEL\": \"Mountain Biking\"\n },\n \"Running\": {\n \"LABEL\": \"Running\"\n },\n \"Walking\": {\n \"LABEL\": \"Walking\"\n }\n}","{\n \"STATISTICS\": \"Statistics\",\n \"TIME_FRAMES\": {\n \"week\": \"week\",\n \"month\": \"month\",\n \"year\": \"year\"\n }\n}\n","{\n \"ADMIN\": \"Admin\",\n \"CONFIRM_ACCOUNT_DELETION\": \"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\",\n \"EMAIL\": \"Email\",\n \"ENTER_EMAIL\": \"Enter an email address\",\n \"ENTER_PASSWORD\": \"Enter a password\",\n \"ENTER_PASSWORD_CONFIRMATION\": \"Confirm the password\",\n \"INVALID_TOKEN\": \"Invalid token, please request a new password reset.\",\n \"LANGUAGE\": \"Language\",\n \"LOGIN\": \"Login\",\n \"LOGOUT\": \"Logout\",\n \"PASSWORD\": \"Password\",\n \"PASSWORD_CONFIRM\": \"Confirm Password\",\n \"PASSWORD_CONFIRMATION\": \"Password confirmation\",\n \"PASSWORD_FORGOTTEN\": \"Forgot password?\",\n \"PASSWORD_RESET\": \"Password reset\",\n \"PASSWORD_SENT_EMAIL_TEXT\": \"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\": \"Your password have been updated. Click {0} to log in.\",\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": \"Back to profile\",\n \"BIO\": \"Bio\",\n \"BIRTH_DATE\": \"Birth date\",\n \"EDIT\": \"Edit profile\",\n \"EDIT_PREFERENCES\": \"Edit preferences\",\n \"FIRST_NAME\": \"First name\",\n \"FIRST_DAY_OF_WEEK\": \"First day of week\",\n \"LANGUAGE\": \"Language\",\n \"LAST_NAME\": \"Last name\",\n \"LOCATION\": \"Location\",\n \"MONDAY\": \"Monday\",\n \"PICTURE\": \"Picture\",\n \"PICTURE_EDITION\": \"Picture edition\",\n \"PICTURE_UPDATE\": \"Update picture\",\n \"PICTURE_REMOVE\": \"Remove picture\",\n \"PREFERENCES_EDITION\": \"Preferences edition\",\n \"PROFILE_EDITION\": \"Profile edition\",\n \"REGISTRATION_DATE\": \"Registration date\",\n \"SUNDAY\": \"Sunday\",\n \"TABS\": {\n \"PICTURE\": \"picture\",\n \"PREFERENCES\": \"preferences\",\n \"PROFILE\": \"profile\"\n },\n \"TIMEZONE\": \"Timezone\"\n },\n \"REGISTER\": \"Register\",\n \"REGISTER_DISABLED\": \"Sorry, registration is disabled.\",\n \"RESET_PASSWORD\": \"Reset your password\",\n \"USER_PICTURE\": \"user picture\",\n \"USERNAME\": \"Username\"\n}\n","{\n \"ADD_WORKOUT\": \"Add a workout\",\n \"ANALYSIS\": \"analysis\",\n \"ASCENT\": \"ascent\",\n \"AVE_SPEED\": \"ave. speed\",\n \"AVERAGE_SPEED\": \"average speed\",\n \"BACK_TO_WORKOUT\": \"back to workout\",\n \"DATE\": \"date\",\n \"DESCENT\": \"descent\",\n \"DISPLAY_FILTERS\": \"display filters\",\n \"DISTANCE\": \"distance\",\n \"DURATION\": \"duration\",\n \"EDIT_WORKOUT\": \"Edit the workout\",\n \"ELEVATION\": \"elevation\",\n \"END\": \"end\",\n \"FROM\": \"from\",\n \"GPX_FILE\": \".gpx file\",\n \"HIDE_FILTERS\": \"hide filters\",\n \"KM\": \"km\",\n \"LATEST_WORKOUTS\": \"Latest workouts\",\n \"LOAD_MORE_WORKOUT\": \"Load more workouts\",\n \"MAX_ALTITUDE\": \"max. altitude\",\n \"MAX_FILES\": \"max files\",\n \"MAX_SIZE\": \"max size\",\n \"MAX_SPEED\": \"max. speed\",\n \"MIN_ALTITUDE\": \"min. altitude\",\n \"NEXT_SEGMENT\": \"No next segment\",\n \"NEXT_WORKOUT\": \"Next workout\",\n \"NO_DATA_CLEANING\": \"data from gpx, without any cleaning\",\n \"NO_FILE_PROVIDED\": \"No file provided\",\n \"NO_FOLDER\": \"no folder inside\",\n \"NO_MAP\": \"No map\",\n \"NO_NEXT_SEGMENT\": \"No next segment\",\n \"NO_NEXT_WORKOUT\": \"No next workout\",\n \"NO_NOTES\": \"No notes\",\n \"NO_PREVIOUS_SEGMENT\": \"No previous segment\",\n \"NO_PREVIOUS_WORKOUT\": \"No previous workout\",\n \"NO_RECORDS\": \"No records.\",\n \"NO_WORKOUTS\": \"No workouts.\",\n \"NOTES\": \"notes\",\n \"PAUSES\": \"pauses\",\n \"PREVIOUS_SEGMENT\": \"Previous segment\",\n \"PREVIOUS_WORKOUT\": \"Previous workout\",\n \"RECORD\": \"record | records\",\n \"RECORD_AS\": \"Ave. speed\",\n \"RECORD_FD\": \"Farest distance\",\n \"RECORD_LD\": \"Longest duration\",\n \"RECORD_MS\": \"Max. speed\",\n \"REMAINING_CHARS\": \"remaining characters\",\n \"SEGMENT\": \"segment | segments\",\n \"SPEED\": \"speed\",\n \"SPORT\": \"sport | sports\",\n \"START\": \"start\",\n \"TITLE\": \"title\",\n \"TO\": \"to\",\n \"TOTAL_DURATION\": \"total duration\",\n \"UPLOAD_FIRST_WORKOUT\": \"Upload one!\",\n \"WEATHER\": {\n \"HUMIDITY\": \"humidity\",\n \"TEMPERATURE\": \"temperature\",\n \"WIND\": \"wind\",\n \"DARK_SKY\": {\n \"clear-day\": \"clear day\",\n \"clear-night\": \"clear night\",\n \"cloudy\": \"cloudy\",\n \"fog\": \"fog\",\n \"partly-cloudy-day\": \"partly cloudy day\",\n \"partly-cloudy-night\": \"partly cloudy night\",\n \"rain\": \"rain\",\n \"sleet\": \"sleet\",\n \"snow\": \"snow\",\n \"wind\": \"wind\"\n }\n },\n \"WITH_GPX\": \"with .gpx file\",\n \"WITHOUT_GPX\": \"without .gpx file\",\n \"WORKOUT\": \"workout | workouts\",\n \"WORKOUT_DATE\": \"workout date\",\n \"WORKOUT_DELETION_CONFIRMATION\": \"Are you sure you want to delete this workout?\",\n \"ZIP_ARCHIVE\": \".zip file\",\n \"ZIP_ARCHIVE_DESCRIPTION\": \"or .zip file containing .gpx files\"\n}\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","\n\n\n\n\n","\n import { PropType, computed, defineComponent } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n export default defineComponent({\n name: 'UserPicture',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n return {\n authUserPictureUrl: computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture`\n : ''\n ),\n }\n },\n })\n","import { render } from \"./UserPicture.vue?vue&type=template&id=4aed39f4\"\nimport script from \"./UserPicture.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=4aed39f4&lang=scss\"\nscript.render = render\n\nexport default script","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserPreferences.vue?vue&type=style&index=0&id=39667dbe&lang=scss&scoped=true\"","/* 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","\n\n\n\n\n","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'Footer',\n props: {\n version: {\n type: String,\n required: true,\n },\n },\n })\n","import { render } from \"./Footer.vue?vue&type=template&id=e1641806&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=e1641806&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-e1641806\"\n\nexport default script","\n\n\n\n\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\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","/* 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","\n import { ComputedRef, computed, defineComponent, ref, capitalize } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE, USER_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getApiUrl } from '@/utils'\n import { availableLanguages } from '@/utils/locales'\n\n export default defineComponent({\n name: 'NavBar',\n components: {\n UserPicture,\n },\n emits: ['menuInteraction'],\n setup(props, { emit }) {\n const { locale } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const authUserPictureUrl: ComputedRef = computed(() =>\n isAuthenticated.value && authUser.value.picture\n ? `${getApiUrl()}/users/${\n authUser.value.username\n }/picture?${Date.now()}`\n : ''\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(USER_STORE.ACTIONS.LOGOUT)\n }\n\n return {\n availableLanguages,\n authUser,\n authUserPictureUrl,\n isAuthenticated,\n isMenuOpen,\n language,\n capitalize,\n openMenu,\n closeMenu,\n updateLanguage,\n logout,\n }\n },\n })\n","import { render } from \"./NavBar.vue?vue&type=template&id=03a78350&scoped=true\"\nimport script from \"./NavBar.vue?vue&type=script&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=03a78350&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-03a78350\"\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n export default defineComponent({\n name: 'NoConfig',\n setup() {\n const { t } = useI18n()\n return { t }\n },\n })\n","import { render } from \"./NoConfig.vue?vue&type=template&id=01d4a985&scoped=true\"\nimport script from \"./NoConfig.vue?vue&type=script&lang=ts\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=01d4a985&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-01d4a985\"\n\nexport default script","\n import {\n ComputedRef,\n computed,\n defineComponent,\n ref,\n onBeforeMount,\n onMounted,\n } 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 export default defineComponent({\n name: 'App',\n components: {\n Footer,\n NavBar,\n NoConfig,\n },\n setup() {\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() =>\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n )\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\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 =\n 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\n return {\n appConfig,\n appLoading,\n hideScrollBar,\n displayScrollButton,\n scrollToTop,\n updateHideScrollBar,\n }\n },\n })\n","import { render } from \"./App.vue?vue&type=template&id=317a6409&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=317a6409&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317a6409\"\n\nexport default script","\n\n\n\n\n","\n import {\n ComputedRef,\n PropType,\n computed,\n defineComponent,\n reactive,\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 export default defineComponent({\n name: 'AdminApplication',\n props: {\n appConfig: {\n type: Object as PropType,\n required: true,\n },\n edition: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n const router = useRouter()\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\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\n return { appData, errorMessages, onCancel, onSubmit }\n },\n })\n","import { render } from \"./AdminApplication.vue?vue&type=template&id=26175b66&scoped=true\"\nimport script from \"./AdminApplication.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=26175b66&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-26175b66\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","\n import { PropType, defineComponent, computed } 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 export default defineComponent({\n name: 'UserStatsCards',\n components: {\n StatCard,\n },\n props: {\n appStatistics: {\n type: Object as PropType,\n default: () => {\n return {}\n },\n },\n },\n setup(props) {\n return {\n uploadDirSize: computed(() =>\n props.appStatistics.uploads_dir_size\n ? getReadableFileSize(props.appStatistics.uploads_dir_size, false)\n : { size: 0, suffix: 'bytes' }\n ),\n usersCount: computed(() =>\n props.appStatistics.users ? props.appStatistics.users : 0\n ),\n sportsCount: computed(() =>\n props.appStatistics.sports ? props.appStatistics.sports : 0\n ),\n workoutCount: computed(() =>\n props.appStatistics.workouts ? props.appStatistics.workouts : 0\n ),\n }\n },\n })\n","import { render } from \"./AppStatsCards.vue?vue&type=template&id=cd52bcc2\"\nimport script from \"./AppStatsCards.vue?vue&type=script&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=cd52bcc2&lang=scss\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n export default defineComponent({\n name: 'Card',\n })\n","import { render } from \"./Card.vue?vue&type=template&id=c5956538\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=c5956538&lang=scss\"\nscript.render = render\n\nexport default script","\n import { PropType, capitalize, defineComponent } 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 export default defineComponent({\n name: 'AdminMenu',\n components: {\n AppStatsCards,\n Card,\n },\n props: {\n appConfig: {\n type: Object as PropType,\n required: true,\n },\n appStatistics: {\n type: Object as PropType,\n },\n },\n setup() {\n return { capitalize }\n },\n })\n","import { render } from \"./AdminMenu.vue?vue&type=template&id=4f30aa64&scoped=true\"\nimport script from \"./AdminMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=4f30aa64&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4f30aa64\"\n\nexport default script","\n\n\n\n\n","\n import { ComputedRef, computed, defineComponent } 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 export default defineComponent({\n name: 'AdminSports',\n setup() {\n const { t } = useI18n()\n const store = useStore()\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\n return { errorMessages, translatedSports, updateSportStatus }\n },\n })\n","import { render } from \"./AdminSports.vue?vue&type=template&id=6d930723&scoped=true\"\nimport script from \"./AdminSports.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d930723&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-6d930723\"\n\nexport default script","\n\n\n\n\n","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n computed,\n defineComponent,\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 { ROOT_STORE, USER_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 export default defineComponent({\n name: 'AdminUsers',\n components: {\n FilterSelects,\n Pagination,\n UserPicture,\n },\n setup() {\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\n const authUser: ComputedRef = computed(\n () => store.getters[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 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 onBeforeMount(() => loadUsers(query))\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n return {\n authUser,\n errorMessages,\n orderByList,\n pagination,\n query,\n sortList,\n users,\n capitalize,\n format,\n getDateWithTZ,\n reloadUsers,\n updateUser,\n }\n },\n })\n","import { render } from \"./AdminUsers.vue?vue&type=template&id=4711ecf8&scoped=true\"\nimport script from \"./AdminUsers.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=4711ecf8&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4711ecf8\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'UserProfileTabs',\n props: {\n tabs: {\n type: Object as PropType,\n required: true,\n },\n selectedTab: {\n type: String,\n required: true,\n },\n edition: {\n type: Boolean,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n function getPath(tab: string) {\n switch (tab) {\n case 'PICTURE':\n return '/profile/edit/picture'\n case 'PREFERENCES':\n return `/profile${props.edition ? '/edit' : ''}/preferences`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n return { getPath }\n },\n })\n","import { render } from \"./UserProfileTabs.vue?vue&type=template&id=c7276c08\"\nimport script from \"./UserProfileTabs.vue?vue&type=script&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=c7276c08&lang=scss\"\nscript.render = render\n\nexport default script","\n import { PropType, defineComponent } 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 export default defineComponent({\n name: 'ProfileDisplay',\n components: {\n UserHeader,\n UserProfileTabs,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n tab: {\n type: String,\n required: true,\n },\n },\n setup() {\n return {\n tabs: ['PROFILE', 'PREFERENCES'],\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=c81580c0&scoped=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=c81580c0&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-c81580c0\"\n\nexport default script","\n\n\n\n\n","\n import { PropType, computed, defineComponent } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n export default defineComponent({\n name: 'UserPreferences',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const language = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() =>\n props.user.weekm ? 'MONDAY' : 'SUNDAY'\n )\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n return { fistDayOfWeek, language, timezone }\n },\n })\n","import { render } from \"./UserPreferences.vue?vue&type=template&id=39667dbe&scoped=true\"\nimport script from \"./UserPreferences.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&lang=ts\"\n\nimport \"./UserPreferences.vue?vue&type=style&index=0&id=39667dbe&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-39667dbe\"\n\nexport default script","\n\n\n","\n import { computed, defineComponent, PropType } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'ProfileEdition',\n components: {\n UserProfileTabs,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n tab: {\n type: String,\n required: true,\n },\n },\n setup() {\n const store = useStore()\n return {\n loading: computed(() => store.getters[USER_STORE.GETTERS.USER_LOADING]),\n tabs: ['PROFILE', 'PICTURE', 'PREFERENCES'],\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=035b0eba\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n reactive,\n ref,\n onMounted,\n } from 'vue'\n\n import { ROOT_STORE, USER_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'UserInfosEdition',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const store = useStore()\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[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(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(USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n return {\n displayModal,\n errorMessages,\n loading,\n registrationDate,\n userForm,\n deleteAccount,\n updateBio,\n updateDisplayModal,\n updateProfile,\n }\n },\n })\n","import { render } from \"./UserInfosEdition.vue?vue&type=template&id=a2dfdb58\"\nimport script from \"./UserInfosEdition.vue?vue&type=script&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=a2dfdb58&lang=scss\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import {\n ComputedRef,\n PropType,\n Ref,\n defineComponent,\n computed,\n ref,\n } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE, USER_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 export default defineComponent({\n name: 'UserPictureEdition',\n components: {\n UserPicture,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup() {\n const store = useStore()\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(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(USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n return {\n errorMessages,\n fileSizeLimit,\n pictureFile,\n deleteUserPicture,\n updateUserPicture,\n updatePictureFile,\n }\n },\n })\n","import { render } from \"./UserPictureEdition.vue?vue&type=template&id=500d4a7a&scoped=true\"\nimport script from \"./UserPictureEdition.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=500d4a7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-500d4a7a\"\n\nexport default script","\n\n\n","\n import {\n ComputedRef,\n PropType,\n computed,\n defineComponent,\n reactive,\n onMounted,\n } from 'vue'\n\n import { ROOT_STORE, USER_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 export default defineComponent({\n name: 'UserPreferencesEdition',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const store = useStore()\n const userForm: IUserPreferencesPayload = reactive({\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 loading = computed(\n () => store.getters[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.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(USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n\n return {\n availableLanguages,\n errorMessages,\n loading,\n userForm,\n weekStart,\n updateProfile,\n }\n },\n })\n","import { render } from \"./UserPreferencesEdition.vue?vue&type=template&id=18513603\"\nimport script from \"./UserPreferencesEdition.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import axios from 'axios'\n\nimport store from '@/store'\nimport { 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[USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (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","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 appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { 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 } 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 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 api from '@/api/defaultApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport {\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USER_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUserActions, IUserState } from '@/store/modules/user/types'\nimport {\n ILoginOrRegisterData,\n IUserDeletionPayload,\n IUserPasswordPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nconst removeUserData = (context: ActionContext) => {\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(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 & IUserActions = {\n [USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n },\n [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 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 removeUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeUserData(context)\n })\n },\n [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(USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(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 [USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeUserData(context)\n },\n [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(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 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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [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(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 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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [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(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(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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: 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 context\n .dispatch(USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(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(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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [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 [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 { USER_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUserGetters, IUserState } from '@/store/modules/user/types'\n\nexport const getters: GetterTree & IUserGetters = {\n [USER_STORE.GETTERS.AUTH_TOKEN]: (state: IUserState) => {\n return state.authToken\n },\n [USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IUserState) => {\n return state.authUserProfile\n },\n [USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IUserState) => {\n return state.authToken !== null\n },\n [USER_STORE.GETTERS.IS_ADMIN]: (state: IUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [USER_STORE.GETTERS.USER_LOADING]: (state: IUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USER_STORE } from '@/store/constants'\nimport { IUserState, TUserMutations } from '@/store/modules/user/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUserMutations = {\n [USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IUserState,\n authUserProfile: IUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IUserState } from '@/store/modules/user/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const userState: IUserState = {\n authToken: null,\n authUserProfile: {},\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/user/actions'\nimport { getters } from '@/store/modules/user/getters'\nimport { mutations } from '@/store/modules/user/mutations'\nimport { userState } from '@/store/modules/user/state.ts'\nimport { IUserState } from '@/store/modules/user/types'\n\nconst user: Module = {\n state: userState,\n actions,\n getters,\n mutations,\n}\n\nexport default user\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload } from '@/types/user'\nimport { handleError } from '@/utils'\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}\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, 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(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(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(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(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 { 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.ts'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport userModule from '@/store/modules/user'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n sportsModule,\n statsModule,\n userModule,\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","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 store from '@/store'\nimport { USER_STORE } from '@/store/constants'\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: () =>\n import(/* webpackChunkName: 'main' */ '@/views/Dashboard.vue'),\n },\n {\n path: '/login',\n name: 'Login',\n component: () =>\n import(/* webpackChunkName: 'main' */ '@/views/user/LoginOrRegister.vue'),\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: () =>\n import(/* webpackChunkName: 'main' */ '@/views/user/LoginOrRegister.vue'),\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 },\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 },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'main' */ '@/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: () =>\n import(/* webpackChunkName: 'main' */ '@/views/NotFoundView.vue'),\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(USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (\n store.getters[USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n } else if (\n !store.getters[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","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'AlertMessage',\n props: {\n message: String,\n },\n })\n","import { render } from \"./AlertMessage.vue?vue&type=template&id=f5e8066a&scoped=true\"\nimport script from \"./AlertMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=f5e8066a&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-f5e8066a\"\n\nexport default script","\n\n\n\n\n","\n import { defineComponent, ref, watch } from 'vue'\n\n export default defineComponent({\n name: 'CustomTextArea',\n props: {\n charLimit: {\n type: Number,\n default: 500,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n input: {\n type: String,\n default: '',\n },\n name: {\n type: String,\n required: true,\n },\n },\n emits: ['updateValue'],\n setup(props, { emit }) {\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\n return { text, updateText }\n },\n })\n","import { render } from \"./CustomTextArea.vue?vue&type=template&id=ad3739fc&scoped=true\"\nimport script from \"./CustomTextArea.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=ad3739fc&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-ad3739fc\"\n\nexport default script","\n\n\n\n\n","\n import { PropType, defineComponent, ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n\n export default defineComponent({\n name: 'Dropdown',\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n selected: {\n type: String,\n required: true,\n },\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(props, { emit }) {\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\n return {\n dropdownOptions,\n isOpen,\n toggleDropdown,\n updateSelected,\n }\n },\n })\n","import { render } from \"./Dropdown.vue?vue&type=template&id=5ef2ddef&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=5ef2ddef&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-5ef2ddef\"\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'ErrorMessage',\n props: {\n message: [String, Array],\n },\n })\n","import { render } from \"./ErrorMessage.vue?vue&type=template&id=5c177a93&scoped=true\"\nimport script from \"./ErrorMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=5c177a93&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-5c177a93\"\n\nexport default script","\n\n\n","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\n import { defineComponent, inject } 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 Running from '@/components/Common/Images/SportImage/Running.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n export default defineComponent({\n name: 'SportImage',\n components: {\n CyclingSport,\n CyclingTransport,\n Hiking,\n MountainBiking,\n Running,\n Walking,\n },\n props: {\n sportLabel: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n required: false,\n },\n },\n setup() {\n return { sportColors: inject('sportColors') }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=834c586a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n export default defineComponent({\n name: 'Loader',\n })\n","import { render } from \"./Loader.vue?vue&type=template&id=8bf75da8&scoped=true\"\nimport script from \"./Loader.vue?vue&type=script&lang=ts\"\nexport * from \"./Loader.vue?vue&type=script&lang=ts\"\n\nimport \"./Loader.vue?vue&type=style&index=0&id=8bf75da8&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-8bf75da8\"\n\nexport default script","\n\n\n\n\n","\n import { ComputedRef, computed, defineComponent, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'Modal',\n props: {\n title: {\n type: String,\n required: true,\n },\n message: {\n type: String,\n required: true,\n },\n strongMessage: {\n type: String || null,\n default: null,\n },\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(props, { emit }) {\n const store = useStore()\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 return { errorMessages, emit }\n },\n })\n","import { render } from \"./Modal.vue?vue&type=template&id=21b6cb61&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=21b6cb61&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-21b6cb61\"\n\nexport default script","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.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 AlertMessage,\n Card,\n CustomTextArea,\n Dropdown,\n ErrorMessage,\n Loader,\n Modal,\n 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)\n})\n\napp.mount('#app')\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUserState } from '@/store/modules/user/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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserProfileTabs.vue?vue&type=style&index=0&id=c7276c08&lang=scss\"","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 UserActions {\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 UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n}\n\nexport enum UserGetters {\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 UserMutations {\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 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}\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 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 UserActions,\n UserGetters,\n UserMutations,\n} from '@/store/modules/user/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 USER_STORE = {\n ACTIONS: UserActions,\n GETTERS: UserGetters,\n MUTATIONS: UserMutations,\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","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--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NoConfig.vue?vue&type=style&index=0&id=01d4a985&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AlertMessage.vue?vue&type=style&index=0&id=f5e8066a&scoped=true&lang=scss\""],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.fba56819.js b/fittrackee/dist/static/js/app.fba56819.js new file mode 100644 index 00000000..77e6c369 --- /dev/null +++ b/fittrackee/dist/static/js/app.fba56819.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var r,o,i=t[0],s=t[1],u=t[2],l=0,d=[];lr?1:n2&&void 0!==arguments[2]&&arguments[2];return e.filter((function(e){return!n||e.is_active})).map((function(e){return Object(r["a"])(Object(r["a"])({},e),{},{translatedLabel:t("sports.".concat(e.label,".LABEL"))})})).sort(c)},s=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.label}))[0]}},"13dc":function(e,t,n){"use strict";n("c0dc")},"16c2":function(e,t,n){"use strict";n("a03e")},1850:function(e,t,n){"use strict";n("da66")},"1f4c":function(e,t,n){},2024:function(e,t,n){},2906:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n("5502");function o(){return Object(r["b"])()}},3214:function(e,t,n){"use strict";n("2024")},3853:function(e,t,n){"use strict";n("c75e")},"3c44":function(e,t,n){"use strict";n("b680"),n("a9e3");var r=n("7a23"),o=Object(r["withScopeId"])("data-v-a6fa997c");Object(r["pushScopeId"])("data-v-a6fa997c");var a={class:"box user-header"},c={class:"user-details"},i={class:"user-name"},s={class:"user-stats"},u={class:"user-stat"},l={class:"stat-number"},d={class:"stat-label"},O={class:"user-stat"},p={class:"stat-number"},m=Object(r["createVNode"])("span",{class:"stat-label"},"km",-1),b={class:"user-stat hide-small"},T={class:"stat-number"},E={class:"stat-label"};Object(r["popScopeId"])();var S=o((function(e,t,n,o,S,f){var _=Object(r["resolveComponent"])("UserPicture");return Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[Object(r["createVNode"])(_,{user:e.user},null,8,["user"]),Object(r["createVNode"])("div",c,[Object(r["createVNode"])("div",i,Object(r["toDisplayString"])(e.user.username),1),Object(r["createVNode"])("div",s,[Object(r["createVNode"])("div",u,[Object(r["createVNode"])("span",l,Object(r["toDisplayString"])(e.user.nb_workouts),1),Object(r["createVNode"])("span",d,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",e.user.nb_workouts)),1)]),Object(r["createVNode"])("div",O,[Object(r["createVNode"])("span",p,Object(r["toDisplayString"])(Number(e.user.total_distance).toFixed(0)),1),m]),Object(r["createVNode"])("div",b,[Object(r["createVNode"])("span",T,Object(r["toDisplayString"])(e.user.nb_sports),1),Object(r["createVNode"])("span",E,Object(r["toDisplayString"])(e.$t("workouts.SPORT",e.user.nb_sports)),1)])])])])})),f=n("c46a"),_=Object(r["defineComponent"])({name:"ProfileDisplay",components:{UserPicture:f["a"]},props:{user:{type:Object,required:!0}}});n("5085");_.render=S,_.__scopeId="data-v-a6fa997c";t["a"]=_},4370:function(e,t,n){},"466e":function(e,t,n){},4870:function(e,t,n){"use strict";var r,o,a;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return o})),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"}(o||(o={})),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={}))},"4a13":function(e,t,n){"use strict";n("92d6")},"4b55":function(e,t,n){"use strict";n("8384")},5085:function(e,t,n){"use strict";n("1f4c")},5567:function(e,t,n){"use strict";n("8349")},5712:function(e,t,n){},"5e65":function(e,t,n){"use strict";n.d(t,"d",(function(){return p})),n.d(t,"e",(function(){return m})),n.d(t,"c",(function(){return b})),n.d(t,"b",(function(){return T})),n.d(t,"a",(function(){return E}));var r=n("69eb"),o=n("d6e9"),a=n("f628"),c=n("f7f1"),i=n("cdb6"),s=n("74b5"),u=n("8cac"),l=n("2fc8"),d=n("b166"),O=n("78b2"),p=function(e,t,n){switch(e){case"week":return Object(r["a"])(t,{weekStartsOn:n?1:0});case"year":return Object(o["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(c["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,'"'))}},b=function(e,t){return Object(O["a"])(new Date(e),t)},T=function(e,t){var n=Object(a["a"])(e),o=Object(u["a"])(e),c=t?1:0;return{start:Object(r["a"])(n,{weekStartsOn:c}),end:Object(l["a"])(o,{weekStartsOn:c})}},E=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)}}},"608d":function(e,t,n){"use strict";n("90b9")},"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"])}}}}},o={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"])},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"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},c={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"])}}},u={"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"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},l={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"])},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"])},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"])},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"])}},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"])},KM:e=>{const{normalize:t}=e;return t(["km"])},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"])},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:o,buttons:a,common:c,dashboard:i,error:s,sports:u,statistics:l,user:d,workouts:O}},"6d7d":function(e,t,n){"use strict";var r=n("7a23"),o=Object(r["withScopeId"])("data-v-56dc89d4");Object(r["pushScopeId"])("data-v-56dc89d4");var a={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},i=Object(r["createVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),s={key:0},u=Object(r["createVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1);Object(r["popScopeId"])();var l=o((function(e,t,n,l,d,O){var p=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createBlock"])("nav",a,[Object(r["createVNode"])("ul",c,[Object(r["createVNode"])("li",{class:["page-prev",{disabled:!e.pagination.has_prev}]},[Object(r["createVNode"])(p,{class:"page-link",to:{path:e.path,query:e.getQuery(e.pagination.page,-1)},event:e.pagination.has_prev?"click":"",disabled:!e.pagination.has_prev},{default:o((function(){return[i,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("api.PAGINATION.PREVIOUS")),1)]})),_:1},8,["to","event","disabled"])],2),(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.rangePagination(e.pagination.pages,e.pagination.page),(function(t){return Object(r["openBlock"])(),Object(r["createBlock"])("li",{key:t,class:["page",{active:t===e.pagination.page}]},["..."===t?(Object(r["openBlock"])(),Object(r["createBlock"])("span",s," ... ")):(Object(r["openBlock"])(),Object(r["createBlock"])(p,{key:1,class:"page-link",to:{path:e.path,query:e.getQuery(+t)}},{default:o((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(t),1)]})),_:2},1032,["to"]))],2)})),128)),Object(r["createVNode"])("li",{class:["page-next",{disabled:!e.pagination.has_next}]},[Object(r["createVNode"])(p,{class:"page-link",to:{path:e.path,query:e.getQuery(e.pagination.page,1)},event:e.pagination.has_next?"click":"",disabled:!e.pagination.has_next},{default:o((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("api.PAGINATION.NEXT"))+" ",1),u]})),_:1},8,["to","event","disabled"])],2)])])})),d=n("97e5"),O=Object(r["defineComponent"])({name:"Pagination",props:{pagination:{type:Object,required:!0},path:{type:String,required:!0},query:{type:Object,required:!0}},setup:function(e){function t(t,n){var r=Object.assign({},e.query);return r.page=n?t+n:t,r}return{rangePagination:d["b"],getQuery:t}}});n("1850");O.render=l,O.__scopeId="data-v-56dc89d4";t["a"]=O},"6eb4":function(e,t,n){},"71a7":function(e,t,n){"use strict";var r=n("7a23"),o=Object(r["withScopeId"])("data-v-1267fe4f");Object(r["pushScopeId"])("data-v-1267fe4f");var a={id:"user-infos",class:"description-list"},c={class:"user-bio"},i={key:1,class:"profile-buttons"},s={key:2,class:"profile-buttons"};Object(r["popScopeId"])();var u=o((function(e,t,n,o,u,l){var d=Object(r["resolveComponent"])("Modal");return Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[e.displayModal?(Object(r["openBlock"])(),Object(r["createBlock"])(d,{key:0,title:e.$t("common.CONFIRMATION"),message:"admin.CONFIRM_USER_ACCOUNT_DELETION",strongMessage:e.user.username,onConfirmAction:t[1]||(t[1]=function(t){return e.deleteUserAccount(e.user.username)}),onCancelAction:t[2]||(t[2]=function(t){return e.updateDisplayModal(!1)})},null,8,["title","strongMessage"])):Object(r["createCommentVNode"])("",!0),Object(r["createVNode"])("dl",null,[Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.registrationDate),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.user.first_name),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.user.last_name),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.birthDate),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+":",1),Object(r["createVNode"])("dd",null,Object(r["toDisplayString"])(e.user.location),1),Object(r["createVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIO"))+":",1),Object(r["createVNode"])("dd",c,Object(r["toDisplayString"])(e.user.bio),1)]),e.fromAdmin?(Object(r["openBlock"])(),Object(r["createBlock"])("div",i,[e.authUser.username!==e.user.username?(Object(r["openBlock"])(),Object(r["createBlock"])("button",{key:0,class:"danger",onClick:t[3]||(t[3]=Object(r["withModifiers"])((function(t){return e.updateDisplayModal(!0)}),["prevent"]))},Object(r["toDisplayString"])(e.$t("admin.DELETE_USER")),1)):Object(r["createCommentVNode"])("",!0),Object(r["createVNode"])("button",{onClick:t[4]||(t[4]=function(t){return e.$router.go(-1)})},Object(r["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(r["openBlock"])(),Object(r["createBlock"])("div",s,[Object(r["createVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/profile/edit")})},Object(r["toDisplayString"])(e.$t("user.PROFILE.EDIT")),1),Object(r["createVNode"])("button",{onClick:t[6]||(t[6]=function(t){return e.$router.push("/")})},Object(r["toDisplayString"])(e.$t("common.HOME")),1)]))])})),l=n("b166"),d=n("dad5"),O=n("2906"),p=Object(r["defineComponent"])({name:"UserInfos",props:{user:{type:Object,required:!0},fromAdmin:{type:Boolean,default:!1}},setup:function(e){var t=Object(O["a"])(),n=Object(r["computed"])((function(){return t.getters[d["e"].GETTERS.AUTH_USER_PROFILE]})),o=Object(r["computed"])((function(){return e.user.created_at?Object(l["a"])(new Date(e.user.created_at),"dd/MM/yyyy HH:mm"):""})),a=Object(r["computed"])((function(){return e.user.birth_date?Object(l["a"])(new Date(e.user.birth_date),"dd/MM/yyyy"):""})),c=Object(r["ref"])(!1);function i(e){c.value=e}function s(e){t.dispatch(d["e"].ACTIONS.DELETE_ACCOUNT,{username:e})}return{authUser:n,birthDate:a,displayModal:c,registrationDate:o,deleteUserAccount:s,updateDisplayModal:i}}});n("966c");p.render=u,p.__scopeId="data-v-1267fe4f";t["a"]=p},"79e1":function(e,t,n){"use strict";n("851f")},"7b3e":function(e,t,n){"use strict";n("b715")},"7ffe":function(e,t,n){"use strict";n("9f54")},8349:function(e,t,n){},8384:function(e,t,n){},"851f":function(e,t,n){},"85fa":function(e,t,n){"use strict";n("0a59")},8728:function(e,t,n){"use strict";n("8d9f")},"8d9f":function(e,t,n){},"90b9":function(e,t,n){},9176:function(e,t,n){"use strict";n("99af"),n("4e82");var r=n("7a23"),o=Object(r["withScopeId"])("data-v-50c78582");Object(r["pushScopeId"])("data-v-50c78582");var a={class:"table-selects"};Object(r["popScopeId"])();var c=o((function(e,t,n,o,c,i){return Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[Object(r["createVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),Object(r["createVNode"])("select",{name:"order_by",id:"order_by",value:e.query.order_by,onChange:t[1]||(t[1]=function(){return e.onSelectUpdate&&e.onSelectUpdate.apply(e,arguments)})},[(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.order_by,(function(t){return Object(r["openBlock"])(),Object(r["createBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("".concat(e.message,".").concat(t.toUpperCase()))),9,["value"])})),128))],40,["value"])]),Object(r["createVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),Object(r["createVNode"])("select",{name:"order",id:"order",value:e.query.order,onChange:t[2]||(t[2]=function(){return e.onSelectUpdate&&e.onSelectUpdate.apply(e,arguments)})},[(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.sort,(function(t){return Object(r["openBlock"])(),Object(r["createBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.".concat(t.toUpperCase()))),9,["value"])})),128))],40,["value"])]),Object(r["createVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),Object(r["createVNode"])("select",{name:"per_page",id:"per_page",value:e.query.per_page,onChange:t[3]||(t[3]=function(){return e.onSelectUpdate&&e.onSelectUpdate.apply(e,arguments)})},[(Object(r["openBlock"])(!0),Object(r["createBlock"])(r["Fragment"],null,Object(r["renderList"])(e.per_page,(function(e){return Object(r["openBlock"])(),Object(r["createBlock"])("option",{value:e,key:e},Object(r["toDisplayString"])(e),9,["value"])})),128))],40,["value"])])])})),i=Object(r["defineComponent"])({name:"FilterSelects",props:{order_by:{type:Object,required:!0},query:{type:Object,required:!0},sort:{type:Object,required:!0},message:{type:String,required:!0}},emits:["updateSelect"],setup:function(e,t){var n=t.emit;function r(e){n("updateSelect",e.target.id,e.target.value)}return{per_page:[10,25,50,100],onSelectUpdate:r}}});n("79e1");i.render=c,i.__scopeId="data-v-50c78582";t["a"]=i},"92d6":function(e,t,n){},"95ba":function(e,t,n){"use strict";n("6eb4")},"966c":function(e,t,n){"use strict";n("5712")},"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 u})),n.d(t,"b",(function(){return d}));n("caad"),n("2532"),n("a630"),n("3ca3"),n("99af");var r=["asc","desc"],o=1,a=10,c=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 u=s||{},l=u.defaultSort||"asc",d=u.query||{};return d.page=c(e.page,o),d.per_page=c(e.per_page,a),d.order=i(e.order,r,l),d.order_by=i(e.order_by,t,n),d},u=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],l=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 l(e);var n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(l(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{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"])}}}}},o={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"])},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"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},c={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"])}}},u={"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"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},l={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"])},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"])},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"])},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"])}},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"])},KM:e=>{const{normalize:t}=e;return t(["km"])},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"])},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:o,buttons:a,common:c,dashboard:i,error:s,sports:u,statistics:l,user:d,workouts:O}},c364:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return a}));n("b680"),n("99af");var r=["bytes","KB","MB","GB","TB"],o=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 o=(e/Math.pow(1024,n)).toFixed(1),a=r[n];return t?"".concat(o).concat(a):{size:o,suffix:a}},a=function(e){var t=e/1048576;return+t.toFixed(2)}},c46a:function(e,t,n){"use strict";var r=n("7a23"),o={class:"user-picture"},a={key:1,class:"no-picture"},c=Object(r["createVNode"])("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1);function i(e,t,n,i,s,u){return Object(r["openBlock"])(),Object(r["createBlock"])("div",o,[""!==e.authUserPictureUrl?(Object(r["openBlock"])(),Object(r["createBlock"])("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:e.authUserPictureUrl},null,8,["alt","src"])):(Object(r["openBlock"])(),Object(r["createBlock"])("div",a,[c]))])}n("99af");var s=n("d257"),u=Object(r["defineComponent"])({name:"UserPicture",props:{user:{type:Object,required:!0}},setup:function(e){return{authUserPictureUrl:Object(r["computed"])((function(){return e.user.picture?"".concat(Object(s["a"])(),"users/").concat(e.user.username,"/picture"):""}))}}});n("13dc");u.render=i;t["a"]=u},c75e:function(e,t,n){},cbea:function(e,t,n){"use strict";n("fb41")},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("159b"),n("b0c0");var r=n("9b4a"),o=n("d9fa"),a=n("7a23"),c=n("9483");Object(c["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=Object(a["withScopeId"])("data-v-317a6409");Object(a["pushScopeId"])("data-v-317a6409");var s=Object(a["createVNode"])("div",{id:"top"},null,-1),u={key:0,class:"app-container"},l={class:"app-loading"},d={class:"container scroll"},O=Object(a["createVNode"])("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1);Object(a["popScopeId"])();var p=i((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("NavBar"),p=Object(a["resolveComponent"])("Loader"),m=Object(a["resolveComponent"])("router-view"),b=Object(a["resolveComponent"])("NoConfig"),T=Object(a["resolveComponent"])("Footer");return Object(a["openBlock"])(),Object(a["createBlock"])(a["Fragment"],null,[s,Object(a["createVNode"])(i,{onMenuInteraction:e.updateHideScrollBar},null,8,["onMenuInteraction"]),e.appLoading?(Object(a["openBlock"])(),Object(a["createBlock"])("div",u,[Object(a["createVNode"])("div",l,[Object(a["createVNode"])(p)])])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",{key:1,class:["app-container",{"hide-scroll":e.hideScrollBar}]},[e.appConfig?(Object(a["openBlock"])(),Object(a["createBlock"])(m,{key:0})):(Object(a["openBlock"])(),Object(a["createBlock"])(b,{key:1}))],2)),Object(a["createVNode"])("div",d,[Object(a["createVNode"])("div",{class:["scroll-button",{"display-button":e.displayScrollButton}],onClick:t[1]||(t[1]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[O],2)]),e.appConfig?(Object(a["openBlock"])(),Object(a["createBlock"])(T,{key:2,version:e.appConfig?e.appConfig.version:""},null,8,["version"])):Object(a["createCommentVNode"])("",!0)],64)})),m=Object(a["withScopeId"])("data-v-e1641806");Object(a["pushScopeId"])("data-v-e1641806");var b={id:"footer"},T={class:"footer-items"},E={class:"footer-item"},S=Object(a["createVNode"])("strong",null,"FitTrackee",-1),f=Object(a["createStaticVNode"])('',4);Object(a["popScopeId"])();var _=m((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",b,[Object(a["createVNode"])("div",T,[Object(a["createVNode"])("div",E,[S,Object(a["createTextVNode"])(" v"+Object(a["toDisplayString"])(e.version),1)]),f])])})),j=Object(a["defineComponent"])({name:"Footer",props:{version:{type:String,required:!0}}});n("7b3e");j.render=_,j.__scopeId="data-v-e1641806";var A=j,N=Object(a["withScopeId"])("data-v-03a78350");Object(a["pushScopeId"])("data-v-03a78350");var R={id:"nav"},I={class:"nav-container"},g={class:"nav-app-name"},U={class:"nav-items-close"},v=Object(a["createVNode"])("div",{class:"app-name"},"FitTrackee",-1),D={key:0,class:"nav-items-group"},h=Object(a["createVNode"])("div",{class:"nav-item nav-separator"},null,-1),P={class:"nav-items-user-menu"},C={key:0,class:"nav-items-group"},M={class:"nav-item nav-profile-img"},k={key:1,class:"nav-items-group"},L=Object(a["createVNode"])("i",{class:"fa fa-language"},null,-1);Object(a["popScopeId"])();var z=N((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("router-link"),s=Object(a["resolveComponent"])("UserPicture"),u=Object(a["resolveComponent"])("Dropdown");return Object(a["openBlock"])(),Object(a["createBlock"])("div",R,[Object(a["createVNode"])("div",I,[Object(a["createVNode"])("div",g,[Object(a["createVNode"])("div",{class:"nav-item app-name",onClick:t[1]||(t[1]=function(t){return e.$router.push("/")})}," FitTrackee ")]),Object(a["createVNode"])("div",{class:["nav-icon-open",{"menu-open":e.isMenuOpen}]},[Object(a["createVNode"])("i",{class:"fa fa-bars hamburger-icon",onClick:t[2]||(t[2]=function(t){return e.openMenu()})})],2),Object(a["createVNode"])("div",{class:["nav-items",{"menu-open":e.isMenuOpen}]},[Object(a["createVNode"])("div",U,[v,Object(a["createVNode"])("i",{class:["fa fa-close close-icon nav-item",{"menu-closed":!e.isMenuOpen}],onClick:t[3]||(t[3]=function(t){return e.closeMenu()})},null,2)]),Object(a["createVNode"])("div",{class:"nav-items-app-menu",onClick:t[4]||(t[4]=function(t){return e.closeMenu()})},[e.isAuthenticated?(Object(a["openBlock"])(),Object(a["createBlock"])("div",D,[Object(a["createVNode"])(i,{class:"nav-item",to:"/"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("dashboard.DASHBOARD")),1)]})),_:1}),Object(a["createVNode"])(i,{class:"nav-item",to:"/workouts"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.WORKOUT",2))),1)]})),_:1}),Object(a["createVNode"])(i,{class:"nav-item",to:"/statistics"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("statistics.STATISTICS")),1)]})),_:1}),Object(a["createVNode"])(i,{class:"nav-item",to:"/workouts/add"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("workouts.ADD_WORKOUT")),1)]})),_:1}),e.isAuthenticated&&e.authUser.admin?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,class:"nav-item",to:"/admin"},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.ADMIN")),1)]})),_:1})):Object(a["createCommentVNode"])("",!0),h])):Object(a["createCommentVNode"])("",!0)]),Object(a["createVNode"])("div",P,[e.isAuthenticated?(Object(a["openBlock"])(),Object(a["createBlock"])("div",C,[Object(a["createVNode"])("div",M,[Object(a["createVNode"])(s,{user:e.authUser},null,8,["user"])]),Object(a["createVNode"])(i,{class:"nav-item",to:"/profile",onClick:e.closeMenu},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.authUser.username),1)]})),_:1},8,["onClick"]),Object(a["createVNode"])("div",{class:"nav-item nav-link",onClick:t[5]||(t[5]=function(){return e.logout&&e.logout.apply(e,arguments)})},Object(a["toDisplayString"])(e.$t("user.LOGOUT")),1)])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",k,[Object(a["createVNode"])(i,{class:"nav-item",to:"/login",onClick:e.closeMenu},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.LOGIN")),1)]})),_:1},8,["onClick"]),Object(a["createVNode"])(i,{class:"nav-item",to:"/register",onClick:e.closeMenu},{default:N((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.REGISTER")),1)]})),_:1},8,["onClick"])])),e.availableLanguages&&e.language?(Object(a["openBlock"])(),Object(a["createBlock"])(u,{key:2,class:"nav-item",options:e.availableLanguages,selected:e.language,onSelected:e.updateLanguage},{default:N((function(){return[L]})),_:1},8,["options","selected","onSelected"])):Object(a["createCommentVNode"])("",!0)])],2)])])})),y=(n("99af"),n("d3b7"),n("25f0"),n("47e2")),w=n("c46a"),V=n("dad5"),B=n("2906"),G=n("d257"),x=(n("d81d"),n("8923")),F=n("d481");n("ddb0"),n("ac1f"),n("466d");function W(){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 o=r[1];t[o]=e(n).default}})),t}var K=Object(y["a"])({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:W()}),$={en:x["a"],fr:F["a"]},H={en:"English",fr:"Français"},Y=K.global.availableLocales,q=Y.map((function(e){return{label:H[e],value:e}})),X=Object(a["defineComponent"])({name:"NavBar",components:{UserPicture:w["a"]},emits:["menuInteraction"],setup:function(e,t){var n=t.emit,r=Object(y["b"])(),o=r.locale,c=Object(B["a"])(),i=Object(a["computed"])((function(){return c.getters[V["e"].GETTERS.AUTH_USER_PROFILE]})),s=Object(a["computed"])((function(){return c.getters[V["e"].GETTERS.IS_AUTHENTICATED]})),u=Object(a["computed"])((function(){return s.value&&i.value.picture?"".concat(Object(G["a"])(),"/users/").concat(i.value.username,"/picture?").concat(Date.now()):""})),l=Object(a["computed"])((function(){return c.getters[V["a"].GETTERS.LANGUAGE]})),d=Object(a["ref"])(!1);function O(){d.value=!0,n("menuInteraction",!0)}function p(){d.value=!1,n("menuInteraction",!1)}function m(e){o.value=e.value.toString(),c.commit(V["a"].MUTATIONS.UPDATE_LANG,e.value)}function b(){c.dispatch(V["e"].ACTIONS.LOGOUT)}return{availableLanguages:q,authUser:i,authUserPictureUrl:u,isAuthenticated:s,isMenuOpen:d,language:l,capitalize:a["capitalize"],openMenu:O,closeMenu:p,updateLanguage:m,logout:b}}});n("5567");X.render=z,X.__scopeId="data-v-03a78350";var Z=X,Q=Object(a["withScopeId"])("data-v-01d4a985");Object(a["pushScopeId"])("data-v-01d4a985");var J={id:"no-config"},ee={class:"error-page"},te=Object(a["createVNode"])("div",{class:"error-img"},[Object(a["createVNode"])("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},[Object(a["createVNode"])("g",{id:"error"},[Object(a["createVNode"])("path",{class:"error-page-img",d:"M 0 0 C 0 11.300781 0 399.777344 0 410 L 512 410 C 512 402.324219 512 2.425781 512 0 Z M 370 71 L 370 30 L 411 30 L 411 71 Z M 30 30 L 340 30 L 340 71 L 30 71 Z M 482 380 L 30 380 L 30 101 L 482 101 Z M 441 71 L 441 30 L 482 30 L 482 71 Z M 441 71 "}),Object(a["createVNode"])("path",{class:"error-page-img",d:"M 325.519531 297.070312 C 294.328125 265.878906 294.328125 215.125 325.519531 183.929688 L 304.304688 162.71875 C 261.417969 205.605469 261.417969 275.390625 304.304688 318.28125 Z M 325.519531 297.070312 "}),Object(a["createVNode"])("path",{class:"error-page-img",d:"M 197.089844 180 L 237.089844 180 L 237.089844 220 L 197.089844 220 Z M 197.089844 180 "}),Object(a["createVNode"])("path",{class:"error-page-img",d:"M 197.089844 261 L 237.089844 261 L 237.089844 301 L 197.089844 301 Z M 197.089844 261 "})])])],-1);Object(a["popScopeId"])();var ne=Q((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",J,[Object(a["createVNode"])("div",ee,[te,Object(a["createVNode"])("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,["innerHTML"])])])})),re=Object(a["defineComponent"])({name:"NoConfig",setup:function(){var e=Object(y["b"])(),t=e.t;return{t:t}}});n("f037");re.render=ne,re.__scopeId="data-v-01d4a985";var oe=re,ae=Object(a["defineComponent"])({name:"App",components:{Footer:A,NavBar:Z,NoConfig:oe},setup:function(){var e=Object(B["a"])(),t=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.APP_CONFIG]})),n=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.APP_LOADING]})),r=Object(a["ref"])(!1),o=Object(a["ref"])(!1);function c(e){r.value=e}function i(e){return e.getBoundingClientRect().top=0}function s(){window.onscroll=function(){var e=document.querySelector("#bottom");o.value=null!==e&&i(e)}}function u(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((function(){o.value=!1}),300)}return Object(a["onBeforeMount"])((function(){return e.dispatch(V["a"].ACTIONS.GET_APPLICATION_CONFIG)})),Object(a["onMounted"])((function(){return s()})),{appConfig:t,appLoading:n,hideScrollBar:r,displayScrollButton:o,scrollToTop:u,updateHideScrollBar:c}}});n("608d");ae.render=p,ae.__scopeId="data-v-317a6409";var ce=ae,ie=(n("5319"),n("3ca3"),n("caad"),n("6c02")),se=Object(a["withScopeId"])("data-v-26175b66");Object(a["pushScopeId"])("data-v-26175b66");var ue={id:"admin-app",class:"admin-card"},le={for:"max_users"},de={class:"user-limit-help"},Oe={class:"info-box"},pe=Object(a["createVNode"])("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1),me={for:"max_single_file_size"},be={for:"max_zip_file_size"},Te={for:"gpx_limit_import"},Ee={key:1,class:"form-buttons"},Se={class:"confirm",type:"submit"},fe={key:2,class:"form-buttons"};Object(a["popScopeId"])();var _e=se((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("ErrorMessage"),s=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",ue,[Object(a["createVNode"])(s,null,{title:se((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.TITLE")),1)]})),content:se((function(){return[Object(a["createVNode"])("form",{class:"admin-form",onSubmit:t[8]||(t[8]=Object(a["withModifiers"])((function(){return e.onSubmit&&e.onSubmit.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("label",le,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.appData.max_users=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.max_users]])]),Object(a["createVNode"])("div",de,[Object(a["createVNode"])("span",Oe,[pe,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),Object(a["createVNode"])("label",me,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.appData.max_single_file_size=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.max_single_file_size]])]),Object(a["createVNode"])("label",be,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.appData.max_zip_file_size=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.max_zip_file_size]])]),Object(a["createVNode"])("label",Te,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.appData.gpx_limit_import=t}),disabled:!e.edition},null,8,["disabled"]),[[a["vModelText"],e.appData.gpx_limit_import]])]),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),e.edition?(Object(a["openBlock"])(),Object(a["createBlock"])("div",Ee,[Object(a["createVNode"])("button",Se,Object(a["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[5]||(t[5]=Object(a["withModifiers"])((function(){return e.onCancel&&e.onCancel.apply(e,arguments)}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.CANCEL")),1)])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",fe,[Object(a["createVNode"])("button",{class:"confirm",onClick:t[6]||(t[6]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin/application/edit")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.EDIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[7]||(t[7]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)]))],32)]})),_:1})])})),je=(n("b64b"),n("c364")),Ae=Object(a["defineComponent"])({name:"AdminApplication",props:{appConfig:{type:Object,required:!0},edition:{type:Boolean,default:!1}},setup:function(e){var t=Object(B["a"])(),n=Object(ie["d"])(),r=Object(a["reactive"])({max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),o=Object(a["computed"])((function(){return t.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function c(e){Object.keys(r).map((function(t){["max_single_file_size","max_zip_file_size"].includes(t)?r[t]=Object(je["a"])(e[t]):r[t]=e[t]}))}function i(){c(e.appConfig),t.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),n.push("/admin/application")}function s(){var e=Object.assign({},r);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,t.dispatch(V["a"].ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return Object(a["onBeforeMount"])((function(){e.appConfig&&c(e.appConfig)})),{appData:r,errorMessages:o,onCancel:i,onSubmit:s}}});n("3853");Ae.render=_e,Ae.__scopeId="data-v-26175b66";var Ne=Ae,Re=Object(a["withScopeId"])("data-v-4f30aa64");Object(a["pushScopeId"])("data-v-4f30aa64");var Ie={id:"admin-menu",class:"center-card"},ge={class:"admin-menu description-list"},Ue=Object(a["createVNode"])("br",null,null,-1),ve={class:"registration-status"};Object(a["popScopeId"])();var De=Re((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("AppStatsCards"),s=Object(a["resolveComponent"])("router-link"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",Ie,[Object(a["createVNode"])(u,null,{title:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.ADMINISTRATION")),1)]})),content:Re((function(){return[Object(a["createVNode"])(i,{"app-statistics":e.appStatistics},null,8,["app-statistics"]),Object(a["createVNode"])("div",ge,[Object(a["createVNode"])("dl",null,[Object(a["createVNode"])("dt",null,[Object(a["createVNode"])(s,{to:"/admin/application"},{default:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.APPLICATION")),1)]})),_:1})]),Object(a["createVNode"])("dd",null,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),Ue,Object(a["createVNode"])("span",ve,Object(a["toDisplayString"])(e.$t("admin.REGISTRATION_".concat(e.appConfig.is_registration_enabled?"ENABLED":"DISABLED"))),1)]),Object(a["createVNode"])("dt",null,[Object(a["createVNode"])(s,{to:"/admin/sports"},{default:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.SPORT",0))),1)]})),_:1})]),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),Object(a["createVNode"])("dt",null,[Object(a["createVNode"])(s,{to:"/admin/users"},{default:Re((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("admin.USER",0))),1)]})),_:1})]),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]})),_:1})])})),he={id:"user-stats"};function Pe(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("StatCard");return Object(a["openBlock"])(),Object(a["createBlock"])("div",he,[Object(a["createVNode"])(i,{icon:"users",value:e.usersCount,text:e.$t("admin.USER",e.usersCount)},null,8,["value","text"]),Object(a["createVNode"])(i,{icon:"tags",value:e.sportsCount,text:e.$t("workouts.SPORT",e.sportsCount)},null,8,["value","text"]),Object(a["createVNode"])(i,{icon:"calendar",value:e.workoutCount,text:e.$t("workouts.WORKOUT",e.workoutCount)},null,8,["value","text"]),Object(a["createVNode"])(i,{icon:"folder-open",value:e.uploadDirSize.size,text:e.uploadDirSize.suffix},null,8,["value","text"])])}var Ce=n("05d9"),Me=Object(a["defineComponent"])({name:"UserStatsCards",components:{StatCard:Ce["a"]},props:{appStatistics:{type:Object,default:function(){return{}}}},setup:function(e){return{uploadDirSize:Object(a["computed"])((function(){return e.appStatistics.uploads_dir_size?Object(je["b"])(e.appStatistics.uploads_dir_size,!1):{size:0,suffix:"bytes"}})),usersCount:Object(a["computed"])((function(){return e.appStatistics.users?e.appStatistics.users:0})),sportsCount:Object(a["computed"])((function(){return e.appStatistics.sports?e.appStatistics.sports:0})),workoutCount:Object(a["computed"])((function(){return e.appStatistics.workouts?e.appStatistics.workouts:0}))}}});n("a1fe");Me.render=Pe;var ke=Me,Le={class:"card"},ze={class:"card-title"},ye={class:"card-content"};function we(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",Le,[Object(a["createVNode"])("div",ze,[Object(a["renderSlot"])(e.$slots,"title")]),Object(a["createVNode"])("div",ye,[Object(a["renderSlot"])(e.$slots,"content")])])}var Ve=Object(a["defineComponent"])({name:"Card"});n("16c2");Ve.render=we;var Be=Ve,Ge=Object(a["defineComponent"])({name:"AdminMenu",components:{AppStatsCards:ke,Card:Be},props:{appConfig:{type:Object,required:!0},appStatistics:{type:Object}},setup:function(){return{capitalize:a["capitalize"]}}});n("4a13");Ge.render=De,Ge.__scopeId="data-v-4f30aa64";var xe=Ge,Fe=Object(a["withScopeId"])("data-v-6d930723");Object(a["pushScopeId"])("data-v-6d930723");var We={id:"admin-sports",class:"admin-card"},Ke={class:"responsive-table"},$e=Object(a["createVNode"])("th",null,"#",-1),He={class:"text-left"},Ye={class:"text-left sport-action"},qe=Object(a["createVNode"])("th",null,null,-1),Xe={class:"center-text"},Ze=Object(a["createVNode"])("span",{class:"cell-heading"},"id",-1),Qe={class:"cell-heading"},Je={class:"sport-label"},et={class:"cell-heading"},tt={class:"center-text"},nt={class:"cell-heading"},rt={class:"sport-action"},ot={class:"cell-heading"},at={class:"action-button"},ct={key:0,class:"has-workouts"},it=Object(a["createVNode"])("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1);Object(a["popScopeId"])();var st=Fe((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("SportImage"),s=Object(a["resolveComponent"])("ErrorMessage"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",We,[Object(a["createVNode"])(u,null,{title:Fe((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("admin.SPORTS.TITLE")),1)]})),content:Fe((function(){return[Object(a["createVNode"])("button",{class:"top-button",onClick:t[1]||(t[1]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(a["createVNode"])("div",Ke,[Object(a["createVNode"])("table",null,[Object(a["createVNode"])("thead",null,[Object(a["createVNode"])("tr",null,[$e,Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(a["createVNode"])("th",He,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(a["createVNode"])("th",Ye,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1),qe])]),Object(a["createVNode"])("tbody",null,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.translatedSports,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("tr",{key:t.id},[Object(a["createVNode"])("td",Xe,[Ze,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.id),1)]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",Qe,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(a["createVNode"])(i,{title:t.translatedLabel,"sport-label":t.label},null,8,["title","sport-label"])]),Object(a["createVNode"])("td",Je,[Object(a["createVNode"])("span",et,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.translatedLabel),1)]),Object(a["createVNode"])("td",tt,[Object(a["createVNode"])("span",nt,Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(a["createVNode"])("i",{class:"fa fa".concat(t.is_active?"-check":"","-square-o"),"aria-hidden":"true"},null,2)]),Object(a["createVNode"])("td",rt,[Object(a["createVNode"])("span",ot,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1),Object(a["createVNode"])("div",at,[Object(a["createVNode"])("button",{class:{danger:t.is_active},onClick:function(n){return e.updateSportStatus(t.id,!t.is_active)}},Object(a["toDisplayString"])(e.$t("buttons.".concat(t.is_active?"DIS":"EN","ABLE"))),11,["onClick"]),t.has_workouts?(Object(a["openBlock"])(),Object(a["createBlock"])("span",ct,[it,Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):Object(a["createCommentVNode"])("",!0)])])])})),128))])]),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("button",{onClick:t[2]||(t[2]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])})),ut=n("1119"),lt=Object(a["defineComponent"])({name:"AdminSports",setup:function(){var e=Object(y["b"])(),t=e.t,n=Object(B["a"])(),r=Object(a["computed"])((function(){return Object(ut["d"])(n.getters[V["b"].GETTERS.SPORTS],t)})),o=Object(a["computed"])((function(){return n.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function c(e,t){n.dispatch(V["b"].ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return{errorMessages:o,translatedSports:r,updateSportStatus:c}}});n("3214");lt.render=st,lt.__scopeId="data-v-6d930723";var dt=lt,Ot=Object(a["withScopeId"])("data-v-4711ecf8");Object(a["pushScopeId"])("data-v-4711ecf8");var pt={id:"admin-users",class:"admin-card"},mt={class:"responsive-table"},bt=Object(a["createVNode"])("th",null,"#",-1),Tt={class:"left-text"},Et={class:"left-text"},St={class:"left-text"},ft={class:"cell-heading"},_t={class:"cell-heading"},jt={class:"cell-heading"},At={class:"cell-heading"},Nt={class:"center-text"},Rt={class:"cell-heading"},It={class:"center-text"},gt={class:"cell-heading"},Ut={class:"center-text"},vt={class:"cell-heading"};Object(a["popScopeId"])();var Dt=Ot((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("FilterSelects"),s=Object(a["resolveComponent"])("UserPicture"),u=Object(a["resolveComponent"])("router-link"),l=Object(a["resolveComponent"])("Pagination"),d=Object(a["resolveComponent"])("ErrorMessage"),O=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",pt,[Object(a["createVNode"])(O,null,{title:Ot((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.capitalize(e.$t("admin.USER",0))),1)]})),content:Ot((function(){return[Object(a["createVNode"])("button",{class:"top-button",onClick:t[1]||(t[1]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(a["createVNode"])(i,{sort:e.sortList,order_by:e.orderByList,query:e.query,message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:e.reloadUsers},null,8,["sort","order_by","query","onUpdateSelect"]),Object(a["createVNode"])("div",mt,[Object(a["createVNode"])("table",null,[Object(a["createVNode"])("thead",null,[Object(a["createVNode"])("tr",null,[bt,Object(a["createVNode"])("th",Tt,Object(a["toDisplayString"])(e.$t("user.USERNAME")),1),Object(a["createVNode"])("th",Et,Object(a["toDisplayString"])(e.$t("user.EMAIL")),1),Object(a["createVNode"])("th",St,Object(a["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.WORKOUT",0))),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("user.ADMIN")),1),Object(a["createVNode"])("th",null,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1)])]),Object(a["createVNode"])("tbody",null,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.users,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("tr",{key:t.username},[Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",ft,Object(a["toDisplayString"])(e.$t("user.PROFILE.PICTURE")),1),Object(a["createVNode"])(s,{user:t},null,8,["user"])]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",_t,Object(a["toDisplayString"])(e.$t("user.USERNAME")),1),Object(a["createVNode"])(u,{to:"/users/".concat(t.username)},{default:Ot((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(t.username),1)]})),_:2},1032,["to"])]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",jt,Object(a["toDisplayString"])(e.$t("user.EMAIL")),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.email),1)]),Object(a["createVNode"])("td",null,[Object(a["createVNode"])("span",At,Object(a["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(e.format(e.getDateWithTZ(t.created_at,e.authUser.timezone),"dd/MM/yyyy HH:mm")),1)]),Object(a["createVNode"])("td",Nt,[Object(a["createVNode"])("span",Rt,Object(a["toDisplayString"])(e.capitalize(e.$t("workouts.WORKOUT",0))),1),Object(a["createTextVNode"])(" "+Object(a["toDisplayString"])(t.nb_workouts),1)]),Object(a["createVNode"])("td",It,[Object(a["createVNode"])("span",gt,Object(a["toDisplayString"])(e.$t("user.ADMIN")),1),Object(a["createVNode"])("i",{class:"fa fa".concat(t.admin?"-check":"","-square-o"),"aria-hidden":"true"},null,2)]),Object(a["createVNode"])("td",Ut,[Object(a["createVNode"])("span",vt,Object(a["toDisplayString"])(e.$t("admin.ACTION")),1),Object(a["createVNode"])("button",{class:{danger:t.admin},disabled:t.username===e.authUser.username,onClick:function(n){return e.updateUser(t.username,!t.admin)}},Object(a["toDisplayString"])(e.$t("admin.USERS.TABLE.".concat(t.admin?"REMOVE":"ADD","_ADMIN_RIGHTS"))),11,["disabled","onClick"])])])})),128))])]),e.pagination.page?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:0,path:"/admin/users",pagination:e.pagination,query:e.query},null,8,["pagination","query"])):Object(a["createCommentVNode"])("",!0),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(d,{key:1,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("button",{onClick:t[2]||(t[2]=Object(a["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])})),ht=n("b166"),Pt=n("9176"),Ct=n("6d7d"),Mt=n("97e5"),kt=n("5e65"),Lt=Object(a["defineComponent"])({name:"AdminUsers",components:{FilterSelects:Pt["a"],Pagination:Ct["a"],UserPicture:w["a"]},setup:function(){var e=Object(B["a"])(),t=Object(ie["c"])(),n=Object(ie["d"])(),r=["admin","created_at","username","workouts_count"],o="created_at",c=Object(a["reactive"])(Object(Mt["a"])(t.query,r,o)),i=Object(a["computed"])((function(){return e.getters[V["e"].GETTERS.AUTH_USER_PROFILE]})),s=Object(a["computed"])((function(){return e.getters[V["d"].GETTERS.USERS]})),u=Object(a["computed"])((function(){return e.getters[V["d"].GETTERS.USERS_PAGINATION]})),l=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function d(t){e.dispatch(V["d"].ACTIONS.GET_USERS,t)}function O(t,n){e.dispatch(V["d"].ACTIONS.UPDATE_USER,{username:t,admin:n})}function p(e,t){c[e]=t,"per_page"===e&&(c.page=1),n.push({path:"/admin/users",query:c})}return Object(a["onBeforeMount"])((function(){return d(c)})),Object(a["watch"])((function(){return t.query}),(function(e){c=Object(Mt["a"])(e,r,o,{query:c}),d(c)})),Object(a["onUnmounted"])((function(){e.dispatch(V["d"].ACTIONS.EMPTY_USERS)})),{authUser:i,errorMessages:l,orderByList:r,pagination:u,query:c,sortList:Mt["c"],users:s,capitalize:a["capitalize"],format:ht["a"],getDateWithTZ:kt["c"],reloadUsers:p,updateUser:O}}});n("c083");Lt.render=Dt,Lt.__scopeId="data-v-4711ecf8";var zt=Lt,yt=Object(a["withScopeId"])("data-v-c81580c0");Object(a["pushScopeId"])("data-v-c81580c0");var wt={id:"user-profile"},Vt={class:"box"};Object(a["popScopeId"])();var Bt=yt((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("UserHeader"),s=Object(a["resolveComponent"])("UserProfileTabs"),u=Object(a["resolveComponent"])("router-view");return Object(a["openBlock"])(),Object(a["createBlock"])("div",wt,[Object(a["createVNode"])(i,{user:e.user},null,8,["user"]),Object(a["createVNode"])("div",Vt,[Object(a["createVNode"])(s,{tabs:e.tabs,selectedTab:e.tab,edition:!1},null,8,["tabs","selectedTab"]),Object(a["createVNode"])(u,{user:e.user},null,8,["user"])])])})),Gt=n("3c44"),xt={class:"profile-tabs custom-checkboxes-group"},Ft={class:"profile-tabs-checkboxes custom-checkboxes"};function Wt(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",xt,[Object(a["createVNode"])("div",Ft,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.tabs,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("div",{class:"profile-tab custom-checkbox",key:t},[Object(a["createVNode"])("label",null,[Object(a["createVNode"])("input",{type:"radio",id:t,name:t,checked:e.selectedTab===t,disabled:e.disabled,onInput:function(n){return e.$router.push(e.getPath(t))}},null,40,["id","name","checked","disabled","onInput"]),Object(a["createVNode"])("span",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.TABS.".concat(t))),1)])])})),128))])])}var Kt=Object(a["defineComponent"])({name:"UserProfileTabs",props:{tabs:{type:Object,required:!0},selectedTab:{type:String,required:!0},edition:{type:Boolean,required:!0},disabled:{type:Boolean,default:!1}},setup:function(e){function t(t){switch(t){case"PICTURE":return"/profile/edit/picture";case"PREFERENCES":return"/profile".concat(e.edition?"/edit":"","/preferences");default:case"PROFILE":return"/profile".concat(e.edition?"/edit":"")}}return{getPath:t}}});n("d42e");Kt.render=Wt;var $t=Kt,Ht=Object(a["defineComponent"])({name:"ProfileDisplay",components:{UserHeader:Gt["a"],UserProfileTabs:$t},props:{user:{type:Object,required:!0},tab:{type:String,required:!0}},setup:function(){return{tabs:["PROFILE","PREFERENCES"]}}});n("7ffe");Ht.render=Bt,Ht.__scopeId="data-v-c81580c0";var Yt=Ht,qt=n("71a7"),Xt=Object(a["withScopeId"])("data-v-39667dbe");Object(a["pushScopeId"])("data-v-39667dbe");var Zt={id:"user-preferences",class:"description-list"},Qt={class:"profile-buttons"};Object(a["popScopeId"])();var Jt=Xt((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",Zt,[Object(a["createVNode"])("dl",null,[Object(a["createVNode"])("dt",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+":",1),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.language),1),Object(a["createVNode"])("dt",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+":",1),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.timezone),1),Object(a["createVNode"])("dt",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),Object(a["createVNode"])("dd",null,Object(a["toDisplayString"])(e.$t("user.PROFILE.".concat(e.fistDayOfWeek))),1)]),Object(a["createVNode"])("div",Qt,[Object(a["createVNode"])("button",{onClick:t[1]||(t[1]=function(t){return e.$router.push("/profile/edit/preferences")})},Object(a["toDisplayString"])(e.$t("user.PROFILE.EDIT_PREFERENCES")),1),Object(a["createVNode"])("button",{onClick:t[2]||(t[2]=function(t){return e.$router.push("/")})},Object(a["toDisplayString"])(e.$t("common.HOME")),1)])])})),en=Object(a["defineComponent"])({name:"UserPreferences",props:{user:{type:Object,required:!0}},setup:function(e){var t=Object(a["computed"])((function(){return e.user.language?H[e.user.language]:H["en"]})),n=Object(a["computed"])((function(){return e.user.weekm?"MONDAY":"SUNDAY"})),r=Object(a["computed"])((function(){return e.user.timezone?e.user.timezone:"Europe/Paris"}));return{fistDayOfWeek:n,language:t,timezone:r}}});n("cbea");en.render=Jt,en.__scopeId="data-v-39667dbe";var tn=en,nn={id:"user-profile-edition",class:"center-card"};function rn(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("UserProfileTabs"),s=Object(a["resolveComponent"])("router-view"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",nn,[Object(a["createVNode"])(u,null,{title:Object(a["withCtx"])((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.".concat(e.tab,"_EDITION"))),1)]})),content:Object(a["withCtx"])((function(){return[Object(a["createVNode"])(i,{tabs:e.tabs,selectedTab:e.tab,edition:!0,disabled:e.loading},null,8,["tabs","selectedTab","disabled"]),Object(a["createVNode"])(s,{user:e.user},null,8,["user"])]})),_:1})])}var on=Object(a["defineComponent"])({name:"ProfileEdition",components:{UserProfileTabs:$t},props:{user:{type:Object,required:!0},tab:{type:String,required:!0}},setup:function(){var e=Object(B["a"])();return{loading:Object(a["computed"])((function(){return e.getters[V["e"].GETTERS.USER_LOADING]})),tabs:["PROFILE","PICTURE","PREFERENCES"]}}});on.render=rn;var an=on,cn={id:"user-infos-edition"},sn={class:"profile-form form-box"},un={class:"form-items",for:"email"},ln={class:"form-items",for:"registrationDate"},dn={class:"form-items",for:"password"},On={class:"form-items",for:"passwordConfirmation"},pn=Object(a["createVNode"])("hr",null,null,-1),mn={class:"form-items",for:"first_name"},bn={class:"form-items",for:"last_name"},Tn={class:"form-items",for:"birth_date"},En={class:"form-items",for:"location"},Sn={class:"form-items"},fn={class:"form-buttons"},_n={class:"confirm",type:"submit"};function jn(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("Modal"),s=Object(a["resolveComponent"])("ErrorMessage"),u=Object(a["resolveComponent"])("CustomTextArea");return Object(a["openBlock"])(),Object(a["createBlock"])("div",cn,[e.displayModal?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[1]||(t[1]=function(t){return e.deleteAccount(e.user.username)}),onCancelAction:t[2]||(t[2]=function(t){return e.updateDisplayModal(!1)})},null,8,["title","message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("div",sn,[e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("form",{onSubmit:t[11]||(t[11]=Object(a["withModifiers"])((function(){return e.updateProfile&&e.updateProfile.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("label",un,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.EMAIL"))+" ",1),Object(a["createVNode"])("input",{id:"email",value:e.user.email,disabled:""},null,8,["value"])]),Object(a["createVNode"])("label",ln,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),Object(a["createVNode"])("input",{id:"registrationDate",value:e.registrationDate,disabled:""},null,8,["value"])]),Object(a["createVNode"])("label",dn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PASSWORD"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"password",type:"password","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userForm.password=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.password]])]),Object(a["createVNode"])("label",On,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PASSWORD_CONFIRMATION"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"passwordConfirmation",type:"password","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.userForm.password_conf=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.password_conf]])]),pn,Object(a["createVNode"])("label",mn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"first_name","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.userForm.first_name=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.first_name]])]),Object(a["createVNode"])("label",bn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"last_name","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.userForm.last_name=t})},null,512),[[a["vModelText"],e.userForm.last_name]])]),Object(a["createVNode"])("label",Tn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[7]||(t[7]=function(t){return e.userForm.birth_date=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.birth_date]])]),Object(a["createVNode"])("label",En,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"location","onUpdate:modelValue":t[8]||(t[8]=function(t){return e.userForm.location=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.location]])]),Object(a["createVNode"])("label",Sn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.BIO"))+" ",1),Object(a["createVNode"])(u,{name:"bio",charLimit:200,input:e.userForm.bio,disabled:e.loading,onUpdateValue:e.updateBio},null,8,["input","disabled","onUpdateValue"])]),Object(a["createVNode"])("div",fn,[Object(a["createVNode"])("button",_n,Object(a["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[9]||(t[9]=Object(a["withModifiers"])((function(t){return e.$router.push("/profile")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.CANCEL")),1),Object(a["createVNode"])("button",{class:"danger",onClick:t[10]||(t[10]=Object(a["withModifiers"])((function(t){return e.updateDisplayModal(!0)}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],32)])])}var An=Object(a["defineComponent"])({name:"UserInfosEdition",props:{user:{type:Object,required:!0}},setup:function(e){var t=Object(B["a"])(),n=Object(a["reactive"])({password:"",password_conf:"",first_name:"",last_name:"",birth_date:"",location:"",bio:""}),r=Object(a["computed"])((function(){return e.user.created_at?Object(ht["a"])(new Date(e.user.created_at),"dd/MM/yyyy HH:mm"):""})),o=Object(a["computed"])((function(){return t.getters[V["e"].GETTERS.USER_LOADING]})),c=Object(a["computed"])((function(){return t.getters[V["a"].GETTERS.ERROR_MESSAGES]})),i=Object(a["ref"])(!1);function s(e){n.first_name=e.first_name?e.first_name:"",n.last_name=e.last_name?e.last_name:"",n.birth_date=e.birth_date?Object(ht["a"])(new Date(e.birth_date),"yyyy-MM-dd"):"",n.location=e.location?e.location:"",n.bio=e.bio?e.bio:""}function u(e){n.bio=e}function l(){t.dispatch(V["e"].ACTIONS.UPDATE_USER_PROFILE,n)}function d(e){i.value=e}function O(e){t.dispatch(V["e"].ACTIONS.DELETE_ACCOUNT,{username:e})}return Object(a["onMounted"])((function(){e.user&&s(e.user)})),{displayModal:i,errorMessages:c,loading:o,registrationDate:r,userForm:n,deleteAccount:O,updateBio:u,updateDisplayModal:d,updateProfile:l}}});n("0679");An.render=jn;var Nn=An,Rn=Object(a["withScopeId"])("data-v-500d4a7a");Object(a["pushScopeId"])("data-v-500d4a7a");var In={id:"user-picture-edition"},gn={class:"user-picture-form"},Un={class:"picture-buttons"};Object(a["popScopeId"])();var vn=Rn((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("ErrorMessage"),s=Object(a["resolveComponent"])("UserPicture");return Object(a["openBlock"])(),Object(a["createBlock"])("div",In,[Object(a["createVNode"])("div",gn,[e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])(s,{user:e.user},null,8,["user"]),Object(a["createVNode"])("form",{onSubmit:t[4]||(t[4]=Object(a["withModifiers"])((function(){return e.updateUserPicture&&e.updateUserPicture.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:t[1]||(t[1]=function(){return e.updatePictureFile&&e.updatePictureFile.apply(e,arguments)})},null,32),Object(a["createVNode"])("div",Un,[Object(a["createVNode"])("button",{type:"submit",disabled:!e.pictureFile},Object(a["toDisplayString"])(e.$t("user.PROFILE.PICTURE_UPDATE")),9,["disabled"]),e.user.picture?(Object(a["openBlock"])(),Object(a["createBlock"])("button",{key:0,class:"danger",onClick:t[2]||(t[2]=function(){return e.deleteUserPicture&&e.deleteUserPicture.apply(e,arguments)})},Object(a["toDisplayString"])(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("button",{class:"cancel",onClick:t[3]||(t[3]=function(t){return e.$router.push("/profile")})},Object(a["toDisplayString"])(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)]),Object(a["createVNode"])("span",null,Object(a["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(a["toDisplayString"])(e.fileSizeLimit),1)],32)])])})),Dn=Object(a["defineComponent"])({name:"UserPictureEdition",components:{UserPicture:w["a"]},props:{user:{type:Object,required:!0}},setup:function(){var e=Object(B["a"])(),t=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.ERROR_MESSAGES]})),n=Object(a["computed"])((function(){return e.getters[V["a"].GETTERS.APP_CONFIG]})),r=n.value.max_single_file_size?Object(je["b"])(n.value.max_single_file_size):"",o=Object(a["ref"])(null);function c(){e.dispatch(V["e"].ACTIONS.DELETE_PICTURE)}function i(e){e.target.files&&(o.value=e.target.files[0])}function s(){o.value&&e.dispatch(V["e"].ACTIONS.UPDATE_USER_PICTURE,{picture:o.value})}return{errorMessages:t,fileSizeLimit:r,pictureFile:o,deleteUserPicture:c,updateUserPicture:s,updatePictureFile:i}}});n("b9fd");Dn.render=vn,Dn.__scopeId="data-v-500d4a7a";var hn=Dn,Pn={id:"user-preferences-edition"},Cn={class:"profile-form form-box"},Mn={class:"form-items"},kn={class:"form-items",for:"timezone"},Ln={class:"form-items"},zn={class:"form-buttons"},yn={class:"confirm",type:"submit"};function wn(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("ErrorMessage");return Object(a["openBlock"])(),Object(a["createBlock"])("div",Pn,[Object(a["createVNode"])("div",Cn,[e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("form",{onSubmit:t[5]||(t[5]=Object(a["withModifiers"])((function(){return e.updateProfile&&e.updateProfile.apply(e,arguments)}),["prevent"]))},[Object(a["createVNode"])("label",Mn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("select",{id:"language","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.userForm.language=t}),disabled:e.loading},[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.availableLanguages,(function(e){return Object(a["openBlock"])(),Object(a["createBlock"])("option",{value:e.value,key:e.value},Object(a["toDisplayString"])(e.label),9,["value"])})),128))],8,["disabled"]),[[a["vModelSelect"],e.userForm.language]])]),Object(a["createVNode"])("label",kn,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("input",{id:"timezone","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.userForm.timezone=t}),disabled:e.loading},null,8,["disabled"]),[[a["vModelText"],e.userForm.timezone]])]),Object(a["createVNode"])("label",Ln,[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),Object(a["withDirectives"])(Object(a["createVNode"])("select",{id:"weekm","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userForm.weekm=t}),disabled:e.loading},[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.weekStart,(function(t){return Object(a["openBlock"])(),Object(a["createBlock"])("option",{value:t.value,key:t.value},Object(a["toDisplayString"])(e.$t("user.PROFILE.".concat(t.label))),9,["value"])})),128))],8,["disabled"]),[[a["vModelSelect"],e.userForm.weekm]])]),Object(a["createVNode"])("div",zn,[Object(a["createVNode"])("button",yn,Object(a["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[4]||(t[4]=Object(a["withModifiers"])((function(t){return e.$router.push("/profile/preferences")}),["prevent"]))},Object(a["toDisplayString"])(e.$t("buttons.CANCEL")),1)])],32)])])}var Vn=Object(a["defineComponent"])({name:"UserPreferencesEdition",props:{user:{type:Object,required:!0}},setup:function(e){var t=Object(B["a"])(),n=Object(a["reactive"])({language:"",timezone:"Europe/Paris",weekm:!1}),r=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],o=Object(a["computed"])((function(){return t.getters[V["e"].GETTERS.USER_LOADING]})),c=Object(a["computed"])((function(){return t.getters[V["a"].GETTERS.ERROR_MESSAGES]}));function i(e){n.language=e.language?e.language:"en",n.timezone=e.timezone?e.timezone:"Europe/Paris",n.weekm=!!e.weekm&&e.weekm}function s(){t.dispatch(V["e"].ACTIONS.UPDATE_USER_PREFERENCES,n)}return Object(a["onMounted"])((function(){e.user&&i(e.user)})),{availableLanguages:q,errorMessages:c,loading:o,userForm:n,weekStart:r,updateProfile:s}}});Vn.render=wn;var Bn=Vn,Gn=n("5502"),xn=n("ade3"),Fn=n("bc3a"),Wn=n.n(Fn),Kn=Wn.a.create({baseURL:Object(G["a"])()});Kn.interceptors.request.use((function(e){var t=Zr.getters[V["e"].GETTERS.AUTH_TOKEN];if(t){var n="Bearer ".concat(t);e.headers.Authorization!==n&&(e.headers.Authorization="Bearer ".concat(t))}return e}),(function(e){return Promise.reject(e)}));var $n,Hn,Yn,qn,Xn,Zn,Qn,Jn,er,tr,nr,rr,or,ar,cr=Kn,ir=($n={},Object(xn["a"])($n,V["a"].ACTIONS.GET_APPLICATION_CONFIG,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_LOADING,!0),cr.get("config").then((function(t){"success"===t.data.status?e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_LOADING,!1)}))})),Object(xn["a"])($n,V["a"].ACTIONS.GET_APPLICATION_STATS,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("stats/all").then((function(t){"success"===t.data.status?e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])($n,V["a"].ACTIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.patch("config",t).then((function(t){"success"===t.data.status?(e.commit(V["a"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),no.push("/admin/application")):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),$n),sr=(Hn={},Object(xn["a"])(Hn,V["a"].GETTERS.APP_CONFIG,(function(e){return e.application.config})),Object(xn["a"])(Hn,V["a"].GETTERS.APP_LOADING,(function(e){return e.appLoading})),Object(xn["a"])(Hn,V["a"].GETTERS.APP_STATS,(function(e){return e.application.statistics})),Object(xn["a"])(Hn,V["a"].GETTERS.ERROR_MESSAGES,(function(e){return e.errorMessages})),Object(xn["a"])(Hn,V["a"].GETTERS.LANGUAGE,(function(e){return e.language})),Object(xn["a"])(Hn,V["a"].GETTERS.LOCALE,(function(e){return e.locale})),Hn),ur=(Yn={},Object(xn["a"])(Yn,V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES,(function(e){e.errorMessages=null})),Object(xn["a"])(Yn,V["a"].MUTATIONS.SET_ERROR_MESSAGES,(function(e,t){e.errorMessages=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.application.config=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_APPLICATION_LOADING,(function(e,t){e.appLoading=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_APPLICATION_STATS,(function(e,t){e.application.statistics=t})),Object(xn["a"])(Yn,V["a"].MUTATIONS.UPDATE_LANG,(function(e,t){e.language=t,e.locale=$[t]})),Yn),lr={root:!0,language:"en",locale:x["a"],errorMessages:null,application:{},appLoading:!1},dr=(qn={},Object(xn["a"])(qn,V["b"].ACTIONS.GET_SPORTS,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("sports").then((function(t){"success"===t.data.status?e.commit(V["b"].MUTATIONS.SET_SPORTS,t.data.data.sports):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(qn,V["b"].ACTIONS.UPDATE_SPORTS,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.patch("sports/".concat(t.id),{is_active:t.isActive}).then((function(t){"success"===t.data.status?e.dispatch(V["b"].ACTIONS.GET_SPORTS):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),qn),Or=Object(xn["a"])({},V["b"].GETTERS.SPORTS,(function(e){return e.sports})),pr=Object(xn["a"])({},V["b"].MUTATIONS.SET_SPORTS,(function(e,t){e.sports=t})),mr={sports:[]},br={state:mr,actions:dr,getters:Or,mutations:pr},Tr=br,Er=Object(xn["a"])({},V["c"].ACTIONS.GET_USER_STATS,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("stats/".concat(t.username,"/").concat(t.filterType),{params:t.params}).then((function(t){"success"===t.data.status?e.commit(V["c"].MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Sr=Object(xn["a"])({},V["c"].GETTERS.USER_STATS,(function(e){return e.statistics})),fr=(Xn={},Object(xn["a"])(Xn,V["c"].MUTATIONS.UPDATE_USER_STATS,(function(e,t){e.statistics=t})),Object(xn["a"])(Xn,V["c"].MUTATIONS.EMPTY_USER_STATS,(function(e){e.statistics={}})),Xn),_r={statistics:{}},jr={state:_r,actions:Er,getters:Sr,mutations:fr},Ar=jr,Nr=Wn.a.create({baseURL:Object(G["a"])()}),Rr=Nr,Ir=K.global.locale,gr=function(e){localStorage.removeItem("authToken"),e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["c"].MUTATIONS.EMPTY_USER_STATS),e.commit(V["e"].MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(V["d"].MUTATIONS.UPDATE_USERS,[]),e.commit(V["f"].MUTATIONS.EMPTY_WORKOUTS),e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),no.push("/login")},Ur=(Zn={},Object(xn["a"])(Zn,V["e"].ACTIONS.CHECK_AUTH_USER,(function(e){window.localStorage.authToken&&!e.getters[V["e"].GETTERS.IS_AUTHENTICATED]&&(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE))})),Object(xn["a"])(Zn,V["e"].ACTIONS.GET_USER_PROFILE,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("auth/profile").then((function(t){"success"===t.data.status?(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&(e.commit(V["a"].MUTATIONS.UPDATE_LANG,t.data.data.language),Ir.value=t.data.data.language),e.dispatch(V["b"].ACTIONS.GET_SPORTS)):(Object(G["b"])(e,null),gr(e))})).catch((function(t){Object(G["b"])(e,t),gr(e)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.LOGIN_OR_REGISTER,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),Rr.post("/auth/".concat(t.actionType),t.formData).then((function(n){if("success"===n.data.status){var r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(V["e"].MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE).then((function(){return no.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")}))}else Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.LOGOUT,(function(e){gr(e)})),Object(xn["a"])(Zn,V["e"].ACTIONS.UPDATE_USER_PROFILE,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),cr.post("auth/profile/edit",t).then((function(t){"success"===t.data.status?(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),no.push("/profile")):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.UPDATE_USER_PREFERENCES,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),cr.post("auth/profile/edit/preferences",t).then((function(t){"success"===t.data.status?(e.commit(V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(V["a"].MUTATIONS.UPDATE_LANG,t.data.data.language),Ir.value=t.data.data.language,no.push("/profile/preferences")):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.UPDATE_USER_PICTURE,(function(e,t){if(e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");var n=new FormData;n.append("file",t.picture),cr.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){"success"===t.data.status?e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE).then((function(){return no.push("/profile")})):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.DELETE_ACCOUNT,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.delete("users/".concat(t.username)).then((function(t){204===t.status?e.dispatch(V["e"].ACTIONS.LOGOUT).then((function(){return no.push("/")})):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.DELETE_PICTURE,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!0),cr.delete("auth/picture").then((function(t){204===t.status?e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE).then((function(){return no.push("/profile")})):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["e"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.SEND_PASSWORD_RESET_REQUEST,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),Rr.post("auth/password/reset-request",t).then((function(t){"success"===t.data.status?no.push("/password-reset/sent"):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Object(xn["a"])(Zn,V["e"].ACTIONS.RESET_USER_PASSWORD,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),Rr.post("auth/password/update",t).then((function(t){"success"===t.data.status?no.push("/password-reset/password-updated"):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))})),Zn),vr=(Qn={},Object(xn["a"])(Qn,V["e"].GETTERS.AUTH_TOKEN,(function(e){return e.authToken})),Object(xn["a"])(Qn,V["e"].GETTERS.AUTH_USER_PROFILE,(function(e){return e.authUserProfile})),Object(xn["a"])(Qn,V["e"].GETTERS.IS_AUTHENTICATED,(function(e){return null!==e.authToken})),Object(xn["a"])(Qn,V["e"].GETTERS.IS_ADMIN,(function(e){return e.authUserProfile&&e.authUserProfile.admin})),Object(xn["a"])(Qn,V["e"].GETTERS.USER_LOADING,(function(e){return e.loading})),Qn),Dr=(Jn={},Object(xn["a"])(Jn,V["e"].MUTATIONS.CLEAR_AUTH_USER_TOKEN,(function(e){e.authToken=null,e.authUserProfile={}})),Object(xn["a"])(Jn,V["e"].MUTATIONS.UPDATE_AUTH_TOKEN,(function(e,t){e.authToken=t})),Object(xn["a"])(Jn,V["e"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,(function(e,t){e.authUserProfile=t})),Object(xn["a"])(Jn,V["e"].MUTATIONS.UPDATE_USER_LOADING,(function(e,t){e.loading=t})),Jn),hr={authToken:null,authUserProfile:{},loading:!1},Pr={state:hr,actions:Ur,getters:vr,mutations:Dr},Cr=Pr,Mr=(er={},Object(xn["a"])(er,V["d"].ACTIONS.EMPTY_USER,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USER,{})})),Object(xn["a"])(er,V["d"].ACTIONS.EMPTY_USERS,(function(e){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USERS,[]),e.commit(V["d"].MUTATIONS.UPDATE_USERS_PAGINATION,{})})),Object(xn["a"])(er,V["d"].ACTIONS.GET_USER,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!0),cr.get("users/".concat(t)).then((function(t){"success"===t.data.status?e.commit(V["d"].MUTATIONS.UPDATE_USER,t.data.data.users[0]):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(xn["a"])(er,V["d"].ACTIONS.GET_USERS,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!0),cr.get("users",{params:t}).then((function(t){"success"===t.data.status?(e.commit(V["d"].MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(V["d"].MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(xn["a"])(er,V["d"].ACTIONS.UPDATE_USER,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.patch("users/".concat(t.username),{admin:t.admin}).then((function(t){"success"===t.data.status?e.commit(V["d"].MUTATIONS.UPDATE_USER_IN_USERS,t.data.data.users[0]):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)})).finally((function(){return e.commit(V["d"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),er),kr=(tr={},Object(xn["a"])(tr,V["d"].GETTERS.USER,(function(e){return e.user})),Object(xn["a"])(tr,V["d"].GETTERS.USERS,(function(e){return e.users})),Object(xn["a"])(tr,V["d"].GETTERS.USERS_LOADING,(function(e){return e.loading})),Object(xn["a"])(tr,V["d"].GETTERS.USERS_PAGINATION,(function(e){return e.pagination})),tr),Lr=(nr={},Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USER,(function(e,t){e.user=t})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USER_IN_USERS,(function(e,t){e.users=e.users.map((function(e){return e.username===t.username?t:e}))})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USERS,(function(e,t){e.users=t})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USERS_LOADING,(function(e,t){e.loading=t})),Object(xn["a"])(nr,V["d"].MUTATIONS.UPDATE_USERS_PAGINATION,(function(e,t){e.pagination=t})),nr),zr={user:{},users:[],loading:!1,pagination:{}},yr={state:zr,actions:Mr,getters:kr,mutations:Lr},wr=yr,Vr=n("4870"),Br=function(e,t,n){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),cr.get("workouts",{params:t}).then((function(t){"success"===t.data.status?(e.commit(V["f"].MUTATIONS[n],t.data.data.workouts),n===Vr["c"]["SET_USER_WORKOUTS"]&&e.commit(V["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):Object(G["b"])(e,null)})).catch((function(t){return Object(G["b"])(e,t)}))},Gr=(rr={},Object(xn["a"])(rr,V["f"].ACTIONS.GET_CALENDAR_WORKOUTS,(function(e,t){e.commit(V["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Br(e,t,Vr["c"]["SET_CALENDAR_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_USER_WORKOUTS,(function(e,t){Br(e,t,Vr["c"]["SET_USER_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_TIMELINE_WORKOUTS,(function(e,t){Br(e,t,Vr["c"]["SET_TIMELINE_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_MORE_TIMELINE_WORKOUTS,(function(e,t){Br(e,t,Vr["c"]["ADD_TIMELINE_WORKOUTS"])})),Object(xn["a"])(rr,V["f"].ACTIONS.GET_WORKOUT_DATA,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0);var n=t.segmentId?"/segment/".concat(t.segmentId):"";cr.get("workouts/".concat(t.workoutId)).then((function(r){var o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(V["f"].MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(cr.get("workouts/".concat(t.workoutId,"/chart_data").concat(n)).then((function(t){"success"===t.data.status&&e.commit(V["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),cr.get("workouts/".concat(t.workoutId,"/gpx").concat(n)).then((function(t){"success"===t.data.status&&e.commit(V["f"].MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),Object(G["b"])(e,null)})).catch((function(t){e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.DELETE_WORKOUT,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),cr.delete("workouts/".concat(t.workoutId)).then((function(){e.commit(V["f"].MUTATIONS.EMPTY_WORKOUT),e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE),no.push("/")})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.EDIT_WORKOUT,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),cr.patch("workouts/".concat(t.workoutId),t.data).then((function(){e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE),e.dispatch(V["f"].ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((function(){no.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.ADD_WORKOUT,(function(e,t){if(e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");var n=new FormData;n.append("file",t.file),n.append("data",'{"sport_id": '.concat(t.sport_id,', "notes": "').concat(t.notes,'"}')),cr.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){if("created"===t.data.status){e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];no.push(1===t.data.data.workouts.length?"/workouts/".concat(n.id):"/")}})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(xn["a"])(rr,V["f"].ACTIONS.ADD_WORKOUT_WITHOUT_GPX,(function(e,t){e.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),cr.post("workouts/no_gpx",t).then((function(t){if("created"===t.data.status){e.dispatch(V["e"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];no.push("/workouts/".concat(n.id))}})).catch((function(t){Object(G["b"])(e,t)})).finally((function(){return e.commit(V["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),rr),xr=(or={},Object(xn["a"])(or,V["f"].GETTERS.CALENDAR_WORKOUTS,(function(e){return e.calendar_workouts})),Object(xn["a"])(or,V["f"].GETTERS.TIMELINE_WORKOUTS,(function(e){return e.timeline_workouts})),Object(xn["a"])(or,V["f"].GETTERS.USER_WORKOUTS,(function(e){return e.user_workouts})),Object(xn["a"])(or,V["f"].GETTERS.WORKOUT_DATA,(function(e){return e.workoutData})),Object(xn["a"])(or,V["f"].GETTERS.WORKOUTS_PAGINATION,(function(e){return e.pagination})),or),Fr=(ar={},Object(xn["a"])(ar,V["f"].MUTATIONS.ADD_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=e.timeline_workouts.concat(t)})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_CALENDAR_WORKOUTS,(function(e,t){e.calendar_workouts=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_USER_WORKOUTS,(function(e,t){e.user_workouts=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,(function(e,t){e.pagination=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT,(function(e,t){e.workoutData.workout=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,(function(e,t){e.workoutData.chartData=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT_GPX,(function(e,t){e.workoutData.gpx=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.SET_WORKOUT_LOADING,(function(e,t){e.workoutData.loading=t})),Object(xn["a"])(ar,V["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS,(function(e){e.calendar_workouts=[]})),Object(xn["a"])(ar,V["f"].MUTATIONS.EMPTY_WORKOUTS,(function(e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]})),Object(xn["a"])(ar,V["f"].MUTATIONS.EMPTY_WORKOUT,(function(e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}})),ar),Wr={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},Kr={state:Wr,actions:Gr,getters:xr,mutations:Fr},$r=Kr,Hr={sportsModule:Tr,statsModule:Ar,userModule:Cr,usersModule:wr,workoutsModule:$r},Yr={state:lr,actions:ir,getters:sr,mutations:ur,modules:Hr},qr=Yr,Xr=Object(Gn["a"])(qr),Zr=Xr,Qr=function(e){var t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},Jr=[{path:"/",name:"Dashboard",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"7277"))}},{path:"/login",name:"Login",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"d277"))},props:{action:"login"}},{path:"/register",name:"Register",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"d277"))},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:Yt,props:function(e){return{tab:Qr(e.path)}},children:[{path:"",name:"UserInfos",component:qt["a"]},{path:"preferences",name:"UserPreferences",component:tn}]},{path:"edit",name:"UserProfileEdition",component:an,props:function(e){return{tab:Qr(e.path)}},children:[{path:"",name:"UserInfosEdition",component:Nn},{path:"picture",name:"UserPictureEdition",component:hn},{path:"preferences",name:"UserPreferencesEdition",component:Bn}]}]},{path:"/statistics",name:"Statistics",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).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 Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"0385"))}},{path:"/workouts/:workoutId",name:"Workout",component:function(){return Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"304a"))},props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:function(){return Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"8ee9"))}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:function(){return Promise.all([n.e("main~workouts"),n.e("workouts")]).then(n.bind(null,"304a"))},props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:function(){return Promise.all([n.e("main~workouts"),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:xe},{path:"application",name:"ApplicationAdministration",component:Ne},{path:"application/edit",name:"ApplicationAdministrationEdition",component:Ne,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:dt},{path:"users",name:"UsersAdministration",component:zt}]},{path:"/:pathMatch(.*)*",name:"not-found",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"e19f"))}}],eo=Object(ie["a"])({history:Object(ie["b"])("/"),routes:Jr}),to=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register"];eo.beforeEach((function(e,t,n){Zr.dispatch(V["e"].ACTIONS.CHECK_AUTH_USER).then((function(){if(Zr.getters[V["e"].GETTERS.IS_AUTHENTICATED]&&to.includes(e.path))return n("/");if(Zr.getters[V["e"].GETTERS.IS_AUTHENTICATED]||to.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()}))}));var no=eo,ro=Object(a["withScopeId"])("data-v-f5e8066a");Object(a["pushScopeId"])("data-v-f5e8066a");var oo={class:"alert-message"};Object(a["popScopeId"])();var ao=ro((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",oo,[Object(a["createVNode"])("div",{innerHTML:e.$t(e.message)},null,8,["innerHTML"])])})),co=Object(a["defineComponent"])({name:"AlertMessage",props:{message:String}});n("f5dfd");co.render=ao,co.__scopeId="data-v-f5e8066a";var io=co,so=Object(a["withScopeId"])("data-v-ad3739fc");Object(a["pushScopeId"])("data-v-ad3739fc");var uo={class:"custom-textarea"},lo={class:"remaining-chars"};Object(a["popScopeId"])();var Oo=so((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",uo,[Object(a["withDirectives"])(Object(a["createVNode"])("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.text=t}),onInput:t[2]||(t[2]=function(){return e.updateText&&e.updateText.apply(e,arguments)})},null,40,["id","name","maxLenght","disabled"]),[[a["vModelText"],e.text]]),Object(a["createVNode"])("div",lo,Object(a["toDisplayString"])(e.$t("workouts.REMAINING_CHARS"))+": "+Object(a["toDisplayString"])(e.text.length)+"/"+Object(a["toDisplayString"])(e.charLimit),1)])})),po=(n("a9e3"),Object(a["defineComponent"])({name:"CustomTextArea",props:{charLimit:{type:Number,default:500},disabled:{type:Boolean,default:!1},input:{type:String,default:""},name:{type:String,required:!0}},emits:["updateValue"],setup:function(e,t){var n=t.emit,r=Object(a["ref"])("");function o(e){n("updateValue",e.target.value)}return Object(a["watch"])((function(){return e.input}),(function(e){r.value=e})),{text:r,updateText:o}}}));n("aa0a");po.render=Oo,po.__scopeId="data-v-ad3739fc";var mo=po,bo=Object(a["withScopeId"])("data-v-5ef2ddef");Object(a["pushScopeId"])("data-v-5ef2ddef");var To={class:"dropdown-wrapper"},Eo={key:0,class:"dropdown-list"};Object(a["popScopeId"])();var So=bo((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",To,[Object(a["createVNode"])("div",{class:"dropdown-selected",onClick:t[1]||(t[1]=function(){return e.toggleDropdown&&e.toggleDropdown.apply(e,arguments)})},[Object(a["renderSlot"])(e.$slots,"default",{},void 0,!0)]),e.isOpen?(Object(a["openBlock"])(),Object(a["createBlock"])("ul",Eo,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.dropdownOptions,(function(t,n){return Object(a["openBlock"])(),Object(a["createBlock"])("li",{class:["dropdown-item",{selected:t.value===e.selected}],key:n,onClick:function(n){return e.updateSelected(t)}},Object(a["toDisplayString"])(t.label),11,["onClick"])})),128))])):Object(a["createCommentVNode"])("",!0)])})),fo=Object(a["defineComponent"])({name:"Dropdown",props:{options:{type:Object,required:!0},selected:{type:String,required:!0}},emits:{selected:function(e){return e}},setup:function(e,t){var n=t.emit,r=Object(ie["c"])(),o=Object(a["ref"])(!1),c=e.options.map((function(e){return e}));function i(){o.value=!o.value}function s(e){n("selected",e),o.value=!1}return Object(a["watch"])((function(){return r.path}),(function(){return o.value=!1})),{dropdownOptions:c,isOpen:o,toggleDropdown:i,updateSelected:s}}});n("95ba");fo.render=So,fo.__scopeId="data-v-5ef2ddef";var _o=fo,jo=Object(a["withScopeId"])("data-v-5c177a93");Object(a["pushScopeId"])("data-v-5c177a93");var Ao={class:"error-message"},No={key:0},Ro={key:1};Object(a["popScopeId"])();var Io=jo((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",Ao,[Array.isArray(e.message)?(Object(a["openBlock"])(),Object(a["createBlock"])("ul",No,[(Object(a["openBlock"])(!0),Object(a["createBlock"])(a["Fragment"],null,Object(a["renderList"])(e.message,(function(t,n){return Object(a["openBlock"])(),Object(a["createBlock"])("li",{key:n},Object(a["toDisplayString"])(e.$t(t)),1)})),128))])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",Ro,Object(a["toDisplayString"])(e.$t(e.message)),1))])})),go=Object(a["defineComponent"])({name:"ErrorMessage",props:{message:[String,Array]}});n("4b55");go.render=Io,go.__scopeId="data-v-5c177a93";var Uo=go;function vo(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("CyclingSport"),s=Object(a["resolveComponent"])("CyclingTransport"),u=Object(a["resolveComponent"])("Hiking"),l=Object(a["resolveComponent"])("MountainBiking"),d=Object(a["resolveComponent"])("Running"),O=Object(a["resolveComponent"])("Walking");return Object(a["openBlock"])(),Object(a["createBlock"])("div",{class:"sport-img",style:{fill:e.sportColors[e.sportLabel]},title:e.title?e.title:e.$t("sports.".concat(e.sportLabel,".LABEL"))},["Cycling (Sport)"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(i,{key:0})):Object(a["createCommentVNode"])("",!0),"Cycling (Transport)"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:1})):Object(a["createCommentVNode"])("",!0),"Hiking"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(u,{key:2})):Object(a["createCommentVNode"])("",!0),"Mountain Biking"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(l,{key:3})):Object(a["createCommentVNode"])("",!0),"Running"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(d,{key:4})):Object(a["createCommentVNode"])("",!0),"Walking"===e.sportLabel?(Object(a["openBlock"])(),Object(a["createBlock"])(O,{key:5})):Object(a["createCommentVNode"])("",!0)],12,["title"])}var Do={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"},ho=Object(a["createVNode"])("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Po=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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);function Co(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Do,[ho,Po])}var Mo={name:"CyclingSport"};Mo.render=Co;var ko=Mo,Lo={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"},zo=Object(a["createVNode"])("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),yo=Object(a["createVNode"])("g",{id:"g147"},[Object(a["createVNode"])("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["createVNode"])("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);function wo(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Lo,[zo,yo])}var Vo={name:"CyclingTransport"};Vo.render=wo;var Bo=Vo,Go={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"},xo=Object(a["createVNode"])("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Fo=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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);function Wo(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Go,[xo,Fo])}var Ko={name:"Hiking"};Ko.render=Wo;var $o=Ko,Ho={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"},Yo=Object(a["createVNode"])("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),qo=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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["createVNode"])("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);function Xo(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Ho,[Yo,qo])}var Zo={name:"MountainBiking"};Zo.render=Xo;var Qo=Zo,Jo={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"},ea=Object(a["createVNode"])("desc",{id:"runningDescription"},"silhouette of a running person",-1),ta=Object(a["createVNode"])("g",null,[Object(a["createVNode"])("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["createVNode"])("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);function na(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",Jo,[ea,ta])}var ra={name:"Running"};ra.render=na;var oa=ra,aa={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"},ca=Object(a["createVNode"])("desc",{id:"walkingDescription"},"silhouette of a walking person",-1),ia=Object(a["createVNode"])("defs",{id:"defs797"},null,-1),sa=Object(a["createVNode"])("g",{id:"g792"},[Object(a["createVNode"])("path",{d:"m 272.74,80.771 c 22.318,0 40.401,-18.08 40.401,-40.389 C 313.141,18.084 295.058,0 272.74,0 c -22.281,0 -40.378,18.084 -40.378,40.383 0,22.308 18.096,40.388 40.378,40.388 z",id:"path788"}),Object(a["createVNode"])("path",{d:"m 328.5854,174.48445 -40.64148,10.93729 4.76008,-51.90474 0.123,-0.944 c 1.384,-10.514 -1.475,-21.146 -7.94,-29.556 -6.461,-8.409 -16.007,-13.903 -26.52,-15.287 -10.926,-1.429 -22.619,3.12 -31.206,8.646 -1.441,0.928 -84.97,54.921 -84.97,54.921 -5.175,3.358 -8.542,8.877 -9.165,15.016 -0.634,6.13 1.574,12.222 5.976,16.541 l 58.982,58 -6.417,48.954 -25.88143,79.08977 -54.08338,43.67932 c -14.762199,11.1022 -24.410111,22.37008 -15.912276,36.07186 8.515526,13.68031 27.439076,15.75973 42.273746,4.63076 l 48.9456,-38.84296 c 12.09075,-7.84858 23.84126,-20.18502 28.3003,-35.27702 L 235.052,315.187 l 26.365,36.639 6.684,119.628 c 0.73,12.991 11.501,23.036 24.349,23.036 0.441,0 0.92,-0.016 1.379,-0.039 13.453,-0.748 23.745,-12.262 23,-25.713 l -7.083,-126.736 c -0.271,-4.643 -1.846,-9.116 -4.56,-12.887 l -32.24,-44.811 7.981,-57.1 c -15.00943,6.0905 -25.84439,5.48716 0,0 l 59.50354,-17.8263 c 10.75379,-3.22166 16.4326,-12.34116 13.52152,-25.36894 -2.44853,-10.95778 -14.74571,-13.15695 -25.36666,-9.52431 z M 204.606,190.357 185.58,171.64 209.056,156.434 Z",id:"path790"})],-1);function ua(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("svg",aa,[ca,ia,sa])}var la={name:"Walking"};la.render=ua;var da=la,Oa=Object(a["defineComponent"])({name:"SportImage",components:{CyclingSport:ko,CyclingTransport:Bo,Hiking:$o,MountainBiking:Qo,Running:oa,Walking:da},props:{sportLabel:{type:String,required:!0},title:{type:String,required:!1}},setup:function(){return{sportColors:Object(a["inject"])("sportColors")}}});Oa.render=vo;var pa=Oa,ma=Object(a["withScopeId"])("data-v-8bf75da8");Object(a["pushScopeId"])("data-v-8bf75da8");var ba={class:"loader"};Object(a["popScopeId"])();var Ta=ma((function(e,t,n,r,o,c){return Object(a["openBlock"])(),Object(a["createBlock"])("div",ba)})),Ea=Object(a["defineComponent"])({name:"Loader"});n("b373");Ea.render=Ta,Ea.__scopeId="data-v-8bf75da8";var Sa=Ea,fa=Object(a["withScopeId"])("data-v-21b6cb61");Object(a["pushScopeId"])("data-v-21b6cb61");var _a={id:"modal"},ja={class:"custom-modal"},Aa={key:0,class:"modal-message"},Na={key:1,class:"modal-message"},Ra={class:"modal-buttons"};Object(a["popScopeId"])();var Ia=fa((function(e,t,n,r,o,c){var i=Object(a["resolveComponent"])("i18n-t"),s=Object(a["resolveComponent"])("ErrorMessage"),u=Object(a["resolveComponent"])("Card");return Object(a["openBlock"])(),Object(a["createBlock"])("div",_a,[Object(a["createVNode"])("div",ja,[Object(a["createVNode"])(u,null,{title:fa((function(){return[Object(a["createTextVNode"])(Object(a["toDisplayString"])(e.title),1)]})),content:fa((function(){return[e.strongMessage?(Object(a["openBlock"])(),Object(a["createBlock"])("div",Aa,[Object(a["createVNode"])(i,{keypath:e.message},{default:fa((function(){return[Object(a["createVNode"])("span",null,Object(a["toDisplayString"])(e.strongMessage),1)]})),_:1},8,["keypath"])])):(Object(a["openBlock"])(),Object(a["createBlock"])("div",Na,Object(a["toDisplayString"])(e.message),1)),e.errorMessages?(Object(a["openBlock"])(),Object(a["createBlock"])(s,{key:2,message:e.errorMessages},null,8,["message"])):Object(a["createCommentVNode"])("",!0),Object(a["createVNode"])("div",Ra,[Object(a["createVNode"])("button",{class:"confirm",onClick:t[1]||(t[1]=function(t){return e.emit("confirmAction")})},Object(a["toDisplayString"])(e.$t("buttons.YES")),1),Object(a["createVNode"])("button",{class:"cancel",onClick:t[2]||(t[2]=function(t){return e.emit("cancelAction")})},Object(a["toDisplayString"])(e.$t("buttons.NO")),1)])]})),_:1})])])})),ga=Object(a["defineComponent"])({name:"Modal",props:{title:{type:String,required:!0},message:{type:String,required:!0},strongMessage:{type:String||null,default:null}},emits:["cancelAction","confirmAction"],setup:function(e,t){var n=t.emit,r=Object(B["a"])(),o=Object(a["computed"])((function(){return r.getters[V["a"].GETTERS.ERROR_MESSAGES]}));return Object(a["onUnmounted"])((function(){return r.commit(V["a"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),{errorMessages:o,emit:n}}});n("8728");ga.render=Ia,ga.__scopeId="data-v-21b6cb61";var Ua=ga,va=[io,Be,mo,_o,Uo,Sa,Ua,pa],Da={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)}};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"],o["a"]);var ha=Object(a["createApp"])(ce).provide("sportColors",ut["b"]).use(K).use(Zr).use(no).directive("click-outside",Da);va.forEach((function(e){ha.component(e.name,e)})),ha.mount("#app")},d257:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return a}));n("caad"),n("2532"),n("d81d"),n("4de4"),n("ac1f"),n("1276");var r=n("dad5"),o=function(){return"/api/"},a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"UNKNOWN",o=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["a"].MUTATIONS.SET_ERROR_MESSAGES,o.includes("\n")?o.split("\n").filter((function(e){return""!==e})).map((function(e){return"api.ERROR.".concat(e)})):"api.ERROR.".concat(o))}},d42e:function(e,t,n){"use strict";n("dc79")},da66:function(e,t,n){},dad5:function(e,t,n){"use strict";var r,o,a,c,i,s,u,l,d,O,p,m,b,T,E;n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return _})),n.d(t,"c",(function(){return j})),n.d(t,"e",(function(){return A})),n.d(t,"d",(function(){return N})),n.d(t,"f",(function(){return R})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(r||(r={})),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"}(o||(o={})),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"}(a||(a={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(c||(c={})),function(e){e["SPORTS"]="SPORTS"}(i||(i={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(s||(s={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(u||(u={})),function(e){e["USER_STATS"]="USER_STATS"}(l||(l={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(d||(d={})),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["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES"}(O||(O={})),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"}(p||(p={})),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"}(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"}(b||(b={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(T||(T={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION"}(E||(E={}));var S=n("4870"),f={ACTIONS:r,GETTERS:o,MUTATIONS:a},_={ACTIONS:c,GETTERS:i,MUTATIONS:s},j={ACTIONS:u,GETTERS:l,MUTATIONS:d},A={ACTIONS:O,GETTERS:p,MUTATIONS:m},N={ACTIONS:b,GETTERS:T,MUTATIONS:E},R={ACTIONS:S["a"],GETTERS:S["b"],MUTATIONS:S["c"]}},dc79:function(e,t,n){},e7b6:function(e,t,n){var r={"./en/en.ts":"c142","./fr/fr.ts":"663e"};function o(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]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id="e7b6"},edb9:function(e,t,n){},f037:function(e,t,n){"use strict";n("aa8e")},f5dfd:function(e,t,n){"use strict";n("9838")},fb34:function(e,t,n){},fb41:function(e,t,n){}}); +//# sourceMappingURL=app.fba56819.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.fba56819.js.map b/fittrackee/dist/static/js/app.fba56819.js.map new file mode 100644 index 00000000..facfe041 --- /dev/null +++ b/fittrackee/dist/static/js/app.fba56819.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Common/StatCard.vue","webpack:///./src/components/Common/StatCard.vue?50f0","webpack:///./src/components/Common/StatCard.vue?8fe7","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?67ed","webpack:///./src/utils/sports.ts","webpack:///./src/components/User/UserPicture.vue?6d42","webpack:///./src/components/Common/Card.vue?8159","webpack:///./src/components/Common/Pagination.vue?efed","webpack:///./src/use/useStore.ts","webpack:///./src/components/Administration/AdminSports.vue?6443","webpack:///./src/components/Administration/AdminApplication.vue?7cc7","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?73f1","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?4ce6","webpack:///./src/store/modules/workouts/enums.ts","webpack:///./src/components/Administration/AdminMenu.vue?4bef","webpack:///./src/components/Common/ErrorMessage.vue?f921","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?a4e5","webpack:///./src/components/NavBar.vue?410d","webpack:///./src/utils/dates.ts","webpack:///./src/App.vue?4cf5","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/Pagination.vue","webpack:///./src/components/Common/Pagination.vue?93e2","webpack:///./src/components/Common/Pagination.vue?73f7","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?7c95","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?820e","webpack:///./src/components/Common/FilterSelects.vue?56eb","webpack:///./src/components/Footer.vue?d019","webpack:///./src/components/User/ProfileDisplay/index.vue?1702","webpack:///./src/components/Common/StatCard.vue?c013","webpack:///./src/components/Common/Modal.vue?4e3e","webpack:///./src/components/Common/FilterSelects.vue","webpack:///./src/components/Common/FilterSelects.vue?927e","webpack:///./src/components/Common/FilterSelects.vue?0254","webpack:///./src/components/Common/Dropdown.vue?2734","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?db14","webpack:///./src/utils/api.ts","webpack:///./src/components/Administration/AppStatsCards.vue?d919","webpack:///./src/components/Common/CustomTextArea.vue?6de7","webpack:///./src/components/Common/Loader.vue?9489","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?a666","webpack:///./src/components/Administration/AdminUsers.vue?8815","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?2f01","webpack:///./src/components/User/UserPicture.vue?22b2","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?2098","webpack:///./src/registerServiceWorker.ts","webpack:///./src/App.vue","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?87b7","webpack:///./src/components/Footer.vue?c832","webpack:///./src/components/NavBar.vue","webpack:///./src/i18n.ts","webpack:///./src/utils/locales.ts","webpack:///./src/components/NavBar.vue?a890","webpack:///./src/components/NavBar.vue?ab0f","webpack:///./src/components/NoConfig.vue","webpack:///./src/components/NoConfig.vue?37a4","webpack:///./src/components/NoConfig.vue?ad85","webpack:///./src/App.vue?3acc","webpack:///./src/App.vue?dfb6","webpack:///./src/components/Administration/AdminApplication.vue","webpack:///./src/components/Administration/AdminApplication.vue?8e5b","webpack:///./src/components/Administration/AdminApplication.vue?80c4","webpack:///./src/components/Administration/AdminMenu.vue","webpack:///./src/components/Administration/AppStatsCards.vue","webpack:///./src/components/Administration/AppStatsCards.vue?d6b2","webpack:///./src/components/Administration/AppStatsCards.vue?7576","webpack:///./src/components/Common/Card.vue","webpack:///./src/components/Common/Card.vue?f962","webpack:///./src/components/Common/Card.vue?a585","webpack:///./src/components/Administration/AdminMenu.vue?9783","webpack:///./src/components/Administration/AdminMenu.vue?4828","webpack:///./src/components/Administration/AdminSports.vue","webpack:///./src/components/Administration/AdminSports.vue?9572","webpack:///./src/components/Administration/AdminSports.vue?271c","webpack:///./src/components/Administration/AdminUsers.vue","webpack:///./src/components/Administration/AdminUsers.vue?e346","webpack:///./src/components/Administration/AdminUsers.vue?d3af","webpack:///./src/components/User/ProfileDisplay/index.vue","webpack:///./src/components/User/UserProfileTabs.vue","webpack:///./src/components/User/UserProfileTabs.vue?9e70","webpack:///./src/components/User/UserProfileTabs.vue?3fc9","webpack:///./src/components/User/ProfileDisplay/index.vue?f20a","webpack:///./src/components/User/ProfileDisplay/index.vue?b24c","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?2ffa","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?a232","webpack:///./src/components/User/ProfileEdition/index.vue","webpack:///./src/components/User/ProfileEdition/index.vue?4849","webpack:///./src/components/User/ProfileEdition/index.vue?f268","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?b205","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?92df","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?203b","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?311f","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?13dd","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?d2de","webpack:///./src/api/authApi.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/api/defaultApi.ts","webpack:///./src/store/modules/user/actions.ts","webpack:///./src/store/modules/user/getters.ts","webpack:///./src/store/modules/user/mutations.ts","webpack:///./src/store/modules/user/state.ts","webpack:///./src/store/modules/user/index.ts","webpack:///./src/store/modules/users/actions.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/router/index.ts","webpack:///./src/components/Common/AlertMessage.vue","webpack:///./src/components/Common/AlertMessage.vue?af1b","webpack:///./src/components/Common/AlertMessage.vue?2e10","webpack:///./src/components/Common/CustomTextArea.vue","webpack:///./src/components/Common/CustomTextArea.vue?8616","webpack:///./src/components/Common/CustomTextArea.vue?3b63","webpack:///./src/components/Common/Dropdown.vue","webpack:///./src/components/Common/Dropdown.vue?3644","webpack:///./src/components/Common/Dropdown.vue?9a46","webpack:///./src/components/Common/ErrorMessage.vue","webpack:///./src/components/Common/ErrorMessage.vue?ab8e","webpack:///./src/components/Common/ErrorMessage.vue?7b9e","webpack:///./src/components/Common/Images/SportImage/index.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue?7ed2","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue?dba6","webpack:///./src/components/Common/Images/SportImage/Hiking.vue","webpack:///./src/components/Common/Images/SportImage/Hiking.vue?3937","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue?9b70","webpack:///./src/components/Common/Images/SportImage/Running.vue","webpack:///./src/components/Common/Images/SportImage/Running.vue?2248","webpack:///./src/components/Common/Images/SportImage/Walking.vue","webpack:///./src/components/Common/Images/SportImage/Walking.vue?d660","webpack:///./src/components/Common/Images/SportImage/index.vue?2baa","webpack:///./src/components/Common/Images/SportImage/index.vue?5245","webpack:///./src/components/Common/Loader.vue","webpack:///./src/components/Common/Loader.vue?2b84","webpack:///./src/components/Common/Loader.vue?4fd1","webpack:///./src/components/Common/Modal.vue","webpack:///./src/components/Common/Modal.vue?1385","webpack:///./src/components/Common/Modal.vue?e362","webpack:///./src/custom-components.ts","webpack:///./src/directives.ts","webpack:///./src/main.ts","webpack:///./src/utils/index.ts","webpack:///./src/components/User/UserProfileTabs.vue?722a","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/user/enums.ts","webpack:///./src/store/modules/users/enums.ts","webpack:///./src/store/constants.ts","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack:///./src/components/NoConfig.vue?56f6","webpack:///./src/components/Common/AlertMessage.vue?e180"],"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","class","icon","text","props","String","required","Number","render","sportColors","Hiking","Running","Walking","sportIdColors","sports","colors","map","sport","id","label","sortSports","a","b","sportATranslatedLabel","translatedLabel","toLowerCase","sportBTranslatedLabel","translateSports","onlyActive","filter","is_active","sort","getSportLabel","workout","sport_id","useStore","user","username","nb_workouts","$t","total_distance","toFixed","nb_sports","components","UserPicture","__scopeId","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","Action","Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.","Admin","Administration","Application","Nombre maximum d'utilisateurs actifs ","Si égal à 0, pas limite d'inscription","Taille max. des archives zip (en Mo) ","Taille max. des fichiers (en Mo) ","Configuration de l'application","Nombre max. de fichiers dans une archive zip ","Revenir à l'admin","Etes-vous sûr de vouloir supprimer le compte de ","0"," ? Toutes les données seront définitivement.","Supprimer l'utilisateur","Activer/désactiver des sports.","Les inscriptions sont actuellement désactivées.","Les inscriptions sont actuellement activées.","Actif","des séances existent","Image","Label","Administration - Sports","Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).","utilisateur","utilisateurs","Ajouter les drois d'admin","Retirer les drois d'admin","status administrateur","date d'inscription","nom d'utilisateur","nombre de séances","Erreur. Veuillez réessayer ou contacter l'administrateur.","Email : une adresse email valide doit être fournie.","Erreur lors de la récupération de la configuration.","Erreur lors de la mise à jour de la configuration","Erreur, veuillez réessayer ou contacter l'administrateur.","Erreur, les inscriptions sont désactivées.","Extension de fichier non autorisée.","La taille du fichier est supérieure à la limite autorisée.","Identifiants invalides.","Données fournies incorrectes.","Jeton de connexion invalide, merci de vous reconnecter.","Jeton de connexion, merci de vous reconnecter.","Pas de fichier fourni.","Pas de fichier sélectionné.","Erreur Réseau.","Mot de passe : les mots de passe saisis sont différents.","Merci de fournir un jeton de connexion valide.","Mot de passe : 8 caractères minimum.","Ce sport n'existe pas.","Signature expirée. Merci de vous reconnecter.","Désolé, cet utilisateur existe déjà.","Inscription validée.","L'utilisateur n'existe pas","Nom d'utilisateur : 3 à 12 caractères requis.","Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.","Vous n'avez pas les permissions nécessaires.","précédent","suivant","Précédent","Annuler","Supprimer mon compte","Désactiver","Modifier","Activer","Filtrer","Se connecter","Non","S'inscrire","Valider","Oui","Confirmation","jour","jours","Accueil","ici","trier par ","tri","ascendant","descendant","par page","Total","Tableau de Bord","Ce mois","L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.","Page introuvable","Séance introuvable","Vélo (Sport)","Vélo (Transport)","Randonnée","VTT","Course","Marche","Statistiques","semaine","mois","année","Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.","Email","Saisir une adresse email","Saisir un mot de passe","Confirmer le mot de passe","Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe.","Langue","Se déconnecter","Mot de passe","Confirmation du mot de passe","Mot de passe oublié ?","Réinitialisation du mot de passe","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.","Votre mot de passe a été mis à jour. Cliquez "," pour vous connecter.","Revenir au profil","Bio","Date de naissance","Modifier le profil","Modifier les préférences","Premier jour de la semaine","Prénom","Nom","Lieu","Lundi","Image de profil","Mise à jour de l'image de profil","Mettre à jour l'image","Supprimer","Mise à jour des préférences","Mise à jour du profil","Date d'inscription","Dimanche","image","préférences","profil","Fuseau horaire","Désolé, les inscriptions sont désactivées.","Réinitialiser votre mot de passe","photo de l'utilisateur","Nom d'utilisateur","Ajouter une séance","analyse","dénivelé positif","vitesse moyenne","vitesse moy.","revenir à la séance","dénivelé négatif","afficher les filtres","distance","durée","Modifier la séance","altitude","fin","à partir de","fichier .gpx","masquer les filtres","km","Séances récentes","Charger les séances suivantes","altitude max","fichiers max. ","taille max. ","vitesse max","altitude min","Segment suivant","Séance suivante","données issues du fichier gpx, sans correction","Pas de fichier fourni","pas de répertoire","Pas de carte","Pas de segment suivant","Pas de séance suivante","Pas de notes","Pas de segment précédent","Pas de séance précédente","Pas de records.","Pas de séances.","notes","pauses","Segment précédent","Séance précédente","record","records","Vitesse moy.","Distance la + longue","Durée la + longue","Vitesse max.","nombre de caractères restants ","segment","segments","vitesse","début","titre","jusqu'au","durée totale","Ajoutez votre première séance !","humidité","température","vent","ensoleillé","nuit claire","nuageux","brouillard","partiellement nuageux","nuit partiellement nuageuse","pluie","neige fondue","neige","venteux","avec un fichier .gpx","sans fichier .gpx","séance","séances","date de la séance","Etes-vous sûr de vouloir supprimer cette séance ?","archive .zip","ou une archive .zip contenant des fichiers .gpx","admin","api","buttons","common","dashboard","statistics","workouts","aria-label","aria-hidden","pagination","has_prev","to","path","getQuery","page","disabled","rangePagination","pages","has_next","query","setup","cursor","newQuery","assign","displayModal","title","strongMessage","deleteUserAccount","updateDisplayModal","registrationDate","first_name","last_name","birthDate","location","bio","fromAdmin","authUser","$router","go","Boolean","default","store","getters","GETTERS","AUTH_USER_PROFILE","created_at","format","birth_date","dispatch","ACTIONS","DELETE_ACCOUNT","order_by","onSelectUpdate","order","toUpperCase","per_page","nb","emits","emit","sortList","defaultPage","defaultPerPage","getNumberQueryValue","queryValue","defaultValue","getStringQueryValue","availableValues","includes","locationQuery","orderByList","defaultOrderBy","options","queryOptions","defaultSort","workoutsPayloadKeys","getRange","stop","Array","from","_","currentPage","concat","Add/remove admin rights, delete user account.","Max. number of active users","If 0, no limitation on registration.","Max. files of zip archive","Max. size of uploaded files (in Mb)","Application configuration","Max. size of zip archive (in Mb)","Back to admin","Are you sure you want to delete "," account? All data will be deleted, this cannot be undone.","Delete user","Enable/disable sports.","Registration is currently disabled.","Registration is currently enabled.","Active","workouts exist","Sports administration","Update application configuration (maximum number of registered users, maximum files size).","users","Add admin rights","Remove admin rights","admin status","registration date","workout count","Error. Please try again or contact the administrator.","Email: valid email must be provided.","Error on getting configuration.","Error when updating configuration","Error, please try again or contact the administrator.","Error, registration is disabled.","File extension not allowed.","File size is greater than the allowed size.","Invalid credentials.","Provided data are invalid.","Invalid token, please log in again.","Network Error.","No file provided.","No selected file.","Password: password and password confirmation don't match.","Provide a valid auth token.","Password: 8 characters required.","Sorry, that user already exists.","Sport does not exist.","Signature expired. Please log in again.","Successfully registered.","User does not exist.","Username: 3 to 12 characters required.","You can not delete your account, no other user has admin rights.","You do not have permissions.","previous","next","Back","Cancel","Delete my account","Disable","Edit","Enable","Filter","Log in","No","Register","Submit","Yes","days","Home","here","order by","ascending","descending","Dashboard","This month","The application seems encounter some issues.
Please try later or contact the administrator.","Page not found","Workout not found","Cycling (Sport)","Cycling (Transport)","Mountain Biking","Statistics","week","month","year","Are you sure you want to delete your account? All data will be deleted, this cannot be undone","Enter an email address","Enter a password","Confirm the password","Invalid token, please request a new password reset.","Language","Login","Logout","Password","Confirm Password","Password confirmation","Forgot password?","Password reset","Check your email. If your address is in our database, you'll received an email with a link to reset your password.","Your password have been updated. Click "," to log in.","Back to profile","Birth date","Edit profile","Edit preferences","First name","First day of week","Last name","Location","Monday","Picture","Picture edition","Update picture","Remove picture","Preferences edition","Profile edition","Registration date","Sunday","picture","preferences","profile","Timezone","Sorry, registration is disabled.","Reset your password","user picture","Username","Add a workout","analysis","ascent","ave. speed","average speed","back to workout","descent","display filters","Edit the workout","elevation",".gpx file","hide filters","Latest workouts","Load more workouts","max. altitude","max files","max size","max. speed","min. altitude","No next segment","Next workout","data from gpx, without any cleaning","No file provided","no folder inside","No map","No next workout","No notes","No previous segment","No previous workout","No records.","No workouts.","Previous segment","Previous workout","Ave. speed","Farest distance","Longest duration","Max. speed","remaining characters","speed","total duration","Upload one!","humidity","temperature","wind","clear day","clear night","cloudy","fog","partly cloudy day","partly cloudy night","rain","sleet","snow","with .gpx file","without .gpx file","workout date","Are you sure you want to delete this workout?",".zip file","or .zip file containing .gpx files","suffixes","getReadableFileSize","fileSize","asText","Math","floor","log","size","suffix","pow","getFileSizeInMB","authUserPictureUrl","alt","ready","registered","cached","updatefound","updated","offline","updateHideScrollBar","appLoading","hideScrollBar","appConfig","displayScrollButton","scrollToTop","version","isMenuOpen","openMenu","closeMenu","isAuthenticated","capitalize","logout","availableLanguages","language","selected","updateLanguage","loadLocaleMessages","locales","messages","keys","forEach","matched","match","locale","legacy","fallbackLocale","globalInjection","localeFromLanguage","en","fr","languageLabels","availableLocales","global","IS_AUTHENTICATED","now","LANGUAGE","option","toString","commit","MUTATIONS","UPDATE_LANG","LOGOUT","xmlns","viewBox","Footer","NavBar","NoConfig","APP_CONFIG","APP_LOADING","isScrolledToBottom","element","getBoundingClientRect","top","innerHeight","bottom","scroll","onscroll","querySelector","scrollTo","behavior","GET_APPLICATION_CONFIG","for","content","onSubmit","min","appData","max_users","edition","step","max_single_file_size","max_zip_file_size","gpx_limit_import","errorMessages","onCancel","router","ERROR_MESSAGES","updateForm","EMPTY_ERROR_MESSAGES","formData","UPDATE_APPLICATION_CONFIG","app-statistics","appStatistics","usersCount","sportsCount","workoutCount","uploadDirSize","StatCard","uploads_dir_size","AppStatsCards","Card","translatedSports","sport-label","updateSportStatus","has_workouts","SPORTS","isActive","UPDATE_SPORTS","reloadUsers","email","updateUser","FilterSelects","Pagination","route","USERS","USERS_PAGINATION","loadUsers","queryParams","GET_USERS","UPDATE_USER","queryParam","EMPTY_USERS","tabs","selectedTab","tab","checked","getPath","UserHeader","UserProfileTabs","timezone","fistDayOfWeek","weekm","loading","USER_LOADING","deleteAccount","updateProfile","userForm","password","password_conf","charLimit","input","updateBio","updateUserForm","UPDATE_USER_PROFILE","updateUserPicture","accept","updatePictureFile","pictureFile","deleteUserPicture","fileSizeLimit","DELETE_PICTURE","files","UPDATE_USER_PICTURE","lang","weekStart","UPDATE_USER_PREFERENCES","authApi","baseURL","interceptors","use","config","authToken","AUTH_TOKEN","auth","headers","Authorization","actions","context","UPDATE_APPLICATION_LOADING","res","status","catch","finally","GET_APPLICATION_STATS","UPDATE_APPLICATION_STATS","payload","patch","state","application","APP_STATS","LOCALE","mutations","SET_ERROR_MESSAGES","root","GET_SPORTS","SET_SPORTS","sportsState","GET_USER_STATS","filterType","params","UPDATE_USER_STATS","USER_STATS","EMPTY_USER_STATS","statisticsState","localStorage","removeItem","CLEAR_AUTH_USER_TOKEN","UPDATE_USERS","EMPTY_WORKOUTS","EMPTY_WORKOUT","CHECK_AUTH_USER","UPDATE_AUTH_TOKEN","GET_USER_PROFILE","UPDATE_AUTH_USER_PROFILE","LOGIN_OR_REGISTER","post","actionType","token","auth_token","setItem","redirectUrl","UPDATE_USER_LOADING","form","FormData","append","delete","SEND_PASSWORD_RESET_REQUEST","RESET_USER_PASSWORD","authUserProfile","IS_ADMIN","userState","EMPTY_USER","UPDATE_USERS_PAGINATION","GET_USER","UPDATE_USERS_LOADING","UPDATE_USER_IN_USERS","USER","USERS_LOADING","updatedUser","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","SET_WORKOUT","with_gpx","SET_WORKOUT_CHART_DATA","chart_data","SET_WORKOUT_GPX","gpx","DELETE_WORKOUT","EDIT_WORKOUT","ADD_WORKOUT","file","ADD_WORKOUT_WITHOUT_GPX","CALENDAR_WORKOUTS","calendar_workouts","TIMELINE_WORKOUTS","timeline_workouts","USER_WORKOUTS","user_workouts","WORKOUT_DATA","workoutData","WORKOUTS_PAGINATION","ADD_TIMELINE_WORKOUTS","SET_CALENDAR_WORKOUTS","SET_TIMELINE_WORKOUTS","SET_USER_WORKOUTS","chartData","workoutsState","sportsModule","statsModule","userModule","usersModule","workoutsModule","getTabFromPath","regex","replace","routes","component","action","children","UserInfos","UserPreferences","ProfileEdition","UserInfosEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","AdminUsers","history","pathsWithoutAuthentication","beforeEach","fullPath","maxLenght","updateText","toggleDropdown","isOpen","dropdownOptions","index","updateSelected","isArray","subMessage","style","sportLabel","xmlns:xlink","x","y","xml:space","xmlns:svg","CyclingSport","CyclingTransport","MountainBiking","keypath","customComponents","AlertMessage","CustomTextArea","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","split","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UserActions","UserGetters","UserMutations","UsersActions","UsersGetters","UsersMutations","ROOT_STORE","SPORTS_STORE","STATS_STORE","USER_STORE","USERS_STORE","WORKOUTS_STORE","webpackContext","req","webpackContextResolve"],"mappings":"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oC,uEACmBC,8D,8EACOC,qD,iDAC7BC,6B,qDACIC,kC,kDACHC,qB,8FAC4CC,+D,+DAC/BC,qD,oEACKC,2C,yDACXC,6B,2EACkBC,oD,oEACPC,2C,4DACRC,2B,wDACJC,iC,0EACkBC,oD,oGAC0BC,0G,gEACpCC,oD,uDAGnBC,gB,uCACJC,gB,0CC9BFC,gB,yCACEC,c,oDACWC,2B,0CACVC,iB,uCACHC,e,yCACEC,c,yCACAC,c,wCACDC,mB,qCACHC,U,2CACMC,iB,yCACFC,c,sCACHC,W,kDCXSC,mB,kDACTC,YAAAC,c,uCACCC,c,uCACAC,U,2DAGKC,kB,+CAGAC,U,sCACFC,gB,uCACCC,kB,kDAGCC,iB,2CAGHC,a,+CCjBGC,sB,6CACCC,e,6CCDHpD,gE,4CACEqD,2H,kDAEHC,uB,0CACGC,2B,8DCHFC,oB,+DAGAC,wB,gDAGAC,iB,2DAGAC,W,iDAGAC,c,iDAGAC,e,gDChBGC,mB,oDAEJC,c,wCACCC,W,uCACDC,c,2CCJDhG,Y,2DACmBiG,0G,wCACnBC,Y,8CACMC,+B,iDACGC,6B,8DACaC,gC,gDACdC,sF,2CACLC,a,wCACHrC,mB,yCACCsC,qB,2CACEC,mB,mDACQC,mC,wDACKA,mC,qDACHC,4B,iDACJC,uC,2DACUC,4J,wEACRC,iDAACnG,EAADA,MAACoG,2B,2DAEAC,wB,sCACZC,U,6CACOC,wB,uCACNC,yB,mDACYC,+B,oDACCC,iC,6CACPC,a,2CACFf,a,4CACCgB,U,2CACDC,W,yCACFC,Y,0CACCC,sB,kDACQC,uC,iDACDC,4B,iDACAC,gB,sDACKC,kC,kDACJC,4B,oDACEC,yB,yCACXC,e,gDAEGC,Y,8CACIC,kB,0CACJC,c,2CAEDC,sB,2CAEFjE,iB,oDACSkE,iD,iDACHC,uC,+CACFC,6B,2CACJC,yB,iDChDGC,yB,2CACHC,c,yCACFC,uB,gDACOC,sB,4CACJC,mB,kDACMC,0B,uCACX5J,W,0CACG6J,uB,kDACQC,2B,2CACPC,e,2CACAC,Y,+CACIC,yB,4CACHC,e,sCACNC,U,uCACCC,kB,2CACIC,mB,+CACIC,0B,q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,oGAC0BC,uE,gEACpCC,oC,uDAGnBC,e,uCACJC,a,0CC9BFC,W,yCACEC,a,oDACWC,wB,0CACVC,c,uCACHC,W,yCACEC,a,yCACAC,a,wCACDC,a,qCACHC,S,2CACMC,e,yCACFC,a,sCACHC,W,kDCXShS,mB,kDACT7F,WAAA8X,a,uCACCC,W,uCACAC,W,2DAGKC,gB,+CAGArZ,W,sCACFsZ,gB,uCACCC,kB,kDAGC7R,iB,wCAGJC,a,+CCjBI6R,gB,6CACCC,kB,6CCDH9C,4D,4CACE+C,uG,kDAEHC,qB,0CACGC,0B,8DCHFC,uB,+DAGAC,2B,gDAGAnb,c,2DAGAob,uB,iDAGAnb,e,iDAGAC,gB,gDChBGmb,iB,oDAEJC,W,wCACCC,Y,uCACDC,a,2CCJDzX,Y,2DACmB0X,oG,wCACnBxR,Y,8CACMyR,6B,iDACGC,uB,8DACaC,2B,gDACdC,0D,2CACLC,e,wCACHC,Y,yCACCC,a,2CACEC,e,mDACQC,uB,wDACKC,4B,qDACHC,uB,iDACJC,qB,2DACUC,yH,wEACRC,2CAAC7X,EAADA,MAAC8X,iB,2DAEAC,sB,sCACZzR,U,6CACO0R,iB,uCACNC,mB,mDACYC,uB,6CACNC,iB,oDACOC,wB,2CACThB,e,4CACCiB,gB,2CACDC,e,yCACFC,a,0CACCC,c,kDACQC,sB,iDACDC,qB,iDACAC,qB,sDACKC,0B,kDACJC,sB,oDACEC,wB,yCACXC,a,gDAEGC,c,8CACIC,kB,0CACJC,e,2CAEDC,gB,2CAEFzD,e,oDACS0D,uC,iDACHC,0B,+CACFC,mB,2CACJC,gB,iDChDGC,oB,2CACHC,e,yCACFC,a,4CACGC,iB,gDACIC,oB,kDACEC,sB,uCACXrb,W,0CACGsb,c,kDACQC,sB,2CACPxR,e,2CACAzK,e,+CACIkc,uB,4CACHC,gB,sCACNrb,U,uCACC8S,W,2CACIwI,gB,+CACIC,mB,qCACVpR,S,kDACaqR,sB,oDACEC,yB,+CACLC,oB,4CACHC,gB,2CACDC,e,4CACCC,iB,+CACGC,oB,+CACAC,sB,+CACAC,mB,mDACIC,0C,mDACAC,uB,4CACPC,uB,yCACHC,a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","file":"static/js/app.fba56819.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\",\"main~workouts\":\"main~workouts\",\"main\":\"main\",\"workouts\":\"workouts\",\"profile\":\"profile\",\"reset\":\"reset\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"ae6123c4\",\"main~workouts\":\"896585f2\",\"main\":\"308f7e1a\",\"workouts\":\"13789396\",\"profile\":\"998bc0bd\",\"reset\":\"624f741d\",\"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,\"main~workouts\":1,\"main\":1,\"workouts\":1,\"profile\":1,\"reset\":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\",\"main~workouts\":\"main~workouts\",\"main\":\"main\",\"workouts\":\"workouts\",\"profile\":\"profile\",\"reset\":\"reset\"}[chunkId]||chunkId) + \".\" + {\"admin\":\"27bf6ef5\",\"main~workouts\":\"dec22e70\",\"main\":\"18c88976\",\"workouts\":\"45fb3086\",\"profile\":\"8c004342\",\"reset\":\"0a21856c\",\"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","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'StatCard',\n props: {\n icon: {\n type: String,\n required: true,\n },\n value: {\n type: [String, Number],\n required: true,\n },\n text: {\n type: String,\n required: true,\n },\n },\n })\n","import { render } from \"./StatCard.vue?vue&type=template&id=32e77e48\"\nimport script from \"./StatCard.vue?vue&type=script&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=32e77e48&lang=scss\"\nscript.render = render\n\nexport default script","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserInfosEdition.vue?vue&type=style&index=0&id=a2dfdb58&lang=scss\"","import { ISport, ITranslatedSport } 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 Running: '#835b83',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map((sport) => (colors[sport.id] = sportColors[sport.label]))\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 onlyActive = false\n): ITranslatedSport[] =>\n sports\n .filter((sport) => (onlyActive ? sport.is_active : true))\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserPicture.vue?vue&type=style&index=0&id=4aed39f4&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Card.vue?vue&type=style&index=0&id=c5956538&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Pagination.vue?vue&type=style&index=0&id=56dc89d4&lang=scss&scoped=true\"","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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminSports.vue?vue&type=style&index=0&id=6d930723&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminApplication.vue?vue&type=style&index=0&id=26175b66&lang=scss&scoped=true\"","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { IUserProfile } from '@/types/user'\n\n export default defineComponent({\n name: 'ProfileDisplay',\n components: {\n UserPicture,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n })\n","import { render } from \"./UserHeader.vue?vue&type=template&id=a6fa997c&scoped=true\"\nimport script from \"./UserHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=a6fa997c&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-a6fa997c\"\n\nexport default script","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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminMenu.vue?vue&type=style&index=0&id=4f30aa64&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ErrorMessage.vue?vue&type=style&index=0&id=5c177a93&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserHeader.vue?vue&type=style&index=0&id=a6fa997c&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NavBar.vue?vue&type=style&index=0&id=03a78350&scoped=true&lang=scss\"","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--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=317a6409&lang=scss&scoped=true\"","{\n \"ACTION\": \"Action\",\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": \"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\",\n \"ADMIN\": \"Admin\",\n \"ADMINISTRATION\": \"Administration\",\n \"APPLICATION\": \"Application\",\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": \"Nombre maximum d'utilisateurs actifs \",\n \"MAX_USERS_HELP\": \"Si égal à 0, pas limite d'inscription\",\n \"MAX_FILES_IN_ZIP_LABEL\": \"Taille max. des archives zip (en Mo) \",\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": \"Taille max. des fichiers (en Mo) \",\n \"TITLE\": \"Configuration de l'application\",\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": \"Nombre max. de fichiers dans une archive zip \"\n },\n \"BACK_TO_ADMIN\": \"Revenir à l'admin\",\n \"CONFIRM_USER_ACCOUNT_DELETION\": \"Etes-vous sûr de vouloir supprimer le compte de {0} ? Toutes les données seront définitivement.\",\n \"DELETE_USER\": \"Supprimer l'utilisateur\",\n \"ENABLE_DISABLE_SPORTS\": \"Activer/désactiver des sports.\",\n \"REGISTRATION_DISABLED\": \"Les inscriptions sont actuellement désactivées.\",\n \"REGISTRATION_ENABLED\": \"Les inscriptions sont actuellement activées.\",\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": \"Actif\",\n \"HAS_WORKOUTS\": \"des séances existent\",\n \"IMAGE\": \"Image\",\n \"LABEL\": \"Label\"\n },\n \"TITLE\": \"Administration - Sports\"\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": \"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\",\n \"USER\": \"utilisateur | utilisateurs\",\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": \"Ajouter les drois d'admin\",\n \"REMOVE_ADMIN_RIGHTS\": \"Retirer les drois d'admin\"\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": \"status administrateur\",\n \"CREATED_AT\": \"date d'inscription\",\n \"USERNAME\": \"nom d'utilisateur\",\n \"WORKOUTS_COUNT\": \"nombre de séances\"\n }\n }\n }\n}\n","{\n \"ERROR\": {\n \"UNKNOWN\": \"Erreur. Veuillez réessayer ou contacter l'administrateur.\",\n \"email: valid email must be provided\": \"Email : une adresse email valide doit être fournie.\",\n \"error on getting configuration\": \"Erreur lors de la récupération de la configuration.\",\n \"error when updating configuration\": \"Erreur lors de la mise à jour de la configuration\",\n \"error, please try again or contact the administrator\": \"Erreur, veuillez réessayer ou contacter l'administrateur.\",\n \"error, registration is disabled\": \"Erreur, les inscriptions sont désactivées.\",\n \"file extension not allowed\": \"Extension de fichier non autorisée.\",\n \"file size is greater than the allowed size\": \"La taille du fichier est supérieure à la limite autorisée.\",\n \"invalid credentials\": \"Identifiants invalides.\",\n \"invalid payload\": \"Données fournies incorrectes.\",\n \"invalid token, please log in again\": \"Jeton de connexion invalide, merci de vous reconnecter.\",\n \"invalid token, please request a new token\": \"Jeton de connexion, merci de vous reconnecter.\",\n \"no file part\": \"Pas de fichier fourni.\",\n \"no selected file\": \"Pas de fichier sélectionné.\",\n \"Network Error\": \"Erreur Réseau.\",\n \"password: password and password confirmation do not match\": \"Mot de passe : les mots de passe saisis sont différents.\",\n \"provide a valid auth token\": \"Merci de fournir un jeton de connexion valide.\",\n \"password: 8 characters required\": \"Mot de passe : 8 caractères minimum.\",\n \"sport does not exist\": \"Ce sport n'existe pas.\",\n \"signature expired, please log in again\": \"Signature expirée. Merci de vous reconnecter.\",\n \"sorry, that user already exists\": \"Désolé, cet utilisateur existe déjà.\",\n \"successfully registered\": \"Inscription validée.\",\n \"user does not exist\": \"L'utilisateur n'existe pas\",\n \"username: 3 to 12 characters required\": \"Nom d'utilisateur : 3 à 12 caractères requis.\",\n \"you can not delete your account, no other user has admin rights\": \"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\",\n \"you do not have permissions\": \"Vous n'avez pas les permissions nécessaires.\"\n },\n \"PAGINATION\": {\n \"PREVIOUS\": \"précédent\",\n \"NEXT\": \"suivant\"\n }\n}","{\n \"BACK\": \"Précédent\",\n \"CANCEL\": \"Annuler\",\n \"DELETE_MY_ACCOUNT\": \"Supprimer mon compte\",\n \"DISABLE\": \"Désactiver\",\n \"EDIT\": \"Modifier\",\n \"ENABLE\": \"Activer\",\n \"FILTER\": \"Filtrer\",\n \"LOGIN\": \"Se connecter\",\n \"NO\": \"Non\",\n \"REGISTER\": \"S'inscrire\",\n \"SUBMIT\": \"Valider\",\n \"YES\": \"Oui\"\n}","{\n \"CONFIRMATION\": \"Confirmation\",\n \"DAY\": \"jour | jours\",\n \"HOME\": \"Accueil\",\n \"HERE\": \"ici\",\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": \"trier par \"\n },\n \"ORDER\": {\n \"LABEL\": \"tri\",\n \"ASC\": \"ascendant\",\n \"DESC\": \"descendant\"\n },\n \"PER_PAGE\": {\n \"LABEL\": \"par page\"\n }\n },\n \"TOTAL \": \"Total\"\n}","{\n \"DASHBOARD\": \"Tableau de Bord\",\n \"THIS_MONTH\": \"Ce mois\"\n}\n","{\n \"UNKNOWN\": \"Erreur. Veuillez réessayer ou contacter l'administrateur.\",\n \"APP_ERROR\": \"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\",\n \"NOT_FOUND\": {\n \"PAGE\": \"Page introuvable\",\n \"WORKOUT\": \"Séance introuvable\"\n }\n}","{\n \"Cycling (Sport)\": {\n \"LABEL\": \"Vélo (Sport)\"\n },\n \"Cycling (Transport)\": {\n \"LABEL\": \"Vélo (Transport)\"\n },\n \"Hiking\": {\n \"LABEL\": \"Randonnée\"\n },\n \"Mountain Biking\": {\n \"LABEL\": \"VTT\"\n },\n \"Running\": {\n \"LABEL\": \"Course\"\n },\n \"Walking\": {\n \"LABEL\": \"Marche\"\n }\n}","{\n \"STATISTICS\": \"Statistiques\",\n \"TIME_FRAMES\": {\n \"week\": \"semaine\",\n \"month\": \"mois\",\n \"year\": \"année\"\n }\n}\n","{\n \"ADMIN\": \"Admin\",\n \"CONFIRM_ACCOUNT_DELETION\": \"Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\",\n \"EMAIL\": \"Email\",\n \"ENTER_EMAIL\": \"Saisir une adresse email\",\n \"ENTER_PASSWORD\": \"Saisir un mot de passe\",\n \"ENTER_PASSWORD_CONFIRMATION\": \"Confirmer le mot de passe\",\n \"INVALID_TOKEN\": \"Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe.\",\n \"LANGUAGE\": \"Langue\",\n \"LOGIN\": \"Se connecter\",\n \"LOGOUT\": \"Se déconnecter\",\n \"PASSWORD\": \"Mot de passe\",\n \"PASSWORD_CONFIRM\": \"Confirmation du mot de passe\",\n \"PASSWORD_CONFIRMATION\": \"Confirmation du mot de passe\",\n \"PASSWORD_FORGOTTEN\": \"Mot de passe oublié ?\",\n \"PASSWORD_RESET\": \"Réinitialisation du mot de passe\",\n \"PASSWORD_SENT_EMAIL_TEXT\": \"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\": \"Votre mot de passe a été mis à jour. Cliquez {0} pour vous connecter.\",\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": \"Revenir au profil\",\n \"BIO\": \"Bio\",\n \"BIRTH_DATE\": \"Date de naissance\",\n \"EDIT\": \"Modifier le profil\",\n \"EDIT_PREFERENCES\": \"Modifier les préférences\",\n \"FIRST_DAY_OF_WEEK\": \"Premier jour de la semaine\",\n \"FIRST_NAME\": \"Prénom\",\n \"LANGUAGE\": \"Langue\",\n \"LAST_NAME\": \"Nom\",\n \"LOCATION\": \"Lieu\",\n \"MONDAY\": \"Lundi\",\n \"PICTURE\": \"Image de profil\",\n \"PICTURE_EDITION\": \"Mise à jour de l'image de profil\",\n \"PICTURE_UPDATE\": \"Mettre à jour l'image\",\n \"PICTURE_REMOVE\": \"Supprimer\",\n \"PREFERENCES_EDITION\": \"Mise à jour des préférences\",\n \"PROFILE_EDITION\": \"Mise à jour du profil\",\n \"REGISTRATION_DATE\": \"Date d'inscription\",\n \"SUNDAY\": \"Dimanche\",\n \"TABS\": {\n \"PICTURE\": \"image\",\n \"PREFERENCES\": \"préférences\",\n \"PROFILE\": \"profil\"\n },\n \"TIMEZONE\": \"Fuseau horaire\"\n },\n \"REGISTER\": \"S'inscrire\",\n \"REGISTER_DISABLED\": \"Désolé, les inscriptions sont désactivées.\",\n \"RESET_PASSWORD\": \"Réinitialiser votre mot de passe\",\n \"USER_PICTURE\": \"photo de l'utilisateur\",\n \"USERNAME\": \"Nom d'utilisateur\"\n}","{\n \"ADD_WORKOUT\": \"Ajouter une séance\",\n \"ANALYSIS\": \"analyse\",\n \"ASCENT\": \"dénivelé positif\",\n \"AVERAGE_SPEED\": \"vitesse moyenne\",\n \"AVE_SPEED\": \"vitesse moy.\",\n \"BACK_TO_WORKOUT\": \"revenir à la séance\",\n \"DATE\": \"date\",\n \"DESCENT\": \"dénivelé négatif\",\n \"DISPLAY_FILTERS\": \"afficher les filtres\",\n \"DISTANCE\": \"distance\",\n \"DURATION\": \"durée\",\n \"EDIT_WORKOUT\": \"Modifier la séance\",\n \"ELEVATION\": \"altitude\",\n \"END\": \"fin\",\n \"FROM\": \"à partir de\",\n \"GPX_FILE\": \"fichier .gpx\",\n \"HIDE_FILTERS\": \"masquer les filtres\",\n \"KM\": \"km\",\n \"LATEST_WORKOUTS\": \"Séances récentes\",\n \"LOAD_MORE_WORKOUT\": \"Charger les séances suivantes\",\n \"MAX_ALTITUDE\": \"altitude max\",\n \"MAX_FILES\": \"fichiers max. \",\n \"MAX_SIZE\": \"taille max. \",\n \"MAX_SPEED\": \"vitesse max\",\n \"MIN_ALTITUDE\": \"altitude min\",\n \"NEXT_SEGMENT\": \"Segment suivant\",\n \"NEXT_WORKOUT\": \"Séance suivante\",\n \"NO_DATA_CLEANING\": \"données issues du fichier gpx, sans correction\",\n \"NO_FILE_PROVIDED\": \"Pas de fichier fourni\",\n \"NO_FOLDER\": \"pas de répertoire\",\n \"NO_MAP\": \"Pas de carte\",\n \"NO_NEXT_SEGMENT\": \"Pas de segment suivant\",\n \"NO_NEXT_WORKOUT\": \"Pas de séance suivante\",\n \"NO_NOTES\": \"Pas de notes\",\n \"NO_PREVIOUS_SEGMENT\": \"Pas de segment précédent\",\n \"NO_PREVIOUS_WORKOUT\": \"Pas de séance précédente\",\n \"NO_RECORDS\": \"Pas de records.\",\n \"NO_WORKOUTS\": \"Pas de séances.\",\n \"NOTES\": \"notes\",\n \"PAUSES\": \"pauses\",\n \"PREVIOUS_SEGMENT\": \"Segment précédent\",\n \"PREVIOUS_WORKOUT\": \"Séance précédente\",\n \"RECORD\": \"record | records\",\n \"RECORD_AS\": \"Vitesse moy.\",\n \"RECORD_FD\": \"Distance la + longue\",\n \"RECORD_LD\": \"Durée la + longue\",\n \"RECORD_MS\": \"Vitesse max.\",\n \"REMAINING_CHARS\": \"nombre de caractères restants \",\n \"SEGMENT\": \"segment | segments\",\n \"SPEED\": \"vitesse\",\n \"SPORT\": \"sport | sports\",\n \"START\": \"début\",\n \"TITLE\": \"titre\",\n \"TO\": \"jusqu'au\",\n \"TOTAL_DURATION\": \"durée totale\",\n \"UPLOAD_FIRST_WORKOUT\": \"Ajoutez votre première séance !\",\n \"WEATHER\": {\n \"HUMIDITY\": \"humidité\",\n \"TEMPERATURE\": \"température\",\n \"WIND\": \"vent\",\n \"DARK_SKY\": {\n \"clear-day\": \"ensoleillé\",\n \"clear-night\": \"nuit claire\",\n \"cloudy\": \"nuageux\",\n \"fog\": \"brouillard\",\n \"partly-cloudy-day\": \"partiellement nuageux\",\n \"partly-cloudy-night\": \"nuit partiellement nuageuse\",\n \"rain\": \"pluie\",\n \"sleet\": \"neige fondue\",\n \"snow\": \"neige\",\n \"wind\": \"venteux\"\n }\n },\n \"WITH_GPX\": \"avec un fichier .gpx\",\n \"WITHOUT_GPX\": \"sans fichier .gpx\",\n \"WORKOUT\": \"séance | séances\",\n \"WORKOUT_DATE\": \"date de la séance\",\n \"WORKOUT_DELETION_CONFIRMATION\": \"Etes-vous sûr de vouloir supprimer cette séance ?\",\n \"ZIP_ARCHIVE\": \"archive .zip\",\n \"ZIP_ARCHIVE_DESCRIPTION\": \"ou une archive .zip contenant des fichiers .gpx\"\n}\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","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { rangePagination } from '@/utils/api'\n\n export default defineComponent({\n name: 'Pagination',\n props: {\n pagination: {\n type: Object as PropType,\n required: true,\n },\n path: {\n type: String,\n required: true,\n },\n query: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n function getQuery(page: number, cursor?: number): TPaginationPayload {\n const newQuery = Object.assign({}, props.query)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n return { rangePagination, getQuery }\n },\n })\n","import { render } from \"./Pagination.vue?vue&type=template&id=56dc89d4&scoped=true\"\nimport script from \"./Pagination.vue?vue&type=script&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=56dc89d4&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-56dc89d4\"\n\nexport default script","\n\n\n\n\n","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n } from 'vue'\n\n import { USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'UserInfos',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n fromAdmin: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n const authUser: ComputedRef = computed(\n () => store.getters[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(USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n return {\n authUser,\n birthDate,\n displayModal,\n registrationDate,\n deleteUserAccount,\n updateDisplayModal,\n }\n },\n })\n","import { render } from \"./UserInfos.vue?vue&type=template&id=1267fe4f&scoped=true\"\nimport script from \"./UserInfos.vue?vue&type=script&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=1267fe4f&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-1267fe4f\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./FilterSelects.vue?vue&type=style&index=0&id=50c78582&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Footer.vue?vue&type=style&index=0&id=e1641806&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./index.vue?vue&type=style&index=0&id=c81580c0&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./StatCard.vue?vue&type=style&index=0&id=32e77e48&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Modal.vue?vue&type=style&index=0&id=21b6cb61&lang=scss&scoped=true\"","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n export default defineComponent({\n name: 'FilterSelects',\n props: {\n order_by: {\n type: Object as PropType,\n required: true,\n },\n query: {\n type: Object as PropType,\n required: true,\n },\n sort: {\n type: Object as PropType,\n required: true,\n },\n message: {\n type: String,\n required: true,\n },\n },\n emits: ['updateSelect'],\n setup(props, { emit }) {\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\n return {\n per_page: [10, 25, 50, 100],\n onSelectUpdate,\n }\n },\n })\n","import { render } from \"./FilterSelects.vue?vue&type=template&id=50c78582&scoped=true\"\nimport script from \"./FilterSelects.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=50c78582&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-50c78582\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Dropdown.vue?vue&type=style&index=0&id=5ef2ddef&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserInfos.vue?vue&type=style&index=0&id=1267fe4f&lang=scss&scoped=true\"","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 = queryOptions.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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AppStatsCards.vue?vue&type=style&index=0&id=cd52bcc2&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./CustomTextArea.vue?vue&type=style&index=0&id=ad3739fc&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Loader.vue?vue&type=style&index=0&id=8bf75da8&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserPictureEdition.vue?vue&type=style&index=0&id=500d4a7a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AdminUsers.vue?vue&type=style&index=0&id=4711ecf8&lang=scss&scoped=true\"","{\n \"ACTION\": \"Action\",\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": \"Add/remove admin rights, delete user account.\",\n \"ADMIN\": \"Admin\",\n \"ADMINISTRATION\": \"Administration\",\n \"APPLICATION\": \"Application\",\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": \"Max. number of active users\",\n \"MAX_USERS_HELP\": \"If 0, no limitation on registration.\",\n \"MAX_FILES_IN_ZIP_LABEL\": \"Max. files of zip archive\",\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": \"Max. size of uploaded files (in Mb)\",\n \"TITLE\": \"Application configuration\",\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": \"Max. size of zip archive (in Mb)\"\n },\n \"BACK_TO_ADMIN\": \"Back to admin\",\n \"CONFIRM_USER_ACCOUNT_DELETION\": \"Are you sure you want to delete {0} account? All data will be deleted, this cannot be undone.\",\n \"DELETE_USER\": \"Delete user\",\n \"ENABLE_DISABLE_SPORTS\": \"Enable/disable sports.\",\n \"REGISTRATION_DISABLED\": \"Registration is currently disabled.\",\n \"REGISTRATION_ENABLED\": \"Registration is currently enabled.\",\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": \"Active\",\n \"HAS_WORKOUTS\": \"workouts exist\",\n \"IMAGE\": \"Image\",\n \"LABEL\": \"Label\"\n },\n \"TITLE\": \"Sports administration\"\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": \"Update application configuration (maximum number of registered users, maximum files size).\",\n \"USER\": \"user | users\",\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": \"Add admin rights\",\n \"REMOVE_ADMIN_RIGHTS\": \"Remove admin rights\"\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": \"admin status\",\n \"CREATED_AT\": \"registration date\",\n \"USERNAME\": \"username\",\n \"WORKOUTS_COUNT\": \"workout count\"\n }\n }\n }\n}\n","{\n \"ERROR\": {\n \"UNKNOWN\": \"Error. Please try again or contact the administrator.\",\n \"email: valid email must be provided\": \"Email: valid email must be provided.\",\n \"error on getting configuration\": \"Error on getting configuration.\",\n \"error when updating configuration\": \"Error when updating configuration\",\n \"error, please try again or contact the administrator\": \"Error, please try again or contact the administrator.\",\n \"error, registration is disabled\": \"Error, registration is disabled.\",\n \"file extension not allowed\": \"File extension not allowed.\",\n \"file size is greater than the allowed size\": \"File size is greater than the allowed size.\",\n \"invalid credentials\": \"Invalid credentials.\",\n \"invalid payload\": \"Provided data are invalid.\",\n \"invalid token, please log in again\": \"Invalid token, please log in again.\",\n \"invalid token, please request a new token\": \"Invalid token, please log in again.\",\n \"Network Error\": \"Network Error.\",\n \"no file part\": \"No file provided.\",\n \"no selected file\": \"No selected file.\",\n \"password: password and password confirmation do not match\": \"Password: password and password confirmation don't match.\",\n \"provide a valid auth token\": \"Provide a valid auth token.\",\n \"password: 8 characters required\": \"Password: 8 characters required.\",\n \"sorry, that user already exists\": \"Sorry, that user already exists.\",\n \"sport does not exist\": \"Sport does not exist.\",\n \"signature expired, please log in again\": \"Signature expired. Please log in again.\",\n \"successfully registered\": \"Successfully registered.\",\n \"user does not exist\": \"User does not exist.\",\n \"username: 3 to 12 characters required\": \"Username: 3 to 12 characters required.\",\n \"you can not delete your account, no other user has admin rights\": \"You can not delete your account, no other user has admin rights.\",\n \"you do not have permissions\": \"You do not have permissions.\"\n },\n \"PAGINATION\": {\n \"PREVIOUS\": \"previous\",\n \"NEXT\": \"next\"\n }\n}","{\n \"BACK\": \"Back\",\n \"CANCEL\": \"Cancel\",\n \"DELETE_MY_ACCOUNT\": \"Delete my account\",\n \"DISABLE\": \"Disable\",\n \"EDIT\": \"Edit\",\n \"ENABLE\": \"Enable\",\n \"FILTER\": \"Filter\",\n \"LOGIN\": \"Log in\",\n \"NO\": \"No\",\n \"REGISTER\": \"Register\",\n \"SUBMIT\": \"Submit\",\n \"YES\": \"Yes\"\n}","{\n \"CONFIRMATION\": \"Confirmation\",\n \"DAY\": \"day | days\",\n \"HOME\": \"Home\",\n \"HERE\": \"here\",\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": \"order by\"\n },\n \"ORDER\": {\n \"LABEL\": \"sort\",\n \"ASC\": \"ascending\",\n \"DESC\": \"descending\"\n },\n \"PER_PAGE\": {\n \"LABEL\": \"par page\"\n }\n },\n \"TOTAL\": \"Total\"\n}","{\n \"DASHBOARD\": \"Dashboard\",\n \"THIS_MONTH\": \"This month\"\n}\n","{\n \"UNKNOWN\": \"Error. Please try again or contact the administrator.\",\n \"APP_ERROR\": \"The application seems encounter some issues.
Please try later or contact the administrator.\",\n \"NOT_FOUND\": {\n \"PAGE\": \"Page not found\",\n \"WORKOUT\": \"Workout not found\"\n }\n}","{\n \"Cycling (Sport)\": {\n \"LABEL\": \"Cycling (Sport)\"\n },\n \"Cycling (Transport)\": {\n \"LABEL\": \"Cycling (Transport)\"\n },\n \"Hiking\": {\n \"LABEL\": \"Hiking\"\n },\n \"Mountain Biking\": {\n \"LABEL\": \"Mountain Biking\"\n },\n \"Running\": {\n \"LABEL\": \"Running\"\n },\n \"Walking\": {\n \"LABEL\": \"Walking\"\n }\n}","{\n \"STATISTICS\": \"Statistics\",\n \"TIME_FRAMES\": {\n \"week\": \"week\",\n \"month\": \"month\",\n \"year\": \"year\"\n }\n}\n","{\n \"ADMIN\": \"Admin\",\n \"CONFIRM_ACCOUNT_DELETION\": \"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\",\n \"EMAIL\": \"Email\",\n \"ENTER_EMAIL\": \"Enter an email address\",\n \"ENTER_PASSWORD\": \"Enter a password\",\n \"ENTER_PASSWORD_CONFIRMATION\": \"Confirm the password\",\n \"INVALID_TOKEN\": \"Invalid token, please request a new password reset.\",\n \"LANGUAGE\": \"Language\",\n \"LOGIN\": \"Login\",\n \"LOGOUT\": \"Logout\",\n \"PASSWORD\": \"Password\",\n \"PASSWORD_CONFIRM\": \"Confirm Password\",\n \"PASSWORD_CONFIRMATION\": \"Password confirmation\",\n \"PASSWORD_FORGOTTEN\": \"Forgot password?\",\n \"PASSWORD_RESET\": \"Password reset\",\n \"PASSWORD_SENT_EMAIL_TEXT\": \"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\": \"Your password have been updated. Click {0} to log in.\",\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": \"Back to profile\",\n \"BIO\": \"Bio\",\n \"BIRTH_DATE\": \"Birth date\",\n \"EDIT\": \"Edit profile\",\n \"EDIT_PREFERENCES\": \"Edit preferences\",\n \"FIRST_NAME\": \"First name\",\n \"FIRST_DAY_OF_WEEK\": \"First day of week\",\n \"LANGUAGE\": \"Language\",\n \"LAST_NAME\": \"Last name\",\n \"LOCATION\": \"Location\",\n \"MONDAY\": \"Monday\",\n \"PICTURE\": \"Picture\",\n \"PICTURE_EDITION\": \"Picture edition\",\n \"PICTURE_UPDATE\": \"Update picture\",\n \"PICTURE_REMOVE\": \"Remove picture\",\n \"PREFERENCES_EDITION\": \"Preferences edition\",\n \"PROFILE_EDITION\": \"Profile edition\",\n \"REGISTRATION_DATE\": \"Registration date\",\n \"SUNDAY\": \"Sunday\",\n \"TABS\": {\n \"PICTURE\": \"picture\",\n \"PREFERENCES\": \"preferences\",\n \"PROFILE\": \"profile\"\n },\n \"TIMEZONE\": \"Timezone\"\n },\n \"REGISTER\": \"Register\",\n \"REGISTER_DISABLED\": \"Sorry, registration is disabled.\",\n \"RESET_PASSWORD\": \"Reset your password\",\n \"USER_PICTURE\": \"user picture\",\n \"USERNAME\": \"Username\"\n}\n","{\n \"ADD_WORKOUT\": \"Add a workout\",\n \"ANALYSIS\": \"analysis\",\n \"ASCENT\": \"ascent\",\n \"AVE_SPEED\": \"ave. speed\",\n \"AVERAGE_SPEED\": \"average speed\",\n \"BACK_TO_WORKOUT\": \"back to workout\",\n \"DATE\": \"date\",\n \"DESCENT\": \"descent\",\n \"DISPLAY_FILTERS\": \"display filters\",\n \"DISTANCE\": \"distance\",\n \"DURATION\": \"duration\",\n \"EDIT_WORKOUT\": \"Edit the workout\",\n \"ELEVATION\": \"elevation\",\n \"END\": \"end\",\n \"FROM\": \"from\",\n \"GPX_FILE\": \".gpx file\",\n \"HIDE_FILTERS\": \"hide filters\",\n \"KM\": \"km\",\n \"LATEST_WORKOUTS\": \"Latest workouts\",\n \"LOAD_MORE_WORKOUT\": \"Load more workouts\",\n \"MAX_ALTITUDE\": \"max. altitude\",\n \"MAX_FILES\": \"max files\",\n \"MAX_SIZE\": \"max size\",\n \"MAX_SPEED\": \"max. speed\",\n \"MIN_ALTITUDE\": \"min. altitude\",\n \"NEXT_SEGMENT\": \"No next segment\",\n \"NEXT_WORKOUT\": \"Next workout\",\n \"NO_DATA_CLEANING\": \"data from gpx, without any cleaning\",\n \"NO_FILE_PROVIDED\": \"No file provided\",\n \"NO_FOLDER\": \"no folder inside\",\n \"NO_MAP\": \"No map\",\n \"NO_NEXT_SEGMENT\": \"No next segment\",\n \"NO_NEXT_WORKOUT\": \"No next workout\",\n \"NO_NOTES\": \"No notes\",\n \"NO_PREVIOUS_SEGMENT\": \"No previous segment\",\n \"NO_PREVIOUS_WORKOUT\": \"No previous workout\",\n \"NO_RECORDS\": \"No records.\",\n \"NO_WORKOUTS\": \"No workouts.\",\n \"NOTES\": \"notes\",\n \"PAUSES\": \"pauses\",\n \"PREVIOUS_SEGMENT\": \"Previous segment\",\n \"PREVIOUS_WORKOUT\": \"Previous workout\",\n \"RECORD\": \"record | records\",\n \"RECORD_AS\": \"Ave. speed\",\n \"RECORD_FD\": \"Farest distance\",\n \"RECORD_LD\": \"Longest duration\",\n \"RECORD_MS\": \"Max. speed\",\n \"REMAINING_CHARS\": \"remaining characters\",\n \"SEGMENT\": \"segment | segments\",\n \"SPEED\": \"speed\",\n \"SPORT\": \"sport | sports\",\n \"START\": \"start\",\n \"TITLE\": \"title\",\n \"TO\": \"to\",\n \"TOTAL_DURATION\": \"total duration\",\n \"UPLOAD_FIRST_WORKOUT\": \"Upload one!\",\n \"WEATHER\": {\n \"HUMIDITY\": \"humidity\",\n \"TEMPERATURE\": \"temperature\",\n \"WIND\": \"wind\",\n \"DARK_SKY\": {\n \"clear-day\": \"clear day\",\n \"clear-night\": \"clear night\",\n \"cloudy\": \"cloudy\",\n \"fog\": \"fog\",\n \"partly-cloudy-day\": \"partly cloudy day\",\n \"partly-cloudy-night\": \"partly cloudy night\",\n \"rain\": \"rain\",\n \"sleet\": \"sleet\",\n \"snow\": \"snow\",\n \"wind\": \"wind\"\n }\n },\n \"WITH_GPX\": \"with .gpx file\",\n \"WITHOUT_GPX\": \"without .gpx file\",\n \"WORKOUT\": \"workout | workouts\",\n \"WORKOUT_DATE\": \"workout date\",\n \"WORKOUT_DELETION_CONFIRMATION\": \"Are you sure you want to delete this workout?\",\n \"ZIP_ARCHIVE\": \".zip file\",\n \"ZIP_ARCHIVE_DESCRIPTION\": \"or .zip file containing .gpx files\"\n}\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","\n\n\n\n\n","\n import { PropType, computed, defineComponent } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n export default defineComponent({\n name: 'UserPicture',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n return {\n authUserPictureUrl: computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture`\n : ''\n ),\n }\n },\n })\n","import { render } from \"./UserPicture.vue?vue&type=template&id=4aed39f4\"\nimport script from \"./UserPicture.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=4aed39f4&lang=scss\"\nscript.render = render\n\nexport default script","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserPreferences.vue?vue&type=style&index=0&id=39667dbe&lang=scss&scoped=true\"","/* 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","\n\n\n\n\n","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'Footer',\n props: {\n version: {\n type: String,\n required: true,\n },\n },\n })\n","import { render } from \"./Footer.vue?vue&type=template&id=e1641806&scoped=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=e1641806&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-e1641806\"\n\nexport default script","\n\n\n\n\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\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","/* 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","\n import { ComputedRef, computed, defineComponent, ref, capitalize } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE, USER_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getApiUrl } from '@/utils'\n import { availableLanguages } from '@/utils/locales'\n\n export default defineComponent({\n name: 'NavBar',\n components: {\n UserPicture,\n },\n emits: ['menuInteraction'],\n setup(props, { emit }) {\n const { locale } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const authUserPictureUrl: ComputedRef = computed(() =>\n isAuthenticated.value && authUser.value.picture\n ? `${getApiUrl()}/users/${\n authUser.value.username\n }/picture?${Date.now()}`\n : ''\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(USER_STORE.ACTIONS.LOGOUT)\n }\n\n return {\n availableLanguages,\n authUser,\n authUserPictureUrl,\n isAuthenticated,\n isMenuOpen,\n language,\n capitalize,\n openMenu,\n closeMenu,\n updateLanguage,\n logout,\n }\n },\n })\n","import { render } from \"./NavBar.vue?vue&type=template&id=03a78350&scoped=true\"\nimport script from \"./NavBar.vue?vue&type=script&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=03a78350&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-03a78350\"\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n export default defineComponent({\n name: 'NoConfig',\n setup() {\n const { t } = useI18n()\n return { t }\n },\n })\n","import { render } from \"./NoConfig.vue?vue&type=template&id=01d4a985&scoped=true\"\nimport script from \"./NoConfig.vue?vue&type=script&lang=ts\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=01d4a985&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-01d4a985\"\n\nexport default script","\n import {\n ComputedRef,\n computed,\n defineComponent,\n ref,\n onBeforeMount,\n onMounted,\n } 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 export default defineComponent({\n name: 'App',\n components: {\n Footer,\n NavBar,\n NoConfig,\n },\n setup() {\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() =>\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n )\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\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 =\n 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\n return {\n appConfig,\n appLoading,\n hideScrollBar,\n displayScrollButton,\n scrollToTop,\n updateHideScrollBar,\n }\n },\n })\n","import { render } from \"./App.vue?vue&type=template&id=317a6409&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=317a6409&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-317a6409\"\n\nexport default script","\n\n\n\n\n","\n import {\n ComputedRef,\n PropType,\n computed,\n defineComponent,\n reactive,\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 export default defineComponent({\n name: 'AdminApplication',\n props: {\n appConfig: {\n type: Object as PropType,\n required: true,\n },\n edition: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n const router = useRouter()\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\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\n return { appData, errorMessages, onCancel, onSubmit }\n },\n })\n","import { render } from \"./AdminApplication.vue?vue&type=template&id=26175b66&scoped=true\"\nimport script from \"./AdminApplication.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=26175b66&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-26175b66\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","\n import { PropType, defineComponent, computed } 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 export default defineComponent({\n name: 'UserStatsCards',\n components: {\n StatCard,\n },\n props: {\n appStatistics: {\n type: Object as PropType,\n default: () => {\n return {}\n },\n },\n },\n setup(props) {\n return {\n uploadDirSize: computed(() =>\n props.appStatistics.uploads_dir_size\n ? getReadableFileSize(props.appStatistics.uploads_dir_size, false)\n : { size: 0, suffix: 'bytes' }\n ),\n usersCount: computed(() =>\n props.appStatistics.users ? props.appStatistics.users : 0\n ),\n sportsCount: computed(() =>\n props.appStatistics.sports ? props.appStatistics.sports : 0\n ),\n workoutCount: computed(() =>\n props.appStatistics.workouts ? props.appStatistics.workouts : 0\n ),\n }\n },\n })\n","import { render } from \"./AppStatsCards.vue?vue&type=template&id=cd52bcc2\"\nimport script from \"./AppStatsCards.vue?vue&type=script&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=cd52bcc2&lang=scss\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n export default defineComponent({\n name: 'Card',\n })\n","import { render } from \"./Card.vue?vue&type=template&id=c5956538\"\nimport script from \"./Card.vue?vue&type=script&lang=ts\"\nexport * from \"./Card.vue?vue&type=script&lang=ts\"\n\nimport \"./Card.vue?vue&type=style&index=0&id=c5956538&lang=scss\"\nscript.render = render\n\nexport default script","\n import { PropType, capitalize, defineComponent } 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 export default defineComponent({\n name: 'AdminMenu',\n components: {\n AppStatsCards,\n Card,\n },\n props: {\n appConfig: {\n type: Object as PropType,\n required: true,\n },\n appStatistics: {\n type: Object as PropType,\n },\n },\n setup() {\n return { capitalize }\n },\n })\n","import { render } from \"./AdminMenu.vue?vue&type=template&id=4f30aa64&scoped=true\"\nimport script from \"./AdminMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=4f30aa64&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4f30aa64\"\n\nexport default script","\n\n\n\n\n","\n import { ComputedRef, computed, defineComponent } 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 export default defineComponent({\n name: 'AdminSports',\n setup() {\n const { t } = useI18n()\n const store = useStore()\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\n return { errorMessages, translatedSports, updateSportStatus }\n },\n })\n","import { render } from \"./AdminSports.vue?vue&type=template&id=6d930723&scoped=true\"\nimport script from \"./AdminSports.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d930723&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-6d930723\"\n\nexport default script","\n\n\n\n\n","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n computed,\n defineComponent,\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 { ROOT_STORE, USER_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 export default defineComponent({\n name: 'AdminUsers',\n components: {\n FilterSelects,\n Pagination,\n UserPicture,\n },\n setup() {\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\n const authUser: ComputedRef = computed(\n () => store.getters[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 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 onBeforeMount(() => loadUsers(query))\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n return {\n authUser,\n errorMessages,\n orderByList,\n pagination,\n query,\n sortList,\n users,\n capitalize,\n format,\n getDateWithTZ,\n reloadUsers,\n updateUser,\n }\n },\n })\n","import { render } from \"./AdminUsers.vue?vue&type=template&id=4711ecf8&scoped=true\"\nimport script from \"./AdminUsers.vue?vue&type=script&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=4711ecf8&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-4711ecf8\"\n\nexport default script","\n\n\n\n\n","\n\n\n\n\n","\n import { PropType, defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'UserProfileTabs',\n props: {\n tabs: {\n type: Object as PropType,\n required: true,\n },\n selectedTab: {\n type: String,\n required: true,\n },\n edition: {\n type: Boolean,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n function getPath(tab: string) {\n switch (tab) {\n case 'PICTURE':\n return '/profile/edit/picture'\n case 'PREFERENCES':\n return `/profile${props.edition ? '/edit' : ''}/preferences`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n return { getPath }\n },\n })\n","import { render } from \"./UserProfileTabs.vue?vue&type=template&id=c7276c08\"\nimport script from \"./UserProfileTabs.vue?vue&type=script&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=c7276c08&lang=scss\"\nscript.render = render\n\nexport default script","\n import { PropType, defineComponent } 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 export default defineComponent({\n name: 'ProfileDisplay',\n components: {\n UserHeader,\n UserProfileTabs,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n tab: {\n type: String,\n required: true,\n },\n },\n setup() {\n return {\n tabs: ['PROFILE', 'PREFERENCES'],\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=c81580c0&scoped=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=c81580c0&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-c81580c0\"\n\nexport default script","\n\n\n\n\n","\n import { PropType, computed, defineComponent } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n export default defineComponent({\n name: 'UserPreferences',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const language = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() =>\n props.user.weekm ? 'MONDAY' : 'SUNDAY'\n )\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n return { fistDayOfWeek, language, timezone }\n },\n })\n","import { render } from \"./UserPreferences.vue?vue&type=template&id=39667dbe&scoped=true\"\nimport script from \"./UserPreferences.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&lang=ts\"\n\nimport \"./UserPreferences.vue?vue&type=style&index=0&id=39667dbe&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-39667dbe\"\n\nexport default script","\n\n\n","\n import { computed, defineComponent, PropType } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'ProfileEdition',\n components: {\n UserProfileTabs,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n tab: {\n type: String,\n required: true,\n },\n },\n setup() {\n const store = useStore()\n return {\n loading: computed(() => store.getters[USER_STORE.GETTERS.USER_LOADING]),\n tabs: ['PROFILE', 'PICTURE', 'PREFERENCES'],\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=035b0eba\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n reactive,\n ref,\n onMounted,\n } from 'vue'\n\n import { ROOT_STORE, USER_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'UserInfosEdition',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const store = useStore()\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[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(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(USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n return {\n displayModal,\n errorMessages,\n loading,\n registrationDate,\n userForm,\n deleteAccount,\n updateBio,\n updateDisplayModal,\n updateProfile,\n }\n },\n })\n","import { render } from \"./UserInfosEdition.vue?vue&type=template&id=a2dfdb58\"\nimport script from \"./UserInfosEdition.vue?vue&type=script&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=a2dfdb58&lang=scss\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import {\n ComputedRef,\n PropType,\n Ref,\n defineComponent,\n computed,\n ref,\n } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE, USER_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 export default defineComponent({\n name: 'UserPictureEdition',\n components: {\n UserPicture,\n },\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup() {\n const store = useStore()\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(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(USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n return {\n errorMessages,\n fileSizeLimit,\n pictureFile,\n deleteUserPicture,\n updateUserPicture,\n updatePictureFile,\n }\n },\n })\n","import { render } from \"./UserPictureEdition.vue?vue&type=template&id=500d4a7a&scoped=true\"\nimport script from \"./UserPictureEdition.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=500d4a7a&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-500d4a7a\"\n\nexport default script","\n\n\n","\n import {\n ComputedRef,\n PropType,\n computed,\n defineComponent,\n reactive,\n onMounted,\n } from 'vue'\n\n import { ROOT_STORE, USER_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 export default defineComponent({\n name: 'UserPreferencesEdition',\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const store = useStore()\n const userForm: IUserPreferencesPayload = reactive({\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 loading = computed(\n () => store.getters[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.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(USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n\n return {\n availableLanguages,\n errorMessages,\n loading,\n userForm,\n weekStart,\n updateProfile,\n }\n },\n })\n","import { render } from \"./UserPreferencesEdition.vue?vue&type=template&id=18513603\"\nimport script from \"./UserPreferencesEdition.vue?vue&type=script&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import axios from 'axios'\n\nimport store from '@/store'\nimport { 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[USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (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","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 appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { 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 } 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 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 api from '@/api/defaultApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport {\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USER_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUserActions, IUserState } from '@/store/modules/user/types'\nimport {\n ILoginOrRegisterData,\n IUserDeletionPayload,\n IUserPasswordPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nconst removeUserData = (context: ActionContext) => {\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(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 & IUserActions = {\n [USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n },\n [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 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 removeUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeUserData(context)\n })\n },\n [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(USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(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 [USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeUserData(context)\n },\n [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(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 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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [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(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 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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [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(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(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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: 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 context\n .dispatch(USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(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(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(USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [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 [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 { USER_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUserGetters, IUserState } from '@/store/modules/user/types'\n\nexport const getters: GetterTree & IUserGetters = {\n [USER_STORE.GETTERS.AUTH_TOKEN]: (state: IUserState) => {\n return state.authToken\n },\n [USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IUserState) => {\n return state.authUserProfile\n },\n [USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IUserState) => {\n return state.authToken !== null\n },\n [USER_STORE.GETTERS.IS_ADMIN]: (state: IUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [USER_STORE.GETTERS.USER_LOADING]: (state: IUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USER_STORE } from '@/store/constants'\nimport { IUserState, TUserMutations } from '@/store/modules/user/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUserMutations = {\n [USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IUserState,\n authUserProfile: IUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IUserState } from '@/store/modules/user/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const userState: IUserState = {\n authToken: null,\n authUserProfile: {},\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/user/actions'\nimport { getters } from '@/store/modules/user/getters'\nimport { mutations } from '@/store/modules/user/mutations'\nimport { userState } from '@/store/modules/user/state.ts'\nimport { IUserState } from '@/store/modules/user/types'\n\nconst user: Module = {\n state: userState,\n actions,\n getters,\n mutations,\n}\n\nexport default user\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload } from '@/types/user'\nimport { handleError } from '@/utils'\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}\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, 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(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(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(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(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 { 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.ts'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport userModule from '@/store/modules/user'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n sportsModule,\n statsModule,\n userModule,\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","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 store from '@/store'\nimport { USER_STORE } from '@/store/constants'\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: () =>\n import(/* webpackChunkName: 'main' */ '@/views/Dashboard.vue'),\n },\n {\n path: '/login',\n name: 'Login',\n component: () =>\n import(/* webpackChunkName: 'main' */ '@/views/user/LoginOrRegister.vue'),\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: () =>\n import(/* webpackChunkName: 'main' */ '@/views/user/LoginOrRegister.vue'),\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 },\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 },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'main' */ '@/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: () =>\n import(/* webpackChunkName: 'main' */ '@/views/NotFoundView.vue'),\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(USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (\n store.getters[USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n } else if (\n !store.getters[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","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'AlertMessage',\n props: {\n message: String,\n },\n })\n","import { render } from \"./AlertMessage.vue?vue&type=template&id=f5e8066a&scoped=true\"\nimport script from \"./AlertMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=f5e8066a&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-f5e8066a\"\n\nexport default script","\n\n\n\n\n","\n import { defineComponent, ref, watch } from 'vue'\n\n export default defineComponent({\n name: 'CustomTextArea',\n props: {\n charLimit: {\n type: Number,\n default: 500,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n input: {\n type: String,\n default: '',\n },\n name: {\n type: String,\n required: true,\n },\n },\n emits: ['updateValue'],\n setup(props, { emit }) {\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\n return { text, updateText }\n },\n })\n","import { render } from \"./CustomTextArea.vue?vue&type=template&id=ad3739fc&scoped=true\"\nimport script from \"./CustomTextArea.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=ad3739fc&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-ad3739fc\"\n\nexport default script","\n\n\n\n\n","\n import { PropType, defineComponent, ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n\n export default defineComponent({\n name: 'Dropdown',\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n selected: {\n type: String,\n required: true,\n },\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(props, { emit }) {\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\n return {\n dropdownOptions,\n isOpen,\n toggleDropdown,\n updateSelected,\n }\n },\n })\n","import { render } from \"./Dropdown.vue?vue&type=template&id=5ef2ddef&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=5ef2ddef&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-5ef2ddef\"\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n\n export default defineComponent({\n name: 'ErrorMessage',\n props: {\n message: [String, Array],\n },\n })\n","import { render } from \"./ErrorMessage.vue?vue&type=template&id=5c177a93&scoped=true\"\nimport script from \"./ErrorMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=5c177a93&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-5c177a93\"\n\nexport default script","\n\n\n","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\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\"\nscript.render = render\n\nexport default script","\n import { defineComponent, inject } 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 Running from '@/components/Common/Images/SportImage/Running.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n export default defineComponent({\n name: 'SportImage',\n components: {\n CyclingSport,\n CyclingTransport,\n Hiking,\n MountainBiking,\n Running,\n Walking,\n },\n props: {\n sportLabel: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n required: false,\n },\n },\n setup() {\n return { sportColors: inject('sportColors') }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=834c586a\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","\n import { defineComponent } from 'vue'\n export default defineComponent({\n name: 'Loader',\n })\n","import { render } from \"./Loader.vue?vue&type=template&id=8bf75da8&scoped=true\"\nimport script from \"./Loader.vue?vue&type=script&lang=ts\"\nexport * from \"./Loader.vue?vue&type=script&lang=ts\"\n\nimport \"./Loader.vue?vue&type=style&index=0&id=8bf75da8&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-8bf75da8\"\n\nexport default script","\n\n\n\n\n","\n import { ComputedRef, computed, defineComponent, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n export default defineComponent({\n name: 'Modal',\n props: {\n title: {\n type: String,\n required: true,\n },\n message: {\n type: String,\n required: true,\n },\n strongMessage: {\n type: String || null,\n default: null,\n },\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(props, { emit }) {\n const store = useStore()\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 return { errorMessages, emit }\n },\n })\n","import { render } from \"./Modal.vue?vue&type=template&id=21b6cb61&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=21b6cb61&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-21b6cb61\"\n\nexport default script","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.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 AlertMessage,\n Card,\n CustomTextArea,\n Dropdown,\n ErrorMessage,\n Loader,\n Modal,\n 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)\n})\n\napp.mount('#app')\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUserState } from '@/store/modules/user/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--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserProfileTabs.vue?vue&type=style&index=0&id=c7276c08&lang=scss\"","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 UserActions {\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 UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n}\n\nexport enum UserGetters {\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 UserMutations {\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 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}\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 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 UserActions,\n UserGetters,\n UserMutations,\n} from '@/store/modules/user/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 USER_STORE = {\n ACTIONS: UserActions,\n GETTERS: UserGetters,\n MUTATIONS: UserMutations,\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","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--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./NoConfig.vue?vue&type=style&index=0&id=01d4a985&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AlertMessage.vue?vue&type=style&index=0&id=f5e8066a&scoped=true&lang=scss\""],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/tests/users/test_users_api.py b/fittrackee/tests/users/test_users_api.py index 0745476a..75a4c6bd 100644 --- a/fittrackee/tests/users/test_users_api.py +++ b/fittrackee/tests/users/test_users_api.py @@ -1038,7 +1038,7 @@ class TestDeleteUser(ApiTestCaseMixin): assert response.status_code == 403 assert 'error' in data['status'] assert ( - 'You can not delete your account, no other user has admin rights.' + 'you can not delete your account, no other user has admin rights' in data['message'] ) diff --git a/fittrackee/users/users.py b/fittrackee/users/users.py index fd14f2f0..d337553a 100644 --- a/fittrackee/users/users.py +++ b/fittrackee/users/users.py @@ -532,7 +532,7 @@ def delete_user( - invalid token, please log in again :statuscode 403: - you do not have permissions - - You can not delete your account, no other user has admin rights. + - you can not delete your account, no other user has admin rights :statuscode 404: - user does not exist :statuscode 500: error, please try again or contact the administrator @@ -551,8 +551,8 @@ def delete_user( and User.query.filter_by(admin=True).count() == 1 ): return ForbiddenErrorResponse( - 'You can not delete your account, ' - 'no other user has admin rights.' + 'you can not delete your account, ' + 'no other user has admin rights' ) for workout in Workout.query.filter_by(user_id=user.id).all(): diff --git a/fittrackee_client/src/locales/en/api.json b/fittrackee_client/src/locales/en/api.json index 781ae61b..5d7f2d61 100644 --- a/fittrackee_client/src/locales/en/api.json +++ b/fittrackee_client/src/locales/en/api.json @@ -24,6 +24,7 @@ "successfully registered": "Successfully registered.", "user does not exist": "User does not exist.", "username: 3 to 12 characters required": "Username: 3 to 12 characters required.", + "you can not delete your account, no other user has admin rights": "You can not delete your account, no other user has admin rights.", "you do not have permissions": "You do not have permissions." }, "PAGINATION": { diff --git a/fittrackee_client/src/locales/fr/api.json b/fittrackee_client/src/locales/fr/api.json index 8f620e71..d8a2ef49 100644 --- a/fittrackee_client/src/locales/fr/api.json +++ b/fittrackee_client/src/locales/fr/api.json @@ -24,6 +24,7 @@ "successfully registered": "Inscription validée.", "user does not exist": "L'utilisateur n'existe pas", "username: 3 to 12 characters required": "Nom d'utilisateur : 3 à 12 caractères requis.", + "you can not delete your account, no other user has admin rights": "Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.", "you do not have permissions": "Vous n'avez pas les permissions nécessaires." }, "PAGINATION": {