From 6fe42f7f8cdee7d46f3f8bdc37013bbf96d1f888 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 11 Nov 2021 10:39:32 +0100 Subject: [PATCH] Client - display chart with axis starting at min elevation - fix #91 --- CHANGELOG.md | 1 + docs/_images/fittrackee_screenshot-02.png | Bin 372022 -> 375975 bytes docs/_sources/changelog.md.txt | 1 + docs/changelog.html | 1 + docs/searchindex.js | 2 +- .../_images/fittrackee_screenshot-02.png | Bin 372022 -> 375975 bytes fittrackee/dist/index.html | 2 +- ...ifest.90d775e2d744aab1ffc734560cc95fe0.js} | 16 ++++---- fittrackee/dist/service-worker.js | 2 +- .../dist/static/css/workouts.b4f73c62.css | 1 - .../dist/static/css/workouts.d0767062.css | 1 + fittrackee/dist/static/js/app.7f21cc2d.js | 2 - fittrackee/dist/static/js/app.7f21cc2d.js.map | 1 - fittrackee/dist/static/js/app.cb19dec0.js | 2 + fittrackee/dist/static/js/app.cb19dec0.js.map | 1 + .../dist/static/js/workouts.16e33b8b.js | 2 - .../dist/static/js/workouts.16e33b8b.js.map | 1 - .../dist/static/js/workouts.1c22fd12.js | 2 + .../dist/static/js/workouts.1c22fd12.js.map | 1 + .../src/components/Workout/WorkoutChart.vue | 35 +++++++++++++++--- .../src/locales/en/workouts.json | 1 + .../src/locales/fr/workouts.json | 1 + 22 files changed, 52 insertions(+), 24 deletions(-) rename fittrackee/dist/{precache-manifest.23ffc490a01d5278a49f731e9269ae72.js => precache-manifest.90d775e2d744aab1ffc734560cc95fe0.js} (94%) delete mode 100644 fittrackee/dist/static/css/workouts.b4f73c62.css create mode 100644 fittrackee/dist/static/css/workouts.d0767062.css delete mode 100644 fittrackee/dist/static/js/app.7f21cc2d.js delete mode 100644 fittrackee/dist/static/js/app.7f21cc2d.js.map create mode 100644 fittrackee/dist/static/js/app.cb19dec0.js create mode 100644 fittrackee/dist/static/js/app.cb19dec0.js.map delete mode 100644 fittrackee/dist/static/js/workouts.16e33b8b.js delete mode 100644 fittrackee/dist/static/js/workouts.16e33b8b.js.map create mode 100644 fittrackee/dist/static/js/workouts.1c22fd12.js create mode 100644 fittrackee/dist/static/js/workouts.1c22fd12.js.map diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ad416b0..fc504a9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ #### New Features +* [#91](https://github.com/SamR1/FitTrackee/issues/91) - Display elevation chart with min and max altitude of workout * [#18](https://github.com/SamR1/FitTrackee/issues/18) - Better UI #### Bugs Fixed diff --git a/docs/_images/fittrackee_screenshot-02.png b/docs/_images/fittrackee_screenshot-02.png index bc019ddd83e422e59e0d1391568b4008a27b96c1..9065e9168a603393f7cfea90d43297d39dcb19cf 100644 GIT binary patch delta 55983 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 G$NvF7$i2b< delta 52193 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

New Features

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

  • #18 - Better UI

diff --git a/docs/searchindex.js b/docs/searchindex.js index b9b3b34f..1dd35e7e 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api/auth","api/configuration","api/index","api/records","api/sports","api/stats","api/users","api/workouts","changelog","features","index","installation","troubleshooting/administrator","troubleshooting/index","troubleshooting/user"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/auth.rst","api/configuration.rst","api/index.rst","api/records.rst","api/sports.rst","api/stats.rst","api/users.rst","api/workouts.rst","changelog.md","features.rst","index.rst","installation.rst","troubleshooting/administrator.rst","troubleshooting/index.rst","troubleshooting/user.rst"],objects:{"":{"/api/auth/login":[0,0,1,"post--api-auth-login"],"/api/auth/logout":[0,1,1,"get--api-auth-logout"],"/api/auth/password/reset-request":[0,0,1,"post--api-auth-password-reset-request"],"/api/auth/password/update":[0,0,1,"post--api-auth-password-update"],"/api/auth/picture":[0,0,1,"post--api-auth-picture"],"/api/auth/profile":[0,1,1,"get--api-auth-profile"],"/api/auth/profile/edit":[0,0,1,"post--api-auth-profile-edit"],"/api/auth/register":[0,0,1,"post--api-auth-register"],"/api/config":[1,3,1,"patch--api-config"],"/api/ping":[1,1,1,"get--api-ping"],"/api/records":[3,1,1,"get--api-records"],"/api/sports":[4,1,1,"get--api-sports"],"/api/sports/(int:sport_id)":[4,3,1,"patch--api-sports-(int-sport_id)"],"/api/stats/(user_name)/by_sport":[5,1,1,"get--api-stats-(user_name)-by_sport"],"/api/stats/(user_name)/by_time":[5,1,1,"get--api-stats-(user_name)-by_time"],"/api/stats/all":[5,1,1,"get--api-stats-all"],"/api/users":[6,1,1,"get--api-users"],"/api/users/(user_name)":[6,3,1,"patch--api-users-(user_name)"],"/api/users/(user_name)/picture":[6,1,1,"get--api-users-(user_name)-picture"],"/api/workouts":[7,0,1,"post--api-workouts"],"/api/workouts/(string:workout_short_id)":[7,3,1,"patch--api-workouts-(string-workout_short_id)"],"/api/workouts/(string:workout_short_id)/chart_data":[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data"],"/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)":[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)"],"/api/workouts/(string:workout_short_id)/gpx":[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx"],"/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)":[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)"],"/api/workouts/map/(map_id)":[7,1,1,"get--api-workouts-map-(map_id)"],"/api/workouts/no_gpx":[7,0,1,"post--api-workouts-no_gpx"],"DEFAULT_STATICMAP \ud83c\udd95":[11,4,1,"envvar-DEFAULT_STATICMAP"],APP_LOG:[11,4,1,"-"],APP_SECRET_KEY:[11,4,1,"-"],APP_SETTINGS:[11,4,1,"-"],APP_WORKERS:[11,4,1,"-"],DATABASE_DISABLE_POOLING:[11,4,1,"-"],DATABASE_URL:[11,4,1,"-"],EMAIL_URL:[11,4,1,"-"],FLASK_APP:[11,4,1,"-"],HOST:[11,4,1,"-"],MAP_ATTRIBUTION:[11,4,1,"-"],PORT:[11,4,1,"-"],REDIS_URL:[11,4,1,"-"],SENDER_EMAIL:[11,4,1,"-"],TILE_SERVER_URL:[11,4,1,"-"],UI_URL:[11,4,1,"-"],UPLOAD_FOLDER:[11,4,1,"-"],VUE_APP_API_URL:[11,4,1,"-"],WEATHER_API_KEY:[11,4,1,"-"],WORKERS_PROCESSES:[11,4,1,"-"]},"/api/workouts/map_tile/(s)/(z)/(x)/(y)":{png:[7,1,1,"get--api-workouts-map_tile-(s)-(z)-(x)-(y).png"]}},objnames:{"0":["http","post","HTTP post"],"1":["http","get","HTTP get"],"2":["http","delete","HTTP delete"],"3":["http","patch","HTTP patch"],"4":["std","envvar","environment variable"]},objtypes:{"0":"http:post","1":"http:get","2":"http:delete","3":"http:patch","4":"std:envvar"},terms:{"0":[0,1,3,4,5,6,7,9,10,11],"00":[0,3,6,7],"01":[0,3,5,6,7,10],"02":[7,10],"03":[6,7,10],"04":[7,10],"06":5,"07":[0,3,6,7,10],"08":[0,3,6],"09":[0,6,10],"0mb":[0,7],"1":[0,1,3,4,5,6,7,10,11],"10":[0,1,3,6,7,10,11],"100":[7,9],"1000":5,"104":8,"1048576":1,"10485760":1,"11":[0,3,6,8,9],"12":[0,3,6,7,10],"1232004":7,"12341":5,"1234538":7,"1267":5,"127":11,"13":[7,8],"14":[0,6,7,8],"15":[5,7,10],"150":5,"156":5,"1563529507772":7,"16":[7,10],"17":[7,10,11],"178":5,"18":[0,3,6,7,8],"19":10,"2":[0,1,3,4,5,6,7,10,11],"20":6,"200":[0,1,3,4,5,6,7],"201":[0,7],"2017":[5,7],"2018":[5,7,10],"2019":[0,3,5,6,7,10],"2020":10,"2021":10,"203":5,"204":[0,6,7],"21":10,"22":[7,8],"23":10,"24":8,"25":[8,11],"26":8,"27":[0,6],"279":7,"28":8,"280":7,"282":5,"29":10,"2930":7,"2e1ee2c":8,"3":[0,4,5,6,7,9,10,11],"30":[5,10],"3000":11,"301":11,"31":[7,10],"33":8,"34":8,"34614d5":8,"36":8,"37":8,"39":7,"4":[0,4,6,7,10,11],"40":8,"400":[0,1,4,7],"401":[0,1,3,4,5,6,7],"403":[0,1,4,5,6,7],"404":[0,4,5,6,7],"41":8,"4109":7,"413":[0,7],"43":8,"44":[7,8],"443":11,"45":7,"46":[5,8],"465":11,"47":[5,7,8],"4c3fc34":8,"5":[1,4,5,6,7,9,10,11],"50":[0,6,8],"500":[0,1,4,6,7],"5000":11,"5078118":7,"5079733":7,"51":7,"53":8,"54":8,"5432":11,"57":[7,8],"58":[0,6,8],"587":11,"59":8,"6":[0,4,6,7,10],"613":5,"62":8,"63":7,"64":8,"66":8,"67":[0,6],"7":[7,10,11],"70":8,"71":8,"72":8,"7380":7,"75":8,"78":5,"79":8,"8":[0,7,10],"80":[8,11],"8025":11,"81":8,"82":8,"83":8,"84":8,"895":[0,6],"9":[0,3,6,10,11],"93":8,"95":8,"9960":5,"boolean":[1,6],"default":[5,6,7,8,11],"do":[1,4,5,6,7],"export":10,"float":7,"import":[8,11],"int":[4,7],"new":[0,9,11],"null":[0,6,7],"return":[3,7,11],"short":7,"static":[8,11],"switch":8,"true":[0,1,4,6,8,11],"try":[0,6,7],A:[6,8,9],AS:[0,3,6,7],For:11,If:[9,11],In:8,It:[8,10,12],NO:[0,6,7],NOT:[0,4,7],No:[0,6,7,8,10],Not:[4,5,6,7],OF:11,ON:11,On:11,One:11,TO:11,The:[8,9,11],There:11,To:11,WITH:11,With:11,__main__:11,_blank:11,access:11,account:[6,8],acit:7,activ:[4,8,9,10,11],adapt:11,add:[6,8,9,10],addit:11,address:11,admin:[0,1,3,4,5,6,7,8,11],administr:[0,6,7,10,13],after:[8,11],again:[0,1,3,4,5,6,7],agplv3:8,all:[3,4,5,6,11],allow:[0,1,7,8,10],along:7,alpin:9,alreadi:0,also:[8,10,11],alwai:11,an:[1,4,6,7,8,9,11],android:10,anoth:[6,11],anymor:8,apach:10,api:[0,1,3,4,5,6,7,8,9,10,11],apikei:11,app:10,app_log:11,app_secret_kei:11,app_set:11,app_work:11,applic:[0,1,3,4,5,6,7,8,9,10,11],ar:[3,7,8,9,10,11,12],arch:11,archiv:[1,8,9,11],archlinux:11,asc:6,ascent:7,attribut:11,auth:[0,1,3,4,5,6,7],auth_token:0,auth_user_id:[1,3,4,5,6,7],authent:[1,2,3,4,5,6,7,10],author:[0,1,3,4,5,6,7],avail:[3,9,10,11],ave_spe:7,ave_speed_from:7,ave_speed_to:7,averag:[3,7,8,9],axi:7,b862a77:8,b:11,background:8,backup:11,bad:[0,1,4,7],bearer:[0,1,3,4,5,6,7],becom:8,been:8,befor:[8,11],begin:11,better:8,bike:[4,7,8,9],bin:11,bio:[0,6],biographi:0,birth:[0,8],birth_dat:[0,6],bound:7,build:11,by_sport:5,by_tim:5,c:7,calcul:8,calendar:[8,9],can:[6,8,9,10,11,12],cannot:8,cd:11,chang:[9,10,11],charact:[0,8],chart:[7,8,9,11],chart_data:7,check:[1,11,12],choos:8,client:[8,11],client_max_body_s:11,clone:11,code:[0,1,3,4,5,6,7],color:8,com:[0,6,11],complet:8,config:[1,11],configur:[2,8,9,10,11],confirm:0,contact:[0,6,7],contain:[8,9,11],content:[0,1,3,4,5,6,7],contributor:[1,11],control:8,coordin:11,copi:[1,11],copyright:[1,11],correctli:8,countri:9,cp:11,creat:[0,7,8,9,11],create_app:11,created_at:[0,6],creation:[8,9],creation_d:7,credenti:[0,11],criteria:6,cross:9,current:8,custom:11,cycl:[4,8,9],d:[0,5,7],dai:8,dark:11,darkski:[8,9],dashboard:[8,10],data:[0,1,3,4,5,6,7,8,10,11],databas:[8,11,12],database_disable_pool:11,database_url:[8,11],date:[0,5,7,8,9],db:11,debian:11,default_staticmap:[8,11],defin:9,definit:8,delet:[0,6,7,8,9],depend:[8,11],deploy:10,desc:7,descent:7,describ:11,descript:11,detail:[6,8,10],develop:10,dialect:12,differ:8,directli:11,directori:[8,11],disabl:[0,8,9,11],displai:[7,8,9,10,11,12],distanc:[3,7,8,9],distance_from:7,distance_to:7,distribut:11,docker:[8,10],document:[8,10,11],doe:[5,6,7,8],don:0,down:8,download:11,dramatiq:11,drop:8,due:8,durat:[3,7,8,9],duration_from:7,duration_to:7,dure:[0,7],easi:8,edit:[0,8,9],electr:9,elev:[7,8,9,11],els:11,email:[0,6,8],email_url:11,empti:8,en:[0,6],enabl:[1,9],encount:11,end:[5,7],endpoint:[1,8],engin:[8,11,12],english:9,enter:[8,9],entiti:[0,7],entri:11,env:11,environ:[8,10,12],error:[0,1,4,6,7,8,9,11,12],europ:[0,6],evalu:[8,11],even:[8,9],exampl:[0,1,3,4,5,6,7,10,11],exc:12,exce:[0,7],exceed:8,except:6,execstart:11,exhaust:10,exist:[0,5,6,7,9,10,11],expir:[0,1,3,4,5,6,7],extens:[0,7],fa33f4d996844a5c73ecd1ae24456ab8:7,fail:[8,13],fals:[0,1,4,6,7,11],farest:[3,8,9],fd:[0,3,6,7],featur:[10,11],fetch:11,file:[0,1,7,8,9,10,11],filter:[8,9],first:[0,10],first_nam:[0,6],fitotrack:10,fittracke:[9,11,13],fittrackee_cli:11,fittrackee_init_data:11,fittrackee_upgrade_db:11,fittrackee_work:11,fix:10,flask:11,flask_app:11,flaticon:11,follow:[3,9,11,12],forbidden:[0,1,4,5,6,7],forecast:11,form:[0,7],format:[0,5,7],former:11,forrunn:10,forward:11,found:[0,4,5,6,7],fr:6,frame:5,freepik:11,french:[9,10],fri:7,from:[1,3,4,5,6,7,8,10],fullchain:11,gener:[8,11],get:[0,1,3,4,5,6,7],gif:0,git:11,github:11,given:11,gmt:[0,3,6,7],gpl:10,gpx:[7,8,9,10,11],gpx_limit_import:1,gpxpy:11,grant:11,greater:8,gunicorn:[11,12],gz:11,h:7,ha:6,handl:[0,9,11],has_workout:4,have:[1,4,5,6,7,8],he:6,header:[0,1,3,4,5,6,7],health:1,heavi:[10,11],hi:[6,8,9],hike:[4,8,9],home:11,host:11,href:[1,11],http:[0,1,3,4,5,6,7,11],hvybqybra7wwxpastwr4v2:[0,3,6],i18n:8,icon:11,id:[0,1,3,4,5,6,7],imag:[0,6,7,8,11],img:4,improv:10,incorrect:8,index:7,info:0,inform:[8,10,11],init:11,initi:11,initialis:11,insid:11,instal:[8,10],instanc:[1,9,11],integ:[1,3,4,5,6,7],interceptor:8,interfac:11,intern:[0,1,4,6,7],introduc:8,invalid:[0,1,3,4,5,6,7,8],io:11,ip:11,is_act:4,is_registration_en:1,issu:[10,11],jan:7,javascript:8,john_do:6,jpeg:6,jpg:0,js:11,json:[0,1,3,4,5,6,7],jul:[0,3,6,7],keep:[8,10,11],kei:[8,9,11],kjxavsturjvoah2wvcegef:7,km:7,label:4,languag:[0,6],larg:[0,7,9],larger:11,last:[0,11],last_nam:[0,6],latitud:7,layer:[8,11],ld:[0,3,6,7],leaflet:[7,11],least:7,less:8,librari:11,licens:[8,10],like:[9,11],limit:[8,9],link:11,linux:11,list:[8,10,11],listen:11,load:[8,12],local:[8,10,11],localhost:11,locat:[0,6,11],log:[0,1,3,4,5,6,7,10,11,12],logfil:11,login:0,logout:[0,8],longer:[8,12],longest:[3,8,9],longitud:7,m:[0,5,7],made:11,mai:[9,10,11],mailhog:11,major:8,make:[8,11],makefil:11,manag:8,mandatori:[7,8,11],map:[7,8,9,10],map_attribut:[1,11],map_id:7,map_til:7,match:0,max:[1,6,7,8],max_alt:7,max_single_file_s:1,max_spe:7,max_speed_from:7,max_speed_to:7,max_us:1,max_zip_file_s:1,maxim:7,maximum:[3,8,9],messag:[0,1,7,8],method:11,min_alt:7,minim:7,minor:10,miss:8,mobil:10,model:8,modifi:[6,8],modification_d:7,modul:11,mon:7,mondai:[5,9],montain:8,month:[5,8,9],more:[8,9,10,11],morn:7,mountain:[4,9],mous:8,move:[7,8],mpwoadmin:11,ms:[0,3,6,7],multi:11,multipart:[0,7],must:[0,1,4,8,9,11,12],mv:11,n:0,name:[0,5,6,11],nano:11,nb_sport:[0,6],nb_workout:[0,5,6],necessari:[9,11],need:11,network:11,next_workout:7,nginx:[9,11],no_gpx:7,non:[4,10],noopen:11,noreferr:11,nosuchmoduleerror:12,note:[7,8,9,11],now:[8,9,11],number:[1,6,7,8,9,11],oauth:[0,1,3,4,5,6,7],object:[0,1,4,6,7],ok:[0,1,3,4,5,6,7],one:[6,7],onli:[6,7,8,9,11],open:[10,11],openstreetmap:[1,8,11],opentrack:10,option:11,order:[6,7,8],order_bi:6,org:[1,11],os:11,other:[6,11],out:0,outdoor:[8,10,11],over:8,overwrit:11,own:[6,10],owner:[8,9],packag:[8,11],page:[6,7],pagin:[6,7],par_pag:6,paramet:[0,1,3,4,5,6,7,8,9],pari:[0,6],pars:11,part:[0,7],pass:11,password:[0,8,9,11],password_conf:0,patch:[1,4,6,7],path:11,paus:[7,8],payload:[0,1,4,7],pem:11,per:[6,7,8],per_pag:[6,7],permiss:[1,4,5,6,7],pg_dump:11,pictur:[0,6,7],ping:1,pip:11,pipenv:8,pleas:[0,1,3,4,5,6,7,8],plugin:12,png:[0,4,7,11],poetri:[8,11],point:[8,11],pong:1,pool:11,port:11,possibl:[8,10],post:[0,7],postgr:[8,12],postgresql:[8,11,12],prerequisit:10,previous_workout:7,privileg:11,privkei:11,process:[0,9,11],productionconfig:11,profil:0,project:11,provid:[0,1,3,4,5,6,7,8,9,11],proxi:11,proxy_add_x_forwarded_for:11,proxy_pass:11,proxy_redirect:11,proxy_set_head:11,pull:11,purpos:[8,11],pwd:11,py:11,pypi:10,python:[8,11],q:6,queri:[5,6,7],queue:11,r:11,rais:9,read:8,real:11,rebuild:8,rechart:7,recommend:11,record:[0,2,6,7,8,9,10],record_typ:[0,3,6,7],redi:[8,11],redis_url:11,refactor:8,regist:[0,1,11],registr:[0,1,8,9],rel:11,relat:11,releas:[10,11],remain:8,remote_addr:11,remov:9,renam:8,replac:[8,11],repo:11,repositori:11,request:[0,1,3,4,5,6,7],request_uri:11,requir:0,reset:[0,8,9],respons:[0,1,3,4,5,6,7],restart:11,restartsec:11,right:[6,8,9],rout:8,row:9,run:[4,8,9,11],runner:10,s:[6,7,8,11],sam:[0,6],same:8,samr1:11,sat:6,save:[8,9],schema:11,search:8,second:7,secret:11,see:[8,9,10,11],seem:8,segment:[7,8,9],segment_id:7,select:[0,7],send:[8,11],sender:11,sender_email:11,serv:11,server:[0,1,4,6,7,8,9,10],server_nam:11,servic:11,set:[8,9],sever:[10,11],shell:11,should:11,show:8,shown:8,side:8,signatur:[0,1,3,4,5,6,7],simpl:11,simplifi:8,sinc:11,singl:[1,6],size:[0,1,7,8,9],ski:9,sky:11,smtp:11,some:[6,7,8,10,11],sorri:0,sort:[6,7],sourc:10,spawn:11,speed:[3,7,8,9,11],spinner:8,sport:[2,5,7,8,9,10,11],sport_id:[0,3,4,5,6,7],sports_list:[0,6],sql:11,sqlalchemi:[8,11,12],ssl:11,ssl_certif:11,ssl_certificate_kei:11,standard:[8,11],standarderror:11,standardoutput:11,start:[5,7,8,9,11,13],startlimitintervalsec:11,starttl:11,stat:[5,8],staticmap:11,statist:[2,10],statu:[0,1,3,4,5,6,7],step:11,still:10,stop:11,store:10,street:10,string:[0,4,5,6,7],subdomain:7,success:[0,1,3,4,5,6,7],successfulli:0,sun:[0,3,6,7],sundai:[5,7,9],support:[8,9,12],syslog:11,syslogidentifi:11,system:11,systemd:11,t:[0,12],tar:11,target:11,task:11,term:[8,11],test:11,textarea:8,than:8,thei:11,them:10,thi:[7,8,9,10,11],thunderforest:[8,11],tile:[7,8],tile_server_url:11,time:[5,7,8,9],timezon:[0,6,8],titl:7,tl:11,todo:14,token:[0,1,3,4,5,6,7],too:[0,7],tool:11,tooltip:8,total:8,total_asc:5,total_dist:[0,5,6],total_dur:[0,5,6],track:10,trail:9,transport:[4,8,9],troubleshoot:10,type:[0,1,3,4,5,6,7,11],typescript:11,u:11,ui:8,ui_url:11,unauthor:[0,1,3,4,5,6,7],under:[10,11],unencrypt:11,unit:11,unreleas:10,unstabl:[10,11],up:[9,10],updat:[0,1,4,6,7,8,9,11],upload:[8,9,11],upload_fold:11,uploads_dir_s:5,url:[8,11,12],us:[6,7,8,10,11],user:[0,1,2,3,4,5,7,8,9,10,11,13],user_nam:[5,6],usernam:[0,6,11],uuid:[7,8],v0:11,v3:10,valid:[0,1,3,4,5,6,7,11],valu:[0,3,6,7],variabl:[8,10,12],venv:11,version:[1,10,11],view:8,virtualenv:11,vue3:11,vue:11,vue_app_api_url:11,vuex:11,wa:8,wai:11,walk:[4,8,9],wantedbi:11,warn:8,weather:[8,9,11],weather_api:11,weather_api_kei:11,weather_end:7,weather_start:7,web:[0,1,3,4,5,6,7,10,11],week:[5,8,9],weekend:8,weekm:[0,5],were:8,wget:11,when:[1,8,11],where:11,which:9,with_gpx:7,without:[5,6,7,8,9,10],worker:11,workers_process:11,workingdirectori:11,workout:[2,5,8,10],workout_d:[0,3,6,7],workout_id:[0,3,6,7],workout_short_id:7,workouts_count:6,written:11,www:[1,11],x:[7,11],xxxx:11,xzf:11,y:[0,5,7,11],yai:11,yarn:11,year:5,yet:10,you:[1,4,5,6,7,10],your:[6,10,11],z:[7,11],zip:[1,7,8,9],zoom:7},titles:["Authentication","Configuration","API documentation","Records","Sports","Statistics","Users","Workouts","Change log","Features","FitTrackee","Installation","Administrator","Troubleshooting","User"],titleterms:{"0":8,"01":8,"02":8,"03":8,"04":8,"07":8,"09":8,"1":8,"10":8,"12":8,"15":8,"16":8,"17":8,"19":8,"2":8,"2018":8,"2019":8,"2020":8,"2021":8,"21":8,"23":8,"29":8,"3":8,"30":8,"31":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"new":8,account:9,administr:[8,9,12],api:2,authent:0,avail:8,bug:8,chang:8,close:8,configur:1,content:10,dashboard:9,deploy:11,detail:9,dev:11,develop:11,docker:11,document:2,email:11,endpoint:[2,13],environ:11,fail:12,featur:[8,9],first:8,fittracke:[8,10,12],fix:8,french:8,from:11,improv:8,instal:11,issu:8,list:9,log:8,map:11,minor:8,misc:8,prerequisit:11,prod:11,product:11,pull:8,pypi:[8,11],record:3,releas:8,request:8,server:11,sourc:11,sport:4,start:12,statist:[5,8,9],tabl:10,tile:11,translat:9,troubleshoot:13,unreleas:8,upgrad:11,user:[6,14],variabl:11,version:8,workout:[7,9]}}) \ No newline at end of file +Search.setIndex({docnames:["api/auth","api/configuration","api/index","api/records","api/sports","api/stats","api/users","api/workouts","changelog","features","index","installation","troubleshooting/administrator","troubleshooting/index","troubleshooting/user"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/auth.rst","api/configuration.rst","api/index.rst","api/records.rst","api/sports.rst","api/stats.rst","api/users.rst","api/workouts.rst","changelog.md","features.rst","index.rst","installation.rst","troubleshooting/administrator.rst","troubleshooting/index.rst","troubleshooting/user.rst"],objects:{"":{"/api/auth/login":[0,0,1,"post--api-auth-login"],"/api/auth/logout":[0,1,1,"get--api-auth-logout"],"/api/auth/password/reset-request":[0,0,1,"post--api-auth-password-reset-request"],"/api/auth/password/update":[0,0,1,"post--api-auth-password-update"],"/api/auth/picture":[0,0,1,"post--api-auth-picture"],"/api/auth/profile":[0,1,1,"get--api-auth-profile"],"/api/auth/profile/edit":[0,0,1,"post--api-auth-profile-edit"],"/api/auth/register":[0,0,1,"post--api-auth-register"],"/api/config":[1,3,1,"patch--api-config"],"/api/ping":[1,1,1,"get--api-ping"],"/api/records":[3,1,1,"get--api-records"],"/api/sports":[4,1,1,"get--api-sports"],"/api/sports/(int:sport_id)":[4,3,1,"patch--api-sports-(int-sport_id)"],"/api/stats/(user_name)/by_sport":[5,1,1,"get--api-stats-(user_name)-by_sport"],"/api/stats/(user_name)/by_time":[5,1,1,"get--api-stats-(user_name)-by_time"],"/api/stats/all":[5,1,1,"get--api-stats-all"],"/api/users":[6,1,1,"get--api-users"],"/api/users/(user_name)":[6,3,1,"patch--api-users-(user_name)"],"/api/users/(user_name)/picture":[6,1,1,"get--api-users-(user_name)-picture"],"/api/workouts":[7,0,1,"post--api-workouts"],"/api/workouts/(string:workout_short_id)":[7,3,1,"patch--api-workouts-(string-workout_short_id)"],"/api/workouts/(string:workout_short_id)/chart_data":[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data"],"/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)":[7,1,1,"get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)"],"/api/workouts/(string:workout_short_id)/gpx":[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx"],"/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)":[7,1,1,"get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)"],"/api/workouts/map/(map_id)":[7,1,1,"get--api-workouts-map-(map_id)"],"/api/workouts/no_gpx":[7,0,1,"post--api-workouts-no_gpx"],"DEFAULT_STATICMAP \ud83c\udd95":[11,4,1,"envvar-DEFAULT_STATICMAP"],APP_LOG:[11,4,1,"-"],APP_SECRET_KEY:[11,4,1,"-"],APP_SETTINGS:[11,4,1,"-"],APP_WORKERS:[11,4,1,"-"],DATABASE_DISABLE_POOLING:[11,4,1,"-"],DATABASE_URL:[11,4,1,"-"],EMAIL_URL:[11,4,1,"-"],FLASK_APP:[11,4,1,"-"],HOST:[11,4,1,"-"],MAP_ATTRIBUTION:[11,4,1,"-"],PORT:[11,4,1,"-"],REDIS_URL:[11,4,1,"-"],SENDER_EMAIL:[11,4,1,"-"],TILE_SERVER_URL:[11,4,1,"-"],UI_URL:[11,4,1,"-"],UPLOAD_FOLDER:[11,4,1,"-"],VUE_APP_API_URL:[11,4,1,"-"],WEATHER_API_KEY:[11,4,1,"-"],WORKERS_PROCESSES:[11,4,1,"-"]},"/api/workouts/map_tile/(s)/(z)/(x)/(y)":{png:[7,1,1,"get--api-workouts-map_tile-(s)-(z)-(x)-(y).png"]}},objnames:{"0":["http","post","HTTP post"],"1":["http","get","HTTP get"],"2":["http","delete","HTTP delete"],"3":["http","patch","HTTP patch"],"4":["std","envvar","environment variable"]},objtypes:{"0":"http:post","1":"http:get","2":"http:delete","3":"http:patch","4":"std:envvar"},terms:{"0":[0,1,3,4,5,6,7,9,10,11],"00":[0,3,6,7],"01":[0,3,5,6,7,10],"02":[7,10],"03":[6,7,10],"04":[7,10],"06":5,"07":[0,3,6,7,10],"08":[0,3,6],"09":[0,6,10],"0mb":[0,7],"1":[0,1,3,4,5,6,7,10,11],"10":[0,1,3,6,7,10,11],"100":[7,9],"1000":5,"104":8,"1048576":1,"10485760":1,"11":[0,3,6,8,9],"12":[0,3,6,7,10],"1232004":7,"12341":5,"1234538":7,"1267":5,"127":11,"13":[7,8],"14":[0,6,7,8],"15":[5,7,10],"150":5,"156":5,"1563529507772":7,"16":[7,10],"17":[7,10,11],"178":5,"18":[0,3,6,7,8],"19":10,"2":[0,1,3,4,5,6,7,10,11],"20":6,"200":[0,1,3,4,5,6,7],"201":[0,7],"2017":[5,7],"2018":[5,7,10],"2019":[0,3,5,6,7,10],"2020":10,"2021":10,"203":5,"204":[0,6,7],"21":10,"22":[7,8],"23":10,"24":8,"25":[8,11],"26":8,"27":[0,6],"279":7,"28":8,"280":7,"282":5,"29":10,"2930":7,"2e1ee2c":8,"3":[0,4,5,6,7,9,10,11],"30":[5,10],"3000":11,"301":11,"31":[7,10],"33":8,"34":8,"34614d5":8,"36":8,"37":8,"39":7,"4":[0,4,6,7,10,11],"40":8,"400":[0,1,4,7],"401":[0,1,3,4,5,6,7],"403":[0,1,4,5,6,7],"404":[0,4,5,6,7],"41":8,"4109":7,"413":[0,7],"43":8,"44":[7,8],"443":11,"45":7,"46":[5,8],"465":11,"47":[5,7,8],"4c3fc34":8,"5":[1,4,5,6,7,9,10,11],"50":[0,6,8],"500":[0,1,4,6,7],"5000":11,"5078118":7,"5079733":7,"51":7,"53":8,"54":8,"5432":11,"57":[7,8],"58":[0,6,8],"587":11,"59":8,"6":[0,4,6,7,10],"613":5,"62":8,"63":7,"64":8,"66":8,"67":[0,6],"7":[7,10,11],"70":8,"71":8,"72":8,"7380":7,"75":8,"78":5,"79":8,"8":[0,7,10],"80":[8,11],"8025":11,"81":8,"82":8,"83":8,"84":8,"895":[0,6],"9":[0,3,6,10,11],"91":8,"93":8,"95":8,"9960":5,"boolean":[1,6],"default":[5,6,7,8,11],"do":[1,4,5,6,7],"export":10,"float":7,"import":[8,11],"int":[4,7],"new":[0,9,11],"null":[0,6,7],"return":[3,7,11],"short":7,"static":[8,11],"switch":8,"true":[0,1,4,6,8,11],"try":[0,6,7],A:[6,8,9],AS:[0,3,6,7],For:11,If:[9,11],In:8,It:[8,10,12],NO:[0,6,7],NOT:[0,4,7],No:[0,6,7,8,10],Not:[4,5,6,7],OF:11,ON:11,On:11,One:11,TO:11,The:[8,9,11],There:11,To:11,WITH:11,With:11,__main__:11,_blank:11,access:11,account:[6,8],acit:7,activ:[4,8,9,10,11],adapt:11,add:[6,8,9,10],addit:11,address:11,admin:[0,1,3,4,5,6,7,8,11],administr:[0,6,7,10,13],after:[8,11],again:[0,1,3,4,5,6,7],agplv3:8,all:[3,4,5,6,11],allow:[0,1,7,8,10],along:7,alpin:9,alreadi:0,also:[8,10,11],altitud:8,alwai:11,an:[1,4,6,7,8,9,11],android:10,anoth:[6,11],anymor:8,apach:10,api:[0,1,3,4,5,6,7,8,9,10,11],apikei:11,app:10,app_log:11,app_secret_kei:11,app_set:11,app_work:11,applic:[0,1,3,4,5,6,7,8,9,10,11],ar:[3,7,8,9,10,11,12],arch:11,archiv:[1,8,9,11],archlinux:11,asc:6,ascent:7,attribut:11,auth:[0,1,3,4,5,6,7],auth_token:0,auth_user_id:[1,3,4,5,6,7],authent:[1,2,3,4,5,6,7,10],author:[0,1,3,4,5,6,7],avail:[3,9,10,11],ave_spe:7,ave_speed_from:7,ave_speed_to:7,averag:[3,7,8,9],axi:7,b862a77:8,b:11,background:8,backup:11,bad:[0,1,4,7],bearer:[0,1,3,4,5,6,7],becom:8,been:8,befor:[8,11],begin:11,better:8,bike:[4,7,8,9],bin:11,bio:[0,6],biographi:0,birth:[0,8],birth_dat:[0,6],bound:7,build:11,by_sport:5,by_tim:5,c:7,calcul:8,calendar:[8,9],can:[6,8,9,10,11,12],cannot:8,cd:11,chang:[9,10,11],charact:[0,8],chart:[7,8,9,11],chart_data:7,check:[1,11,12],choos:8,client:[8,11],client_max_body_s:11,clone:11,code:[0,1,3,4,5,6,7],color:8,com:[0,6,11],complet:8,config:[1,11],configur:[2,8,9,10,11],confirm:0,contact:[0,6,7],contain:[8,9,11],content:[0,1,3,4,5,6,7],contributor:[1,11],control:8,coordin:11,copi:[1,11],copyright:[1,11],correctli:8,countri:9,cp:11,creat:[0,7,8,9,11],create_app:11,created_at:[0,6],creation:[8,9],creation_d:7,credenti:[0,11],criteria:6,cross:9,current:8,custom:11,cycl:[4,8,9],d:[0,5,7],dai:8,dark:11,darkski:[8,9],dashboard:[8,10],data:[0,1,3,4,5,6,7,8,10,11],databas:[8,11,12],database_disable_pool:11,database_url:[8,11],date:[0,5,7,8,9],db:11,debian:11,default_staticmap:[8,11],defin:9,definit:8,delet:[0,6,7,8,9],depend:[8,11],deploy:10,desc:7,descent:7,describ:11,descript:11,detail:[6,8,10],develop:10,dialect:12,differ:8,directli:11,directori:[8,11],disabl:[0,8,9,11],displai:[7,8,9,10,11,12],distanc:[3,7,8,9],distance_from:7,distance_to:7,distribut:11,docker:[8,10],document:[8,10,11],doe:[5,6,7,8],don:0,down:8,download:11,dramatiq:11,drop:8,due:8,durat:[3,7,8,9],duration_from:7,duration_to:7,dure:[0,7],easi:8,edit:[0,8,9],electr:9,elev:[7,8,9,11],els:11,email:[0,6,8],email_url:11,empti:8,en:[0,6],enabl:[1,9],encount:11,end:[5,7],endpoint:[1,8],engin:[8,11,12],english:9,enter:[8,9],entiti:[0,7],entri:11,env:11,environ:[8,10,12],error:[0,1,4,6,7,8,9,11,12],europ:[0,6],evalu:[8,11],even:[8,9],exampl:[0,1,3,4,5,6,7,10,11],exc:12,exce:[0,7],exceed:8,except:6,execstart:11,exhaust:10,exist:[0,5,6,7,9,10,11],expir:[0,1,3,4,5,6,7],extens:[0,7],fa33f4d996844a5c73ecd1ae24456ab8:7,fail:[8,13],fals:[0,1,4,6,7,11],farest:[3,8,9],fd:[0,3,6,7],featur:[10,11],fetch:11,file:[0,1,7,8,9,10,11],filter:[8,9],first:[0,10],first_nam:[0,6],fitotrack:10,fittracke:[9,11,13],fittrackee_cli:11,fittrackee_init_data:11,fittrackee_upgrade_db:11,fittrackee_work:11,fix:10,flask:11,flask_app:11,flaticon:11,follow:[3,9,11,12],forbidden:[0,1,4,5,6,7],forecast:11,form:[0,7],format:[0,5,7],former:11,forrunn:10,forward:11,found:[0,4,5,6,7],fr:6,frame:5,freepik:11,french:[9,10],fri:7,from:[1,3,4,5,6,7,8,10],fullchain:11,gener:[8,11],get:[0,1,3,4,5,6,7],gif:0,git:11,github:11,given:11,gmt:[0,3,6,7],gpl:10,gpx:[7,8,9,10,11],gpx_limit_import:1,gpxpy:11,grant:11,greater:8,gunicorn:[11,12],gz:11,h:7,ha:6,handl:[0,9,11],has_workout:4,have:[1,4,5,6,7,8],he:6,header:[0,1,3,4,5,6,7],health:1,heavi:[10,11],hi:[6,8,9],hike:[4,8,9],home:11,host:11,href:[1,11],http:[0,1,3,4,5,6,7,11],hvybqybra7wwxpastwr4v2:[0,3,6],i18n:8,icon:11,id:[0,1,3,4,5,6,7],imag:[0,6,7,8,11],img:4,improv:10,incorrect:8,index:7,info:0,inform:[8,10,11],init:11,initi:11,initialis:11,insid:11,instal:[8,10],instanc:[1,9,11],integ:[1,3,4,5,6,7],interceptor:8,interfac:11,intern:[0,1,4,6,7],introduc:8,invalid:[0,1,3,4,5,6,7,8],io:11,ip:11,is_act:4,is_registration_en:1,issu:[10,11],jan:7,javascript:8,john_do:6,jpeg:6,jpg:0,js:11,json:[0,1,3,4,5,6,7],jul:[0,3,6,7],keep:[8,10,11],kei:[8,9,11],kjxavsturjvoah2wvcegef:7,km:7,label:4,languag:[0,6],larg:[0,7,9],larger:11,last:[0,11],last_nam:[0,6],latitud:7,layer:[8,11],ld:[0,3,6,7],leaflet:[7,11],least:7,less:8,librari:11,licens:[8,10],like:[9,11],limit:[8,9],link:11,linux:11,list:[8,10,11],listen:11,load:[8,12],local:[8,10,11],localhost:11,locat:[0,6,11],log:[0,1,3,4,5,6,7,10,11,12],logfil:11,login:0,logout:[0,8],longer:[8,12],longest:[3,8,9],longitud:7,m:[0,5,7],made:11,mai:[9,10,11],mailhog:11,major:8,make:[8,11],makefil:11,manag:8,mandatori:[7,8,11],map:[7,8,9,10],map_attribut:[1,11],map_id:7,map_til:7,match:0,max:[1,6,7,8],max_alt:7,max_single_file_s:1,max_spe:7,max_speed_from:7,max_speed_to:7,max_us:1,max_zip_file_s:1,maxim:7,maximum:[3,8,9],messag:[0,1,7,8],method:11,min:8,min_alt:7,minim:7,minor:10,miss:8,mobil:10,model:8,modifi:[6,8],modification_d:7,modul:11,mon:7,mondai:[5,9],montain:8,month:[5,8,9],more:[8,9,10,11],morn:7,mountain:[4,9],mous:8,move:[7,8],mpwoadmin:11,ms:[0,3,6,7],multi:11,multipart:[0,7],must:[0,1,4,8,9,11,12],mv:11,n:0,name:[0,5,6,11],nano:11,nb_sport:[0,6],nb_workout:[0,5,6],necessari:[9,11],need:11,network:11,next_workout:7,nginx:[9,11],no_gpx:7,non:[4,10],noopen:11,noreferr:11,nosuchmoduleerror:12,note:[7,8,9,11],now:[8,9,11],number:[1,6,7,8,9,11],oauth:[0,1,3,4,5,6,7],object:[0,1,4,6,7],ok:[0,1,3,4,5,6,7],one:[6,7],onli:[6,7,8,9,11],open:[10,11],openstreetmap:[1,8,11],opentrack:10,option:11,order:[6,7,8],order_bi:6,org:[1,11],os:11,other:[6,11],out:0,outdoor:[8,10,11],over:8,overwrit:11,own:[6,10],owner:[8,9],packag:[8,11],page:[6,7],pagin:[6,7],par_pag:6,paramet:[0,1,3,4,5,6,7,8,9],pari:[0,6],pars:11,part:[0,7],pass:11,password:[0,8,9,11],password_conf:0,patch:[1,4,6,7],path:11,paus:[7,8],payload:[0,1,4,7],pem:11,per:[6,7,8],per_pag:[6,7],permiss:[1,4,5,6,7],pg_dump:11,pictur:[0,6,7],ping:1,pip:11,pipenv:8,pleas:[0,1,3,4,5,6,7,8],plugin:12,png:[0,4,7,11],poetri:[8,11],point:[8,11],pong:1,pool:11,port:11,possibl:[8,10],post:[0,7],postgr:[8,12],postgresql:[8,11,12],prerequisit:10,previous_workout:7,privileg:11,privkei:11,process:[0,9,11],productionconfig:11,profil:0,project:11,provid:[0,1,3,4,5,6,7,8,9,11],proxi:11,proxy_add_x_forwarded_for:11,proxy_pass:11,proxy_redirect:11,proxy_set_head:11,pull:11,purpos:[8,11],pwd:11,py:11,pypi:10,python:[8,11],q:6,queri:[5,6,7],queue:11,r:11,rais:9,read:8,real:11,rebuild:8,rechart:7,recommend:11,record:[0,2,6,7,8,9,10],record_typ:[0,3,6,7],redi:[8,11],redis_url:11,refactor:8,regist:[0,1,11],registr:[0,1,8,9],rel:11,relat:11,releas:[10,11],remain:8,remote_addr:11,remov:9,renam:8,replac:[8,11],repo:11,repositori:11,request:[0,1,3,4,5,6,7],request_uri:11,requir:0,reset:[0,8,9],respons:[0,1,3,4,5,6,7],restart:11,restartsec:11,right:[6,8,9],rout:8,row:9,run:[4,8,9,11],runner:10,s:[6,7,8,11],sam:[0,6],same:8,samr1:11,sat:6,save:[8,9],schema:11,search:8,second:7,secret:11,see:[8,9,10,11],seem:8,segment:[7,8,9],segment_id:7,select:[0,7],send:[8,11],sender:11,sender_email:11,serv:11,server:[0,1,4,6,7,8,9,10],server_nam:11,servic:11,set:[8,9],sever:[10,11],shell:11,should:11,show:8,shown:8,side:8,signatur:[0,1,3,4,5,6,7],simpl:11,simplifi:8,sinc:11,singl:[1,6],size:[0,1,7,8,9],ski:9,sky:11,smtp:11,some:[6,7,8,10,11],sorri:0,sort:[6,7],sourc:10,spawn:11,speed:[3,7,8,9,11],spinner:8,sport:[2,5,7,8,9,10,11],sport_id:[0,3,4,5,6,7],sports_list:[0,6],sql:11,sqlalchemi:[8,11,12],ssl:11,ssl_certif:11,ssl_certificate_kei:11,standard:[8,11],standarderror:11,standardoutput:11,start:[5,7,8,9,11,13],startlimitintervalsec:11,starttl:11,stat:[5,8],staticmap:11,statist:[2,10],statu:[0,1,3,4,5,6,7],step:11,still:10,stop:11,store:10,street:10,string:[0,4,5,6,7],subdomain:7,success:[0,1,3,4,5,6,7],successfulli:0,sun:[0,3,6,7],sundai:[5,7,9],support:[8,9,12],syslog:11,syslogidentifi:11,system:11,systemd:11,t:[0,12],tar:11,target:11,task:11,term:[8,11],test:11,textarea:8,than:8,thei:11,them:10,thi:[7,8,9,10,11],thunderforest:[8,11],tile:[7,8],tile_server_url:11,time:[5,7,8,9],timezon:[0,6,8],titl:7,tl:11,todo:14,token:[0,1,3,4,5,6,7],too:[0,7],tool:11,tooltip:8,total:8,total_asc:5,total_dist:[0,5,6],total_dur:[0,5,6],track:10,trail:9,transport:[4,8,9],troubleshoot:10,type:[0,1,3,4,5,6,7,11],typescript:11,u:11,ui:8,ui_url:11,unauthor:[0,1,3,4,5,6,7],under:[10,11],unencrypt:11,unit:11,unreleas:10,unstabl:[10,11],up:[9,10],updat:[0,1,4,6,7,8,9,11],upload:[8,9,11],upload_fold:11,uploads_dir_s:5,url:[8,11,12],us:[6,7,8,10,11],user:[0,1,2,3,4,5,7,8,9,10,11,13],user_nam:[5,6],usernam:[0,6,11],uuid:[7,8],v0:11,v3:10,valid:[0,1,3,4,5,6,7,11],valu:[0,3,6,7],variabl:[8,10,12],venv:11,version:[1,10,11],view:8,virtualenv:11,vue3:11,vue:11,vue_app_api_url:11,vuex:11,wa:8,wai:11,walk:[4,8,9],wantedbi:11,warn:8,weather:[8,9,11],weather_api:11,weather_api_kei:11,weather_end:7,weather_start:7,web:[0,1,3,4,5,6,7,10,11],week:[5,8,9],weekend:8,weekm:[0,5],were:8,wget:11,when:[1,8,11],where:11,which:9,with_gpx:7,without:[5,6,7,8,9,10],worker:11,workers_process:11,workingdirectori:11,workout:[2,5,8,10],workout_d:[0,3,6,7],workout_id:[0,3,6,7],workout_short_id:7,workouts_count:6,written:11,www:[1,11],x:[7,11],xxxx:11,xzf:11,y:[0,5,7,11],yai:11,yarn:11,year:5,yet:10,you:[1,4,5,6,7,10],your:[6,10,11],z:[7,11],zip:[1,7,8,9],zoom:7},titles:["Authentication","Configuration","API documentation","Records","Sports","Statistics","Users","Workouts","Change log","Features","FitTrackee","Installation","Administrator","Troubleshooting","User"],titleterms:{"0":8,"01":8,"02":8,"03":8,"04":8,"07":8,"09":8,"1":8,"10":8,"12":8,"15":8,"16":8,"17":8,"19":8,"2":8,"2018":8,"2019":8,"2020":8,"2021":8,"21":8,"23":8,"29":8,"3":8,"30":8,"31":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"new":8,account:9,administr:[8,9,12],api:2,authent:0,avail:8,bug:8,chang:8,close:8,configur:1,content:10,dashboard:9,deploy:11,detail:9,dev:11,develop:11,docker:11,document:2,email:11,endpoint:[2,13],environ:11,fail:12,featur:[8,9],first:8,fittracke:[8,10,12],fix:8,french:8,from:11,improv:8,instal:11,issu:8,list:9,log:8,map:11,minor:8,misc:8,prerequisit:11,prod:11,product:11,pull:8,pypi:[8,11],record:3,releas:8,request:8,server:11,sourc:11,sport:4,start:12,statist:[5,8,9],tabl:10,tile:11,translat:9,troubleshoot:13,unreleas:8,upgrad:11,user:[6,14],variabl:11,version:8,workout:[7,9]}}) \ No newline at end of file diff --git a/docsrc/source/_images/fittrackee_screenshot-02.png b/docsrc/source/_images/fittrackee_screenshot-02.png index bc019ddd83e422e59e0d1391568b4008a27b96c1..9065e9168a603393f7cfea90d43297d39dcb19cf 100644 GIT binary patch delta 55983 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 G$NvF7$i2b< delta 52193 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 z>FitTrackee
\ No newline at end of file +FitTrackee
\ No newline at end of file diff --git a/fittrackee/dist/precache-manifest.23ffc490a01d5278a49f731e9269ae72.js b/fittrackee/dist/precache-manifest.90d775e2d744aab1ffc734560cc95fe0.js similarity index 94% rename from fittrackee/dist/precache-manifest.23ffc490a01d5278a49f731e9269ae72.js rename to fittrackee/dist/precache-manifest.90d775e2d744aab1ffc734560cc95fe0.js index 36a25feb..64266a17 100644 --- a/fittrackee/dist/precache-manifest.23ffc490a01d5278a49f731e9269ae72.js +++ b/fittrackee/dist/precache-manifest.90d775e2d744aab1ffc734560cc95fe0.js @@ -64,7 +64,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/img/workouts/mountains.svg" }, { - "revision": "2805c227385c134ad285de42cc711727", + "revision": "30289b764f066cf8bed7d7fc17033e28", "url": "/index.html" }, { @@ -80,7 +80,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/css/admin.04e24276.css" }, { - "revision": "721008f76f229741e20e", + "revision": "9b14d931a380bf5149cf", "url": "/static/css/app.534b9c5c.css" }, { @@ -108,8 +108,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/css/reset.bd9657a8.css" }, { - "revision": "51104bdd3692f36e8e18", - "url": "/static/css/workouts.b4f73c62.css" + "revision": "5e13fc66c78986a630a0", + "url": "/static/css/workouts.d0767062.css" }, { "revision": "e719f9244c69e28e7d00e725ca1e280e", @@ -196,8 +196,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/js/admin.2f1d393d.js" }, { - "revision": "721008f76f229741e20e", - "url": "/static/js/app.7f21cc2d.js" + "revision": "9b14d931a380bf5149cf", + "url": "/static/js/app.cb19dec0.js" }, { "revision": "bd7d183c9f68e5f4027d", @@ -240,7 +240,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/js/reset.518e646f.js" }, { - "revision": "51104bdd3692f36e8e18", - "url": "/static/js/workouts.16e33b8b.js" + "revision": "5e13fc66c78986a630a0", + "url": "/static/js/workouts.1c22fd12.js" } ]); \ No newline at end of file diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index 4f4bfc79..3b85d22b 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.23ffc490a01d5278a49f731e9269ae72.js" + "/precache-manifest.90d775e2d744aab1ffc734560cc95fe0.js" ); workbox.core.setCacheNameDetails({prefix: "fittrackee_client"}); diff --git a/fittrackee/dist/static/css/workouts.b4f73c62.css b/fittrackee/dist/static/css/workouts.b4f73c62.css deleted file mode 100644 index a7c9755d..00000000 --- a/fittrackee/dist/static/css/workouts.b4f73c62.css +++ /dev/null @@ -1 +0,0 @@ -[data-v-a842653a]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-a842653a]{margin:0}#app[data-v-a842653a]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-a842653a]{color:var(--app-a-color);text-decoration:none}img[data-v-a842653a]{max-width:100%}input[data-v-a842653a],select[data-v-a842653a],textarea[data-v-a842653a]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-a842653a]:disabled,select[data-v-a842653a]:disabled,textarea[data-v-a842653a]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-a842653a] :invalid{outline:2px solid var(--input-error-color)}label[data-v-a842653a]{font-weight:700}button[data-v-a842653a]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-a842653a]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-a842653a]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-a842653a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-a842653a]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-a842653a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-a842653a]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-a842653a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-a842653a]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-a842653a]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-a842653a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-a842653a]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-a842653a]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-a842653a]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-a842653a]{display:flex;flex-direction:column}.form-box .form-items input[data-v-a842653a]{margin:10px;padding:5px}.upper[data-v-a842653a]{text-transform:uppercase}.view[data-v-a842653a]{padding-bottom:35px}.fa-trophy[data-v-a842653a]{color:var(--workout-trophy-color)}.mountains[data-v-a842653a]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-a842653a]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-a842653a]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-a842653a]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-a842653a]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-a842653a]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-a842653a]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-a842653a]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-a842653a]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-a842653a]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-a842653a]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-a842653a]{font-weight:700}.description-list dl dd[data-v-a842653a]{margin-bottom:10px}.center-card[data-v-a842653a]{margin:0 auto;width:700px}.center-card.with-margin[data-v-a842653a]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-a842653a]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-a842653a]{margin-top:0}}.center-text[data-v-a842653a]{text-align:center}.responsive-table[data-v-a842653a]{margin-bottom:15px}.responsive-table table[data-v-a842653a]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-a842653a]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-a842653a]{font-size:.95em}.responsive-table table tbody td[data-v-a842653a]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-a842653a]{border:none}.responsive-table table .cell-heading[data-v-a842653a]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-a842653a]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-a842653a]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-a842653a]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-a842653a]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-a842653a]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-a842653a]{width:100%}}.workouts-filters .form[data-v-a842653a]{display:flex;flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-a842653a]{display:flex;flex-direction:column;padding:5px}.workouts-filters .form .form-items-group .form-item[data-v-a842653a]{display:flex;flex-direction:column}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-a842653a]{display:flex;flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-a842653a]{width:34%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-a842653a]{padding:5px}.workouts-filters .form .form-items-group .form-item input[data-v-a842653a]{height:16px}.workouts-filters .form .form-items-group .form-item select[data-v-a842653a]{height:36px;padding:0 5px}.workouts-filters .form-button[data-v-a842653a]{display:flex;justify-content:center;flex-wrap:wrap;margin:5px}.workouts-filters .form-button button[data-v-a842653a]{margin-top:10px;width:100%}@media screen and (max-width:1000px){.workouts-filters .form[data-v-a842653a]{flex-direction:row;padding-top:5px}.workouts-filters .form .form-items-group[data-v-a842653a]{padding:0 5px;height:100%}.workouts-filters .form .form-items-group .form-item label[data-v-a842653a]{font-size:.9em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-a842653a]{flex-direction:column;justify-content:normal;padding:0}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-a842653a]{width:75%}.workouts-filters .form-button[data-v-a842653a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-a842653a]{margin:10px 5px;width:100%}}@media screen and (max-width:700px){.workouts-filters .form[data-v-a842653a]{flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-a842653a]{padding:5px}.workouts-filters .form .form-items-group .form-item label[data-v-a842653a]{font-size:1em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-a842653a]{flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-a842653a]{width:50%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-a842653a]{padding:5px}.workouts-filters .form-button[data-v-a842653a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-a842653a]{margin:10px 5px}}@media screen and (max-width:500px){.workouts-filters .form-button[data-v-a842653a]{flex-wrap:wrap}}[data-v-432ef8ce]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-432ef8ce]{margin:0}#app[data-v-432ef8ce]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-432ef8ce]{color:var(--app-a-color);text-decoration:none}img[data-v-432ef8ce]{max-width:100%}input[data-v-432ef8ce],select[data-v-432ef8ce],textarea[data-v-432ef8ce]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-432ef8ce]:disabled,select[data-v-432ef8ce]:disabled,textarea[data-v-432ef8ce]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-432ef8ce] :invalid{outline:2px solid var(--input-error-color)}label[data-v-432ef8ce]{font-weight:700}button[data-v-432ef8ce]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-432ef8ce]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-432ef8ce]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-432ef8ce]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-432ef8ce]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-432ef8ce]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-432ef8ce]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-432ef8ce]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-432ef8ce]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-432ef8ce]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-432ef8ce]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-432ef8ce]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-432ef8ce]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-432ef8ce]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-432ef8ce]{display:flex;flex-direction:column}.form-box .form-items input[data-v-432ef8ce]{margin:10px;padding:5px}.upper[data-v-432ef8ce]{text-transform:uppercase}.view[data-v-432ef8ce]{padding-bottom:35px}.fa-trophy[data-v-432ef8ce]{color:var(--workout-trophy-color)}.mountains[data-v-432ef8ce]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-432ef8ce]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-432ef8ce]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-432ef8ce]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-432ef8ce]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-432ef8ce]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-432ef8ce]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-432ef8ce]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-432ef8ce]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-432ef8ce]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-432ef8ce]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-432ef8ce]{font-weight:700}.description-list dl dd[data-v-432ef8ce]{margin-bottom:10px}.center-card[data-v-432ef8ce]{margin:0 auto;width:700px}.center-card.with-margin[data-v-432ef8ce]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-432ef8ce]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-432ef8ce]{margin-top:0}}.center-text[data-v-432ef8ce]{text-align:center}.responsive-table[data-v-432ef8ce]{margin-bottom:15px}.responsive-table table[data-v-432ef8ce]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-432ef8ce]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-432ef8ce]{font-size:.95em}.responsive-table table tbody td[data-v-432ef8ce]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-432ef8ce]{border:none}.responsive-table table .cell-heading[data-v-432ef8ce]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-432ef8ce]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-432ef8ce]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-432ef8ce]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-432ef8ce]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-432ef8ce]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-432ef8ce]{width:100%}}.workouts-list[data-v-432ef8ce]{display:flex;flex-direction:column;margin-bottom:50px;width:100%}.workouts-list .box[data-v-432ef8ce]{padding:10px 20px}@media screen and (max-width:700px){.workouts-list .box.empty-table[data-v-432ef8ce]{display:none}}.workouts-list .box .total[data-v-432ef8ce]{display:flex;gap:5px}.workouts-list .box .total .total-label[data-v-432ef8ce]{font-weight:700}.workouts-list .box .top-pagination[data-v-432ef8ce]{display:none}@media screen and (max-width:700px){.workouts-list .box .top-pagination[data-v-432ef8ce]{display:flex}}@media screen and (max-width:700px){.workouts-list .box[data-v-432ef8ce] .pagination-center ul{margin-top:0}}.workouts-list .box .workouts-table .sport-col[data-v-432ef8ce]{padding-right:0}.workouts-list .box .workouts-table .workout-title[data-v-432ef8ce]{max-width:90px;position:relative}.workouts-list .box .workouts-table .workout-title .fa-map-o[data-v-432ef8ce]{font-size:.75em}.workouts-list .box .workouts-table .workout-title .static-map[data-v-432ef8ce]{display:none;box-shadow:3px 3px 3px 1px #d3d3d3}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-432ef8ce]{display:block}.workouts-list .box .workouts-table .sport-img[data-v-432ef8ce]{height:20px;width:20px}@media screen and (max-width:700px){.workouts-list .box .workouts-table .sport-col[data-v-432ef8ce]{display:flex;justify-content:center;padding:10px}.workouts-list .box .workouts-table .workout-title[data-v-432ef8ce]{max-width:none}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-432ef8ce]{display:none}}.workouts-list .more-workouts[data-v-432ef8ce]{display:flex;justify-content:center;padding:10px}[data-v-ed6df5ba]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-ed6df5ba]{margin:0}#app[data-v-ed6df5ba]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-ed6df5ba]{color:var(--app-a-color);text-decoration:none}img[data-v-ed6df5ba]{max-width:100%}input[data-v-ed6df5ba],select[data-v-ed6df5ba],textarea[data-v-ed6df5ba]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-ed6df5ba]:disabled,select[data-v-ed6df5ba]:disabled,textarea[data-v-ed6df5ba]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-ed6df5ba] :invalid{outline:2px solid var(--input-error-color)}label[data-v-ed6df5ba]{font-weight:700}button[data-v-ed6df5ba]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-ed6df5ba]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-ed6df5ba]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-ed6df5ba]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-ed6df5ba]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-ed6df5ba]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-ed6df5ba]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-ed6df5ba]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-ed6df5ba]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-ed6df5ba]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-ed6df5ba]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-ed6df5ba]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-ed6df5ba]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-ed6df5ba]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-ed6df5ba]{display:flex;flex-direction:column}.form-box .form-items input[data-v-ed6df5ba]{margin:10px;padding:5px}.upper[data-v-ed6df5ba]{text-transform:uppercase}.view[data-v-ed6df5ba]{padding-bottom:35px}.fa-trophy[data-v-ed6df5ba]{color:var(--workout-trophy-color)}.mountains[data-v-ed6df5ba]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-ed6df5ba]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-ed6df5ba]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-ed6df5ba]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-ed6df5ba]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-ed6df5ba]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-ed6df5ba]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-ed6df5ba]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-ed6df5ba]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-ed6df5ba]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-ed6df5ba]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-ed6df5ba]{font-weight:700}.description-list dl dd[data-v-ed6df5ba]{margin-bottom:10px}.center-card[data-v-ed6df5ba]{margin:0 auto;width:700px}.center-card.with-margin[data-v-ed6df5ba]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-ed6df5ba]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-ed6df5ba]{margin-top:0}}.center-text[data-v-ed6df5ba]{text-align:center}.responsive-table[data-v-ed6df5ba]{margin-bottom:15px}.responsive-table table[data-v-ed6df5ba]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-ed6df5ba]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-ed6df5ba]{font-size:.95em}.responsive-table table tbody td[data-v-ed6df5ba]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-ed6df5ba]{border:none}.responsive-table table .cell-heading[data-v-ed6df5ba]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-ed6df5ba]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-ed6df5ba]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-ed6df5ba]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-ed6df5ba]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-ed6df5ba]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-ed6df5ba]{width:100%}}#workouts[data-v-ed6df5ba]{height:100%}#workouts .workouts-container[data-v-ed6df5ba]{display:flex;flex-direction:row}@media screen and (max-width:1000px){#workouts .workouts-container[data-v-ed6df5ba]{flex-direction:column}}#workouts .workouts-container .filters-container[data-v-ed6df5ba],#workouts .workouts-container .list-container[data-v-ed6df5ba]{display:flex;flex-direction:column}#workouts .workouts-container .filters-container[data-v-ed6df5ba]{width:25%}@media screen and (max-width:1000px){#workouts .workouts-container .filters-container[data-v-ed6df5ba]{width:100%}}@media screen and (max-width:1000px)and (max-width:700px){#workouts .workouts-container .filters-container.hidden[data-v-ed6df5ba]{display:none}}#workouts .workouts-container .display-filters[data-v-ed6df5ba]{display:none;font-size:.8em;padding:0 20px}#workouts .workouts-container .display-filters span[data-v-ed6df5ba]{cursor:pointer;font-weight:700;padding-left:5px}#workouts .workouts-container .display-filters .fa[data-v-ed6df5ba]{cursor:pointer}@media screen and (max-width:700px){#workouts .workouts-container .display-filters[data-v-ed6df5ba]{display:flex;justify-content:flex-end;align-items:center}}#workouts .workouts-container .list-container[data-v-ed6df5ba]{width:75%}@media screen and (max-width:1000px){#workouts .workouts-container .list-container[data-v-ed6df5ba]{width:100%}}[data-v-09b68bcb]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-09b68bcb]{margin:0}#app[data-v-09b68bcb]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-09b68bcb]{color:var(--app-a-color);text-decoration:none}img[data-v-09b68bcb]{max-width:100%}input[data-v-09b68bcb],select[data-v-09b68bcb],textarea[data-v-09b68bcb]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-09b68bcb]:disabled,select[data-v-09b68bcb]:disabled,textarea[data-v-09b68bcb]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-09b68bcb] :invalid{outline:2px solid var(--input-error-color)}label[data-v-09b68bcb]{font-weight:700}button[data-v-09b68bcb]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-09b68bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-09b68bcb]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-09b68bcb]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-09b68bcb]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-09b68bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-09b68bcb]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-09b68bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-09b68bcb]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-09b68bcb]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-09b68bcb]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-09b68bcb]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-09b68bcb]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-09b68bcb]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-09b68bcb]{display:flex;flex-direction:column}.form-box .form-items input[data-v-09b68bcb]{margin:10px;padding:5px}.upper[data-v-09b68bcb]{text-transform:uppercase}.view[data-v-09b68bcb]{padding-bottom:35px}.fa-trophy[data-v-09b68bcb]{color:var(--workout-trophy-color)}.mountains[data-v-09b68bcb]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-09b68bcb]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-09b68bcb]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-09b68bcb]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-09b68bcb]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-09b68bcb]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-09b68bcb]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-09b68bcb]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-09b68bcb]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-09b68bcb]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-09b68bcb]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-09b68bcb]{font-weight:700}.description-list dl dd[data-v-09b68bcb]{margin-bottom:10px}.center-card[data-v-09b68bcb]{margin:0 auto;width:700px}.center-card.with-margin[data-v-09b68bcb]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-09b68bcb]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-09b68bcb]{margin-top:0}}.center-text[data-v-09b68bcb]{text-align:center}.responsive-table[data-v-09b68bcb]{margin-bottom:15px}.responsive-table table[data-v-09b68bcb]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-09b68bcb]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-09b68bcb]{font-size:.95em}.responsive-table table tbody td[data-v-09b68bcb]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-09b68bcb]{border:none}.responsive-table table .cell-heading[data-v-09b68bcb]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-09b68bcb]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-09b68bcb]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-09b68bcb]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-09b68bcb]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-09b68bcb]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-09b68bcb]{width:100%}}#workout-chart[data-v-09b68bcb] .card .card-title{text-transform:capitalize}#workout-chart[data-v-09b68bcb] .card .card-content{display:flex;flex-direction:column}#workout-chart[data-v-09b68bcb] .card .card-content .chart-radio{width:100%;display:flex;justify-content:center}#workout-chart[data-v-09b68bcb] .card .card-content .chart-radio label{padding:0 10px}#workout-chart[data-v-09b68bcb] .card .card-content .no-data-cleaning{font-size:.85em;font-style:italic}@media screen and (max-width:700px){#workout-chart[data-v-09b68bcb] .card .card-content{padding:10px 0}#workout-chart[data-v-09b68bcb] .card .card-content .no-data-cleaning{padding:0 20px}}[data-v-ae31b8b2]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-ae31b8b2]{margin:0}#app[data-v-ae31b8b2]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-ae31b8b2]{color:var(--app-a-color);text-decoration:none}img[data-v-ae31b8b2]{max-width:100%}input[data-v-ae31b8b2],select[data-v-ae31b8b2],textarea[data-v-ae31b8b2]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-ae31b8b2]:disabled,select[data-v-ae31b8b2]:disabled,textarea[data-v-ae31b8b2]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-ae31b8b2] :invalid{outline:2px solid var(--input-error-color)}label[data-v-ae31b8b2]{font-weight:700}button[data-v-ae31b8b2]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-ae31b8b2]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-ae31b8b2]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-ae31b8b2]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-ae31b8b2]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-ae31b8b2]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-ae31b8b2]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-ae31b8b2]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-ae31b8b2]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-ae31b8b2]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-ae31b8b2]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-ae31b8b2]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-ae31b8b2]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-ae31b8b2]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-ae31b8b2]{display:flex;flex-direction:column}.form-box .form-items input[data-v-ae31b8b2]{margin:10px;padding:5px}.upper[data-v-ae31b8b2]{text-transform:uppercase}.view[data-v-ae31b8b2]{padding-bottom:35px}.fa-trophy[data-v-ae31b8b2]{color:var(--workout-trophy-color)}.mountains[data-v-ae31b8b2]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-ae31b8b2]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-ae31b8b2]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-ae31b8b2]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-ae31b8b2]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-ae31b8b2]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-ae31b8b2]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-ae31b8b2]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-ae31b8b2]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-ae31b8b2]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-ae31b8b2]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-ae31b8b2]{font-weight:700}.description-list dl dd[data-v-ae31b8b2]{margin-bottom:10px}.center-card[data-v-ae31b8b2]{margin:0 auto;width:700px}.center-card.with-margin[data-v-ae31b8b2]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-ae31b8b2]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-ae31b8b2]{margin-top:0}}.center-text[data-v-ae31b8b2]{text-align:center}.responsive-table[data-v-ae31b8b2]{margin-bottom:15px}.responsive-table table[data-v-ae31b8b2]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-ae31b8b2]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-ae31b8b2]{font-size:.95em}.responsive-table table tbody td[data-v-ae31b8b2]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-ae31b8b2]{border:none}.responsive-table table .cell-heading[data-v-ae31b8b2]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-ae31b8b2]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-ae31b8b2]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-ae31b8b2]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-ae31b8b2]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-ae31b8b2]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-ae31b8b2]{width:100%}}#workout-card-title[data-v-ae31b8b2]{display:flex;justify-content:space-between;align-items:center}#workout-card-title .workout-arrow[data-v-ae31b8b2]{cursor:pointer}#workout-card-title .workout-arrow.inactive[data-v-ae31b8b2]{color:var(--disabled-color);cursor:default}#workout-card-title .workout-card-title[data-v-ae31b8b2]{display:flex;flex-grow:1}#workout-card-title .workout-card-title .sport-img[data-v-ae31b8b2]{height:35px;width:35px;padding:0 10px}#workout-card-title .workout-card-title .workout-date[data-v-ae31b8b2]{font-size:.8em;font-weight:400}#workout-card-title .workout-card-title .workout-segment[data-v-ae31b8b2]{font-weight:400}#workout-card-title .workout-card-title .workout-link[data-v-ae31b8b2]{padding-left:10px}#workout-card-title .workout-card-title .fa[data-v-ae31b8b2]{padding:0 3px}@media screen and (max-width:700px){#workout-card-title .workout-card-title .fa-edit[data-v-ae31b8b2],#workout-card-title .workout-card-title .fa-trash[data-v-ae31b8b2]{border:solid 1px var(--card-border-color);border-radius:4px;margin-left:5px;padding:0 10px}}[data-v-2e8c6844]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-2e8c6844]{margin:0}#app[data-v-2e8c6844]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-2e8c6844]{color:var(--app-a-color);text-decoration:none}img[data-v-2e8c6844]{max-width:100%}input[data-v-2e8c6844],select[data-v-2e8c6844],textarea[data-v-2e8c6844]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-2e8c6844]:disabled,select[data-v-2e8c6844]:disabled,textarea[data-v-2e8c6844]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-2e8c6844] :invalid{outline:2px solid var(--input-error-color)}label[data-v-2e8c6844]{font-weight:700}button[data-v-2e8c6844]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-2e8c6844]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-2e8c6844]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-2e8c6844]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-2e8c6844]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-2e8c6844]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-2e8c6844]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-2e8c6844]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-2e8c6844]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-2e8c6844]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-2e8c6844]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-2e8c6844]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-2e8c6844]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-2e8c6844]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-2e8c6844]{display:flex;flex-direction:column}.form-box .form-items input[data-v-2e8c6844]{margin:10px;padding:5px}.upper[data-v-2e8c6844]{text-transform:uppercase}.view[data-v-2e8c6844]{padding-bottom:35px}.fa-trophy[data-v-2e8c6844]{color:var(--workout-trophy-color)}.mountains[data-v-2e8c6844]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-2e8c6844]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-2e8c6844]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-2e8c6844]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-2e8c6844]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-2e8c6844]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-2e8c6844]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-2e8c6844]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-2e8c6844]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-2e8c6844]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-2e8c6844]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-2e8c6844]{font-weight:700}.description-list dl dd[data-v-2e8c6844]{margin-bottom:10px}.center-card[data-v-2e8c6844]{margin:0 auto;width:700px}.center-card.with-margin[data-v-2e8c6844]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-2e8c6844]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-2e8c6844]{margin-top:0}}.center-text[data-v-2e8c6844]{text-align:center}.responsive-table[data-v-2e8c6844]{margin-bottom:15px}.responsive-table table[data-v-2e8c6844]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-2e8c6844]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-2e8c6844]{font-size:.95em}.responsive-table table tbody td[data-v-2e8c6844]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-2e8c6844]{border:none}.responsive-table table .cell-heading[data-v-2e8c6844]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-2e8c6844]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-2e8c6844]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-2e8c6844]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-2e8c6844]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-2e8c6844]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-2e8c6844]{width:100%}}.workout-record sup[data-v-2e8c6844]{font-size:75%;line-height:0}[data-v-599592bf]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-599592bf]{margin:0}#app[data-v-599592bf]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-599592bf]{color:var(--app-a-color);text-decoration:none}img[data-v-599592bf]{max-width:100%}input[data-v-599592bf],select[data-v-599592bf],textarea[data-v-599592bf]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-599592bf]:disabled,select[data-v-599592bf]:disabled,textarea[data-v-599592bf]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-599592bf] :invalid{outline:2px solid var(--input-error-color)}label[data-v-599592bf]{font-weight:700}button[data-v-599592bf]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-599592bf]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-599592bf]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-599592bf]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-599592bf]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-599592bf]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-599592bf]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-599592bf]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-599592bf]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-599592bf]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-599592bf]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-599592bf]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-599592bf]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-599592bf]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-599592bf]{display:flex;flex-direction:column}.form-box .form-items input[data-v-599592bf]{margin:10px;padding:5px}.upper[data-v-599592bf]{text-transform:uppercase}.view[data-v-599592bf]{padding-bottom:35px}.fa-trophy[data-v-599592bf]{color:var(--workout-trophy-color)}.mountains[data-v-599592bf]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-599592bf]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-599592bf]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-599592bf]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-599592bf]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-599592bf]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-599592bf]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-599592bf]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-599592bf]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-599592bf]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-599592bf]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-599592bf]{font-weight:700}.description-list dl dd[data-v-599592bf]{margin-bottom:10px}.center-card[data-v-599592bf]{margin:0 auto;width:700px}.center-card.with-margin[data-v-599592bf]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-599592bf]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-599592bf]{margin-top:0}}.center-text[data-v-599592bf]{text-align:center}.responsive-table[data-v-599592bf]{margin-bottom:15px}.responsive-table table[data-v-599592bf]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-599592bf]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-599592bf]{font-size:.95em}.responsive-table table tbody td[data-v-599592bf]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-599592bf]{border:none}.responsive-table table .cell-heading[data-v-599592bf]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-599592bf]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-599592bf]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-599592bf]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-599592bf]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-599592bf]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-599592bf]{width:100%}}#workout-weather[data-v-599592bf]{padding-top:10px}#workout-weather .weather-img[data-v-599592bf]{height:30px;filter:var(--workout-img-color)}#workout-weather .weather-img-small[data-v-599592bf]{height:20px}#workout-weather .weather-table[data-v-599592bf]{width:100%;text-align:center}#workout-weather .weather-table .weather-th[data-v-599592bf]{display:flex;flex-direction:column;text-transform:capitalize}#workout-weather .weather-table tbody[data-v-599592bf]{font-size:.8em}[data-v-47565031]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-47565031]{margin:0}#app[data-v-47565031]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-47565031]{color:var(--app-a-color);text-decoration:none}img[data-v-47565031]{max-width:100%}input[data-v-47565031],select[data-v-47565031],textarea[data-v-47565031]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-47565031]:disabled,select[data-v-47565031]:disabled,textarea[data-v-47565031]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-47565031] :invalid{outline:2px solid var(--input-error-color)}label[data-v-47565031]{font-weight:700}button[data-v-47565031]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-47565031]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-47565031]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-47565031]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-47565031]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-47565031]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-47565031]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-47565031]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-47565031]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-47565031]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-47565031]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-47565031]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-47565031]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-47565031]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-47565031]{display:flex;flex-direction:column}.form-box .form-items input[data-v-47565031]{margin:10px;padding:5px}.upper[data-v-47565031]{text-transform:uppercase}.view[data-v-47565031]{padding-bottom:35px}.fa-trophy[data-v-47565031]{color:var(--workout-trophy-color)}.mountains[data-v-47565031]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-47565031]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-47565031]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-47565031]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-47565031]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-47565031]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-47565031]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-47565031]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-47565031]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-47565031]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-47565031]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-47565031]{font-weight:700}.description-list dl dd[data-v-47565031]{margin-bottom:10px}.center-card[data-v-47565031]{margin:0 auto;width:700px}.center-card.with-margin[data-v-47565031]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-47565031]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-47565031]{margin-top:0}}.center-text[data-v-47565031]{text-align:center}.responsive-table[data-v-47565031]{margin-bottom:15px}.responsive-table table[data-v-47565031]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-47565031]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-47565031]{font-size:.95em}.responsive-table table tbody td[data-v-47565031]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-47565031]{border:none}.responsive-table table .cell-heading[data-v-47565031]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-47565031]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-47565031]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-47565031]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-47565031]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-47565031]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-47565031]{width:100%}}#workout-info[data-v-47565031]{display:flex;flex-direction:column;padding:10px 20px;width:100%}#workout-info .workout-data[data-v-47565031]{text-transform:capitalize;padding:5px 0}#workout-info .workout-data span[data-v-47565031]{font-weight:700;text-transform:lowercase}@media screen and (max-width:700px){#workout-info[data-v-47565031]{padding:10px}}[data-v-b4b3006a]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-b4b3006a]{margin:0}#app[data-v-b4b3006a]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-b4b3006a]{color:var(--app-a-color);text-decoration:none}img[data-v-b4b3006a]{max-width:100%}input[data-v-b4b3006a],select[data-v-b4b3006a],textarea[data-v-b4b3006a]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-b4b3006a]:disabled,select[data-v-b4b3006a]:disabled,textarea[data-v-b4b3006a]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-b4b3006a] :invalid{outline:2px solid var(--input-error-color)}label[data-v-b4b3006a]{font-weight:700}button[data-v-b4b3006a]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-b4b3006a]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-b4b3006a]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-b4b3006a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-b4b3006a]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-b4b3006a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-b4b3006a]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-b4b3006a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-b4b3006a]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-b4b3006a]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-b4b3006a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-b4b3006a]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-b4b3006a]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-b4b3006a]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-b4b3006a]{display:flex;flex-direction:column}.form-box .form-items input[data-v-b4b3006a]{margin:10px;padding:5px}.upper[data-v-b4b3006a]{text-transform:uppercase}.view[data-v-b4b3006a]{padding-bottom:35px}.fa-trophy[data-v-b4b3006a]{color:var(--workout-trophy-color)}.mountains[data-v-b4b3006a]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-b4b3006a]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-b4b3006a]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-b4b3006a]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-b4b3006a]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-b4b3006a]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-b4b3006a]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-b4b3006a]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-b4b3006a]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-b4b3006a]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-b4b3006a]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-b4b3006a]{font-weight:700}.description-list dl dd[data-v-b4b3006a]{margin-bottom:10px}.center-card[data-v-b4b3006a]{margin:0 auto;width:700px}.center-card.with-margin[data-v-b4b3006a]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-b4b3006a]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-b4b3006a]{margin-top:0}}.center-text[data-v-b4b3006a]{text-align:center}.responsive-table[data-v-b4b3006a]{margin-bottom:15px}.responsive-table table[data-v-b4b3006a]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-b4b3006a]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-b4b3006a]{font-size:.95em}.responsive-table table tbody td[data-v-b4b3006a]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-b4b3006a]{border:none}.responsive-table table .cell-heading[data-v-b4b3006a]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-b4b3006a]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-b4b3006a]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-b4b3006a]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-b4b3006a]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-b4b3006a]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-b4b3006a]{width:100%}}#workout-map[data-v-b4b3006a]{padding:10px 0}#workout-map .leaflet-container[data-v-b4b3006a],#workout-map .no-map[data-v-b4b3006a]{height:400px;width:600px}#workout-map .no-map[data-v-b4b3006a]{line-height:400px}@media screen and (max-width:700px){#workout-map[data-v-b4b3006a]{padding:0}#workout-map .leaflet-container[data-v-b4b3006a]{width:100%;height:300px}#workout-map .no-map[data-v-b4b3006a]{display:none}}[data-v-45d17286]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-45d17286]{margin:0}#app[data-v-45d17286]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-45d17286]{color:var(--app-a-color);text-decoration:none}img[data-v-45d17286]{max-width:100%}input[data-v-45d17286],select[data-v-45d17286],textarea[data-v-45d17286]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-45d17286]:disabled,select[data-v-45d17286]:disabled,textarea[data-v-45d17286]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-45d17286] :invalid{outline:2px solid var(--input-error-color)}label[data-v-45d17286]{font-weight:700}button[data-v-45d17286]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-45d17286]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-45d17286]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-45d17286]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-45d17286]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-45d17286]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-45d17286]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-45d17286]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-45d17286]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-45d17286]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-45d17286]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-45d17286]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-45d17286]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-45d17286]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-45d17286]{display:flex;flex-direction:column}.form-box .form-items input[data-v-45d17286]{margin:10px;padding:5px}.upper[data-v-45d17286]{text-transform:uppercase}.view[data-v-45d17286]{padding-bottom:35px}.fa-trophy[data-v-45d17286]{color:var(--workout-trophy-color)}.mountains[data-v-45d17286]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-45d17286]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-45d17286]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-45d17286]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-45d17286]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-45d17286]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-45d17286]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-45d17286]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-45d17286]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-45d17286]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-45d17286]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-45d17286]{font-weight:700}.description-list dl dd[data-v-45d17286]{margin-bottom:10px}.center-card[data-v-45d17286]{margin:0 auto;width:700px}.center-card.with-margin[data-v-45d17286]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-45d17286]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-45d17286]{margin-top:0}}.center-text[data-v-45d17286]{text-align:center}.responsive-table[data-v-45d17286]{margin-bottom:15px}.responsive-table table[data-v-45d17286]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-45d17286]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-45d17286]{font-size:.95em}.responsive-table table tbody td[data-v-45d17286]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-45d17286]{border:none}.responsive-table table .cell-heading[data-v-45d17286]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-45d17286]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-45d17286]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-45d17286]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-45d17286]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-45d17286]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-45d17286]{width:100%}}.workout-detail[data-v-45d17286]{display:flex}.workout-detail[data-v-45d17286] .card{width:100%}.workout-detail[data-v-45d17286] .card .card-content{display:flex;flex-direction:row}@media screen and (max-width:1000px){.workout-detail[data-v-45d17286] .card .card-content{flex-direction:column}}[data-v-64197f7a]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-64197f7a]{margin:0}#app[data-v-64197f7a]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-64197f7a]{color:var(--app-a-color);text-decoration:none}img[data-v-64197f7a]{max-width:100%}input[data-v-64197f7a],select[data-v-64197f7a],textarea[data-v-64197f7a]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-64197f7a]:disabled,select[data-v-64197f7a]:disabled,textarea[data-v-64197f7a]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-64197f7a] :invalid{outline:2px solid var(--input-error-color)}label[data-v-64197f7a]{font-weight:700}button[data-v-64197f7a]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-64197f7a]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-64197f7a]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-64197f7a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-64197f7a]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-64197f7a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-64197f7a]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-64197f7a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-64197f7a]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-64197f7a]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-64197f7a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-64197f7a]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-64197f7a]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-64197f7a]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-64197f7a]{display:flex;flex-direction:column}.form-box .form-items input[data-v-64197f7a]{margin:10px;padding:5px}.upper[data-v-64197f7a]{text-transform:uppercase}.view[data-v-64197f7a]{padding-bottom:35px}.fa-trophy[data-v-64197f7a]{color:var(--workout-trophy-color)}.mountains[data-v-64197f7a]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-64197f7a]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-64197f7a]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-64197f7a]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-64197f7a]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-64197f7a]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-64197f7a]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-64197f7a]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-64197f7a]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-64197f7a]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-64197f7a]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-64197f7a]{font-weight:700}.description-list dl dd[data-v-64197f7a]{margin-bottom:10px}.center-card[data-v-64197f7a]{margin:0 auto;width:700px}.center-card.with-margin[data-v-64197f7a]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-64197f7a]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-64197f7a]{margin-top:0}}.center-text[data-v-64197f7a]{text-align:center}.responsive-table[data-v-64197f7a]{margin-bottom:15px}.responsive-table table[data-v-64197f7a]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-64197f7a]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-64197f7a]{font-size:.95em}.responsive-table table tbody td[data-v-64197f7a]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-64197f7a]{border:none}.responsive-table table .cell-heading[data-v-64197f7a]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-64197f7a]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-64197f7a]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-64197f7a]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-64197f7a]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-64197f7a]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-64197f7a]{width:100%}}#workout-note[data-v-64197f7a] .card-content{font-style:italic;white-space:pre-wrap}[data-v-2a948bcb]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-2a948bcb]{margin:0}#app[data-v-2a948bcb]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-2a948bcb]{color:var(--app-a-color);text-decoration:none}img[data-v-2a948bcb]{max-width:100%}input[data-v-2a948bcb],select[data-v-2a948bcb],textarea[data-v-2a948bcb]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-2a948bcb]:disabled,select[data-v-2a948bcb]:disabled,textarea[data-v-2a948bcb]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-2a948bcb] :invalid{outline:2px solid var(--input-error-color)}label[data-v-2a948bcb]{font-weight:700}button[data-v-2a948bcb]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-2a948bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-2a948bcb]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-2a948bcb]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-2a948bcb]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-2a948bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-2a948bcb]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-2a948bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-2a948bcb]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-2a948bcb]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-2a948bcb]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-2a948bcb]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-2a948bcb]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-2a948bcb]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-2a948bcb]{display:flex;flex-direction:column}.form-box .form-items input[data-v-2a948bcb]{margin:10px;padding:5px}.upper[data-v-2a948bcb]{text-transform:uppercase}.view[data-v-2a948bcb]{padding-bottom:35px}.fa-trophy[data-v-2a948bcb]{color:var(--workout-trophy-color)}.mountains[data-v-2a948bcb]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-2a948bcb]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-2a948bcb]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-2a948bcb]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-2a948bcb]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-2a948bcb]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-2a948bcb]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-2a948bcb]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-2a948bcb]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-2a948bcb]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-2a948bcb]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-2a948bcb]{font-weight:700}.description-list dl dd[data-v-2a948bcb]{margin-bottom:10px}.center-card[data-v-2a948bcb]{margin:0 auto;width:700px}.center-card.with-margin[data-v-2a948bcb]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-2a948bcb]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-2a948bcb]{margin-top:0}}.center-text[data-v-2a948bcb]{text-align:center}.responsive-table[data-v-2a948bcb]{margin-bottom:15px}.responsive-table table[data-v-2a948bcb]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-2a948bcb]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-2a948bcb]{font-size:.95em}.responsive-table table tbody td[data-v-2a948bcb]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-2a948bcb]{border:none}.responsive-table table .cell-heading[data-v-2a948bcb]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-2a948bcb]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-2a948bcb]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-2a948bcb]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-2a948bcb]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-2a948bcb]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-2a948bcb]{width:100%}}#workout-segments[data-v-2a948bcb] .card .card-title{text-transform:capitalize}#workout-segments[data-v-2a948bcb] .card .card-content{padding-bottom:0;padding-top:0}#workout-segments[data-v-2a948bcb] .card .card-content a{font-weight:700}#workout-segments[data-v-2a948bcb] .card .card-content ul{padding:0 10px;list-style:square}[data-v-87defaa4]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-87defaa4]{margin:0}#app[data-v-87defaa4]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-87defaa4]{color:var(--app-a-color);text-decoration:none}img[data-v-87defaa4]{max-width:100%}input[data-v-87defaa4],select[data-v-87defaa4],textarea[data-v-87defaa4]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-87defaa4]:disabled,select[data-v-87defaa4]:disabled,textarea[data-v-87defaa4]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-87defaa4] :invalid{outline:2px solid var(--input-error-color)}label[data-v-87defaa4]{font-weight:700}button[data-v-87defaa4]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-87defaa4]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-87defaa4]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-87defaa4]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-87defaa4]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-87defaa4]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-87defaa4]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-87defaa4]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-87defaa4]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-87defaa4]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-87defaa4]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-87defaa4]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-87defaa4]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-87defaa4]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-87defaa4]{display:flex;flex-direction:column}.form-box .form-items input[data-v-87defaa4]{margin:10px;padding:5px}.upper[data-v-87defaa4]{text-transform:uppercase}.view[data-v-87defaa4]{padding-bottom:35px}.fa-trophy[data-v-87defaa4]{color:var(--workout-trophy-color)}.mountains[data-v-87defaa4]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-87defaa4]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-87defaa4]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-87defaa4]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-87defaa4]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-87defaa4]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-87defaa4]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-87defaa4]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-87defaa4]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-87defaa4]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-87defaa4]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-87defaa4]{font-weight:700}.description-list dl dd[data-v-87defaa4]{margin-bottom:10px}.center-card[data-v-87defaa4]{margin:0 auto;width:700px}.center-card.with-margin[data-v-87defaa4]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-87defaa4]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-87defaa4]{margin-top:0}}.center-text[data-v-87defaa4]{text-align:center}.responsive-table[data-v-87defaa4]{margin-bottom:15px}.responsive-table table[data-v-87defaa4]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-87defaa4]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-87defaa4]{font-size:.95em}.responsive-table table tbody td[data-v-87defaa4]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-87defaa4]{border:none}.responsive-table table .cell-heading[data-v-87defaa4]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-87defaa4]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-87defaa4]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-87defaa4]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-87defaa4]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-87defaa4]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-87defaa4]{width:100%}}#workout[data-v-87defaa4]{display:flex}#workout .container[data-v-87defaa4]{width:100%;padding:0}#workout .container .workout-container[data-v-87defaa4]{width:100%}#workout .container .workout-loading[data-v-87defaa4]{height:calc(100vh - 130px);width:100%}#workout .container .workout-loading .loading[data-v-87defaa4]{display:flex;align-items:center;height:100%}[data-v-20a704bc]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(../../static/fonts/pt-sans-v9-latin-regular.c2a4d575.eot);src:local("PT Sans"),local("PTSans-Regular"),url(../../static/fonts/pt-sans-v9-latin-regular.c2a4d575.eot?#iefix) format("embedded-opentype"),url(../../static/fonts/pt-sans-v9-latin-regular.198d320b.woff2) format("woff2"),url(../../static/fonts/pt-sans-v9-latin-regular.399a9357.woff) format("woff"),url(../../static/fonts/pt-sans-v9-latin-regular.4ffa4616.ttf) format("truetype"),url(../../static/img/pt-sans-v9-latin-regular.f1f73e45.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(../../static/fonts/pt-sans-v9-latin-italic.d5f81343.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(../../static/fonts/pt-sans-v9-latin-italic.d5f81343.eot?#iefix) format("embedded-opentype"),url(../../static/fonts/pt-sans-v9-latin-italic.57d98c19.woff2) format("woff2"),url(../../static/fonts/pt-sans-v9-latin-italic.de9540fd.woff) format("woff"),url(../../static/fonts/pt-sans-v9-latin-italic.4ef1aece.ttf) format("truetype"),url(../../static/img/pt-sans-v9-latin-italic.648d3351.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(../../static/fonts/pt-sans-v9-latin-700.1db19001.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(../../static/fonts/pt-sans-v9-latin-700.1db19001.eot?#iefix) format("embedded-opentype"),url(../../static/fonts/pt-sans-v9-latin-700.f6d5807c.woff2) format("woff2"),url(../../static/fonts/pt-sans-v9-latin-700.e86e8add.woff) format("woff"),url(../../static/fonts/pt-sans-v9-latin-700.6078a795.ttf) format("truetype"),url(../../static/img/pt-sans-v9-latin-700.061c8566.svg#PTSans) format("svg")}body[data-v-20a704bc]{margin:0}#app[data-v-20a704bc]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-20a704bc]{color:var(--app-a-color);text-decoration:none}img[data-v-20a704bc]{max-width:100%}input[data-v-20a704bc],select[data-v-20a704bc],textarea[data-v-20a704bc]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-20a704bc]:disabled,select[data-v-20a704bc]:disabled,textarea[data-v-20a704bc]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-20a704bc] :invalid{outline:2px solid var(--input-error-color)}label[data-v-20a704bc]{font-weight:700}button[data-v-20a704bc]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-20a704bc]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-20a704bc]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-20a704bc]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-20a704bc]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-20a704bc]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-20a704bc]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-20a704bc]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-20a704bc]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-20a704bc]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-20a704bc]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-20a704bc]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-20a704bc]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-20a704bc]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-20a704bc]{display:flex;flex-direction:column}.form-box .form-items input[data-v-20a704bc]{margin:10px;padding:5px}.upper[data-v-20a704bc]{text-transform:uppercase}.view[data-v-20a704bc]{padding-bottom:35px}.fa-trophy[data-v-20a704bc]{color:var(--workout-trophy-color)}.mountains[data-v-20a704bc]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-20a704bc]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-20a704bc]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-20a704bc]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-20a704bc]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-20a704bc]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-20a704bc]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-20a704bc]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-20a704bc]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-20a704bc]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-20a704bc]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-20a704bc]{font-weight:700}.description-list dl dd[data-v-20a704bc]{margin-bottom:10px}.center-card[data-v-20a704bc]{margin:0 auto;width:700px}.center-card.with-margin[data-v-20a704bc]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-20a704bc]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-20a704bc]{margin-top:0}}.center-text[data-v-20a704bc]{text-align:center}.responsive-table[data-v-20a704bc]{margin-bottom:15px}.responsive-table table[data-v-20a704bc]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-20a704bc]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-20a704bc]{font-size:.95em}.responsive-table table tbody td[data-v-20a704bc]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-20a704bc]{border:none}.responsive-table table .cell-heading[data-v-20a704bc]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-20a704bc]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-20a704bc]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-20a704bc]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-20a704bc]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-20a704bc]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-20a704bc]{width:100%}}@media screen and (max-width:700px){#workout-edition.center-form[data-v-20a704bc]{margin:50px auto}}#workout-edition[data-v-20a704bc] .card .card-title{text-align:center;text-transform:uppercase}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content{padding:10px 0}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items{display:flex;flex-direction:column}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items input{height:20px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .workout-date-duration{display:flex;flex-direction:row;justify-content:space-between}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .workout-date-duration{flex-direction:column}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item .workout-date-time{display:flex}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item .workout-date-time #workout-date{margin-right:10px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item .workout-duration{width:25px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio{display:flex;justify-content:space-around}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio label{font-weight:400}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio label{font-size:.9em}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio input{margin-top:-2px;vertical-align:middle}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-buttons{display:flex;justify-content:flex-end}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-buttons button{margin:5px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help{display:flex;justify-content:space-around;margin-top:10px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help div{display:flex}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help div{flex-direction:column}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help div ul{margin:0;padding:0 20px} \ No newline at end of file diff --git a/fittrackee/dist/static/css/workouts.d0767062.css b/fittrackee/dist/static/css/workouts.d0767062.css new file mode 100644 index 00000000..699b687c --- /dev/null +++ b/fittrackee/dist/static/css/workouts.d0767062.css @@ -0,0 +1 @@ +[data-v-a842653a]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-a842653a]{margin:0}#app[data-v-a842653a]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-a842653a]{color:var(--app-a-color);text-decoration:none}img[data-v-a842653a]{max-width:100%}input[data-v-a842653a],select[data-v-a842653a],textarea[data-v-a842653a]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-a842653a]:disabled,select[data-v-a842653a]:disabled,textarea[data-v-a842653a]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-a842653a] :invalid{outline:2px solid var(--input-error-color)}label[data-v-a842653a]{font-weight:700}button[data-v-a842653a]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-a842653a]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-a842653a]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-a842653a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-a842653a]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-a842653a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-a842653a]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-a842653a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-a842653a]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-a842653a]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-a842653a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-a842653a]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-a842653a]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-a842653a]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-a842653a]{display:flex;flex-direction:column}.form-box .form-items input[data-v-a842653a]{margin:10px;padding:5px}.upper[data-v-a842653a]{text-transform:uppercase}.view[data-v-a842653a]{padding-bottom:35px}.fa-trophy[data-v-a842653a]{color:var(--workout-trophy-color)}.mountains[data-v-a842653a]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-a842653a]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-a842653a]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-a842653a]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-a842653a]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-a842653a]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-a842653a]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-a842653a]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-a842653a]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-a842653a]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-a842653a]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-a842653a]{font-weight:700}.description-list dl dd[data-v-a842653a]{margin-bottom:10px}.center-card[data-v-a842653a]{margin:0 auto;width:700px}.center-card.with-margin[data-v-a842653a]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-a842653a]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-a842653a]{margin-top:0}}.center-text[data-v-a842653a]{text-align:center}.responsive-table[data-v-a842653a]{margin-bottom:15px}.responsive-table table[data-v-a842653a]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-a842653a]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-a842653a]{font-size:.95em}.responsive-table table tbody td[data-v-a842653a]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-a842653a]{border:none}.responsive-table table .cell-heading[data-v-a842653a]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-a842653a]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-a842653a]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-a842653a]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-a842653a]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-a842653a]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-a842653a]{width:100%}}.workouts-filters .form[data-v-a842653a]{display:flex;flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-a842653a]{display:flex;flex-direction:column;padding:5px}.workouts-filters .form .form-items-group .form-item[data-v-a842653a]{display:flex;flex-direction:column}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-a842653a]{display:flex;flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-a842653a]{width:34%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-a842653a]{padding:5px}.workouts-filters .form .form-items-group .form-item input[data-v-a842653a]{height:16px}.workouts-filters .form .form-items-group .form-item select[data-v-a842653a]{height:36px;padding:0 5px}.workouts-filters .form-button[data-v-a842653a]{display:flex;justify-content:center;flex-wrap:wrap;margin:5px}.workouts-filters .form-button button[data-v-a842653a]{margin-top:10px;width:100%}@media screen and (max-width:1000px){.workouts-filters .form[data-v-a842653a]{flex-direction:row;padding-top:5px}.workouts-filters .form .form-items-group[data-v-a842653a]{padding:0 5px;height:100%}.workouts-filters .form .form-items-group .form-item label[data-v-a842653a]{font-size:.9em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-a842653a]{flex-direction:column;justify-content:normal;padding:0}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-a842653a]{width:75%}.workouts-filters .form-button[data-v-a842653a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-a842653a]{margin:10px 5px;width:100%}}@media screen and (max-width:700px){.workouts-filters .form[data-v-a842653a]{flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-a842653a]{padding:5px}.workouts-filters .form .form-items-group .form-item label[data-v-a842653a]{font-size:1em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-a842653a]{flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-a842653a]{width:50%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-a842653a]{padding:5px}.workouts-filters .form-button[data-v-a842653a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-a842653a]{margin:10px 5px}}@media screen and (max-width:500px){.workouts-filters .form-button[data-v-a842653a]{flex-wrap:wrap}}[data-v-432ef8ce]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-432ef8ce]{margin:0}#app[data-v-432ef8ce]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-432ef8ce]{color:var(--app-a-color);text-decoration:none}img[data-v-432ef8ce]{max-width:100%}input[data-v-432ef8ce],select[data-v-432ef8ce],textarea[data-v-432ef8ce]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-432ef8ce]:disabled,select[data-v-432ef8ce]:disabled,textarea[data-v-432ef8ce]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-432ef8ce] :invalid{outline:2px solid var(--input-error-color)}label[data-v-432ef8ce]{font-weight:700}button[data-v-432ef8ce]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-432ef8ce]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-432ef8ce]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-432ef8ce]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-432ef8ce]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-432ef8ce]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-432ef8ce]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-432ef8ce]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-432ef8ce]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-432ef8ce]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-432ef8ce]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-432ef8ce]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-432ef8ce]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-432ef8ce]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-432ef8ce]{display:flex;flex-direction:column}.form-box .form-items input[data-v-432ef8ce]{margin:10px;padding:5px}.upper[data-v-432ef8ce]{text-transform:uppercase}.view[data-v-432ef8ce]{padding-bottom:35px}.fa-trophy[data-v-432ef8ce]{color:var(--workout-trophy-color)}.mountains[data-v-432ef8ce]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-432ef8ce]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-432ef8ce]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-432ef8ce]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-432ef8ce]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-432ef8ce]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-432ef8ce]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-432ef8ce]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-432ef8ce]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-432ef8ce]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-432ef8ce]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-432ef8ce]{font-weight:700}.description-list dl dd[data-v-432ef8ce]{margin-bottom:10px}.center-card[data-v-432ef8ce]{margin:0 auto;width:700px}.center-card.with-margin[data-v-432ef8ce]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-432ef8ce]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-432ef8ce]{margin-top:0}}.center-text[data-v-432ef8ce]{text-align:center}.responsive-table[data-v-432ef8ce]{margin-bottom:15px}.responsive-table table[data-v-432ef8ce]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-432ef8ce]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-432ef8ce]{font-size:.95em}.responsive-table table tbody td[data-v-432ef8ce]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-432ef8ce]{border:none}.responsive-table table .cell-heading[data-v-432ef8ce]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-432ef8ce]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-432ef8ce]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-432ef8ce]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-432ef8ce]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-432ef8ce]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-432ef8ce]{width:100%}}.workouts-list[data-v-432ef8ce]{display:flex;flex-direction:column;margin-bottom:50px;width:100%}.workouts-list .box[data-v-432ef8ce]{padding:10px 20px}@media screen and (max-width:700px){.workouts-list .box.empty-table[data-v-432ef8ce]{display:none}}.workouts-list .box .total[data-v-432ef8ce]{display:flex;gap:5px}.workouts-list .box .total .total-label[data-v-432ef8ce]{font-weight:700}.workouts-list .box .top-pagination[data-v-432ef8ce]{display:none}@media screen and (max-width:700px){.workouts-list .box .top-pagination[data-v-432ef8ce]{display:flex}}@media screen and (max-width:700px){.workouts-list .box[data-v-432ef8ce] .pagination-center ul{margin-top:0}}.workouts-list .box .workouts-table .sport-col[data-v-432ef8ce]{padding-right:0}.workouts-list .box .workouts-table .workout-title[data-v-432ef8ce]{max-width:90px;position:relative}.workouts-list .box .workouts-table .workout-title .fa-map-o[data-v-432ef8ce]{font-size:.75em}.workouts-list .box .workouts-table .workout-title .static-map[data-v-432ef8ce]{display:none;box-shadow:3px 3px 3px 1px #d3d3d3}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-432ef8ce]{display:block}.workouts-list .box .workouts-table .sport-img[data-v-432ef8ce]{height:20px;width:20px}@media screen and (max-width:700px){.workouts-list .box .workouts-table .sport-col[data-v-432ef8ce]{display:flex;justify-content:center;padding:10px}.workouts-list .box .workouts-table .workout-title[data-v-432ef8ce]{max-width:none}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-432ef8ce]{display:none}}.workouts-list .more-workouts[data-v-432ef8ce]{display:flex;justify-content:center;padding:10px}[data-v-ed6df5ba]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-ed6df5ba]{margin:0}#app[data-v-ed6df5ba]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-ed6df5ba]{color:var(--app-a-color);text-decoration:none}img[data-v-ed6df5ba]{max-width:100%}input[data-v-ed6df5ba],select[data-v-ed6df5ba],textarea[data-v-ed6df5ba]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-ed6df5ba]:disabled,select[data-v-ed6df5ba]:disabled,textarea[data-v-ed6df5ba]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-ed6df5ba] :invalid{outline:2px solid var(--input-error-color)}label[data-v-ed6df5ba]{font-weight:700}button[data-v-ed6df5ba]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-ed6df5ba]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-ed6df5ba]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-ed6df5ba]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-ed6df5ba]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-ed6df5ba]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-ed6df5ba]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-ed6df5ba]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-ed6df5ba]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-ed6df5ba]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-ed6df5ba]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-ed6df5ba]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-ed6df5ba]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-ed6df5ba]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-ed6df5ba]{display:flex;flex-direction:column}.form-box .form-items input[data-v-ed6df5ba]{margin:10px;padding:5px}.upper[data-v-ed6df5ba]{text-transform:uppercase}.view[data-v-ed6df5ba]{padding-bottom:35px}.fa-trophy[data-v-ed6df5ba]{color:var(--workout-trophy-color)}.mountains[data-v-ed6df5ba]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-ed6df5ba]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-ed6df5ba]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-ed6df5ba]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-ed6df5ba]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-ed6df5ba]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-ed6df5ba]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-ed6df5ba]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-ed6df5ba]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-ed6df5ba]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-ed6df5ba]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-ed6df5ba]{font-weight:700}.description-list dl dd[data-v-ed6df5ba]{margin-bottom:10px}.center-card[data-v-ed6df5ba]{margin:0 auto;width:700px}.center-card.with-margin[data-v-ed6df5ba]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-ed6df5ba]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-ed6df5ba]{margin-top:0}}.center-text[data-v-ed6df5ba]{text-align:center}.responsive-table[data-v-ed6df5ba]{margin-bottom:15px}.responsive-table table[data-v-ed6df5ba]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-ed6df5ba]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-ed6df5ba]{font-size:.95em}.responsive-table table tbody td[data-v-ed6df5ba]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-ed6df5ba]{border:none}.responsive-table table .cell-heading[data-v-ed6df5ba]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-ed6df5ba]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-ed6df5ba]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-ed6df5ba]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-ed6df5ba]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-ed6df5ba]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-ed6df5ba]{width:100%}}#workouts[data-v-ed6df5ba]{height:100%}#workouts .workouts-container[data-v-ed6df5ba]{display:flex;flex-direction:row}@media screen and (max-width:1000px){#workouts .workouts-container[data-v-ed6df5ba]{flex-direction:column}}#workouts .workouts-container .filters-container[data-v-ed6df5ba],#workouts .workouts-container .list-container[data-v-ed6df5ba]{display:flex;flex-direction:column}#workouts .workouts-container .filters-container[data-v-ed6df5ba]{width:25%}@media screen and (max-width:1000px){#workouts .workouts-container .filters-container[data-v-ed6df5ba]{width:100%}}@media screen and (max-width:1000px)and (max-width:700px){#workouts .workouts-container .filters-container.hidden[data-v-ed6df5ba]{display:none}}#workouts .workouts-container .display-filters[data-v-ed6df5ba]{display:none;font-size:.8em;padding:0 20px}#workouts .workouts-container .display-filters span[data-v-ed6df5ba]{cursor:pointer;font-weight:700;padding-left:5px}#workouts .workouts-container .display-filters .fa[data-v-ed6df5ba]{cursor:pointer}@media screen and (max-width:700px){#workouts .workouts-container .display-filters[data-v-ed6df5ba]{display:flex;justify-content:flex-end;align-items:center}}#workouts .workouts-container .list-container[data-v-ed6df5ba]{width:75%}@media screen and (max-width:1000px){#workouts .workouts-container .list-container[data-v-ed6df5ba]{width:100%}}[data-v-6f69d538]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-6f69d538]{margin:0}#app[data-v-6f69d538]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-6f69d538]{color:var(--app-a-color);text-decoration:none}img[data-v-6f69d538]{max-width:100%}input[data-v-6f69d538],select[data-v-6f69d538],textarea[data-v-6f69d538]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-6f69d538]:disabled,select[data-v-6f69d538]:disabled,textarea[data-v-6f69d538]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-6f69d538] :invalid{outline:2px solid var(--input-error-color)}label[data-v-6f69d538]{font-weight:700}button[data-v-6f69d538]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-6f69d538]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-6f69d538]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-6f69d538]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-6f69d538]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-6f69d538]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-6f69d538]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-6f69d538]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-6f69d538]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-6f69d538]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-6f69d538]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-6f69d538]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-6f69d538]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-6f69d538]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-6f69d538]{display:flex;flex-direction:column}.form-box .form-items input[data-v-6f69d538]{margin:10px;padding:5px}.upper[data-v-6f69d538]{text-transform:uppercase}.view[data-v-6f69d538]{padding-bottom:35px}.fa-trophy[data-v-6f69d538]{color:var(--workout-trophy-color)}.mountains[data-v-6f69d538]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-6f69d538]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-6f69d538]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-6f69d538]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-6f69d538]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-6f69d538]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-6f69d538]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-6f69d538]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-6f69d538]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-6f69d538]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-6f69d538]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-6f69d538]{font-weight:700}.description-list dl dd[data-v-6f69d538]{margin-bottom:10px}.center-card[data-v-6f69d538]{margin:0 auto;width:700px}.center-card.with-margin[data-v-6f69d538]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-6f69d538]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-6f69d538]{margin-top:0}}.center-text[data-v-6f69d538]{text-align:center}.responsive-table[data-v-6f69d538]{margin-bottom:15px}.responsive-table table[data-v-6f69d538]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-6f69d538]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-6f69d538]{font-size:.95em}.responsive-table table tbody td[data-v-6f69d538]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-6f69d538]{border:none}.responsive-table table .cell-heading[data-v-6f69d538]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-6f69d538]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-6f69d538]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-6f69d538]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-6f69d538]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-6f69d538]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-6f69d538]{width:100%}}#workout-chart[data-v-6f69d538] .card .card-title{text-transform:capitalize}#workout-chart[data-v-6f69d538] .card .card-content{display:flex;flex-direction:column}#workout-chart[data-v-6f69d538] .card .card-content .chart-radio{width:100%;display:flex;justify-content:center}#workout-chart[data-v-6f69d538] .card .card-content .chart-radio label{padding:0 10px}#workout-chart[data-v-6f69d538] .card .card-content .chart-info{display:flex;justify-content:space-between;font-size:.85em;font-style:italic}@media screen and (max-width:700px){#workout-chart[data-v-6f69d538] .card .card-content{padding:10px 0}#workout-chart[data-v-6f69d538] .card .card-content .chart-info{display:flex;flex-direction:column-reverse}#workout-chart[data-v-6f69d538] .card .card-content .chart-info .elevation-start{padding:10px 15px 0}#workout-chart[data-v-6f69d538] .card .card-content .chart-info .no-data-cleaning{padding:0 20px}}[data-v-ae31b8b2]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-ae31b8b2]{margin:0}#app[data-v-ae31b8b2]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-ae31b8b2]{color:var(--app-a-color);text-decoration:none}img[data-v-ae31b8b2]{max-width:100%}input[data-v-ae31b8b2],select[data-v-ae31b8b2],textarea[data-v-ae31b8b2]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-ae31b8b2]:disabled,select[data-v-ae31b8b2]:disabled,textarea[data-v-ae31b8b2]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-ae31b8b2] :invalid{outline:2px solid var(--input-error-color)}label[data-v-ae31b8b2]{font-weight:700}button[data-v-ae31b8b2]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-ae31b8b2]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-ae31b8b2]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-ae31b8b2]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-ae31b8b2]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-ae31b8b2]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-ae31b8b2]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-ae31b8b2]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-ae31b8b2]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-ae31b8b2]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-ae31b8b2]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-ae31b8b2]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-ae31b8b2]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-ae31b8b2]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-ae31b8b2]{display:flex;flex-direction:column}.form-box .form-items input[data-v-ae31b8b2]{margin:10px;padding:5px}.upper[data-v-ae31b8b2]{text-transform:uppercase}.view[data-v-ae31b8b2]{padding-bottom:35px}.fa-trophy[data-v-ae31b8b2]{color:var(--workout-trophy-color)}.mountains[data-v-ae31b8b2]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-ae31b8b2]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-ae31b8b2]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-ae31b8b2]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-ae31b8b2]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-ae31b8b2]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-ae31b8b2]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-ae31b8b2]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-ae31b8b2]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-ae31b8b2]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-ae31b8b2]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-ae31b8b2]{font-weight:700}.description-list dl dd[data-v-ae31b8b2]{margin-bottom:10px}.center-card[data-v-ae31b8b2]{margin:0 auto;width:700px}.center-card.with-margin[data-v-ae31b8b2]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-ae31b8b2]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-ae31b8b2]{margin-top:0}}.center-text[data-v-ae31b8b2]{text-align:center}.responsive-table[data-v-ae31b8b2]{margin-bottom:15px}.responsive-table table[data-v-ae31b8b2]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-ae31b8b2]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-ae31b8b2]{font-size:.95em}.responsive-table table tbody td[data-v-ae31b8b2]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-ae31b8b2]{border:none}.responsive-table table .cell-heading[data-v-ae31b8b2]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-ae31b8b2]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-ae31b8b2]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-ae31b8b2]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-ae31b8b2]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-ae31b8b2]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-ae31b8b2]{width:100%}}#workout-card-title[data-v-ae31b8b2]{display:flex;justify-content:space-between;align-items:center}#workout-card-title .workout-arrow[data-v-ae31b8b2]{cursor:pointer}#workout-card-title .workout-arrow.inactive[data-v-ae31b8b2]{color:var(--disabled-color);cursor:default}#workout-card-title .workout-card-title[data-v-ae31b8b2]{display:flex;flex-grow:1}#workout-card-title .workout-card-title .sport-img[data-v-ae31b8b2]{height:35px;width:35px;padding:0 10px}#workout-card-title .workout-card-title .workout-date[data-v-ae31b8b2]{font-size:.8em;font-weight:400}#workout-card-title .workout-card-title .workout-segment[data-v-ae31b8b2]{font-weight:400}#workout-card-title .workout-card-title .workout-link[data-v-ae31b8b2]{padding-left:10px}#workout-card-title .workout-card-title .fa[data-v-ae31b8b2]{padding:0 3px}@media screen and (max-width:700px){#workout-card-title .workout-card-title .fa-edit[data-v-ae31b8b2],#workout-card-title .workout-card-title .fa-trash[data-v-ae31b8b2]{border:solid 1px var(--card-border-color);border-radius:4px;margin-left:5px;padding:0 10px}}[data-v-2e8c6844]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-2e8c6844]{margin:0}#app[data-v-2e8c6844]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-2e8c6844]{color:var(--app-a-color);text-decoration:none}img[data-v-2e8c6844]{max-width:100%}input[data-v-2e8c6844],select[data-v-2e8c6844],textarea[data-v-2e8c6844]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-2e8c6844]:disabled,select[data-v-2e8c6844]:disabled,textarea[data-v-2e8c6844]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-2e8c6844] :invalid{outline:2px solid var(--input-error-color)}label[data-v-2e8c6844]{font-weight:700}button[data-v-2e8c6844]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-2e8c6844]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-2e8c6844]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-2e8c6844]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-2e8c6844]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-2e8c6844]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-2e8c6844]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-2e8c6844]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-2e8c6844]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-2e8c6844]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-2e8c6844]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-2e8c6844]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-2e8c6844]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-2e8c6844]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-2e8c6844]{display:flex;flex-direction:column}.form-box .form-items input[data-v-2e8c6844]{margin:10px;padding:5px}.upper[data-v-2e8c6844]{text-transform:uppercase}.view[data-v-2e8c6844]{padding-bottom:35px}.fa-trophy[data-v-2e8c6844]{color:var(--workout-trophy-color)}.mountains[data-v-2e8c6844]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-2e8c6844]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-2e8c6844]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-2e8c6844]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-2e8c6844]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-2e8c6844]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-2e8c6844]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-2e8c6844]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-2e8c6844]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-2e8c6844]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-2e8c6844]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-2e8c6844]{font-weight:700}.description-list dl dd[data-v-2e8c6844]{margin-bottom:10px}.center-card[data-v-2e8c6844]{margin:0 auto;width:700px}.center-card.with-margin[data-v-2e8c6844]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-2e8c6844]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-2e8c6844]{margin-top:0}}.center-text[data-v-2e8c6844]{text-align:center}.responsive-table[data-v-2e8c6844]{margin-bottom:15px}.responsive-table table[data-v-2e8c6844]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-2e8c6844]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-2e8c6844]{font-size:.95em}.responsive-table table tbody td[data-v-2e8c6844]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-2e8c6844]{border:none}.responsive-table table .cell-heading[data-v-2e8c6844]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-2e8c6844]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-2e8c6844]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-2e8c6844]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-2e8c6844]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-2e8c6844]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-2e8c6844]{width:100%}}.workout-record sup[data-v-2e8c6844]{font-size:75%;line-height:0}[data-v-599592bf]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-599592bf]{margin:0}#app[data-v-599592bf]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-599592bf]{color:var(--app-a-color);text-decoration:none}img[data-v-599592bf]{max-width:100%}input[data-v-599592bf],select[data-v-599592bf],textarea[data-v-599592bf]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-599592bf]:disabled,select[data-v-599592bf]:disabled,textarea[data-v-599592bf]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-599592bf] :invalid{outline:2px solid var(--input-error-color)}label[data-v-599592bf]{font-weight:700}button[data-v-599592bf]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-599592bf]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-599592bf]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-599592bf]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-599592bf]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-599592bf]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-599592bf]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-599592bf]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-599592bf]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-599592bf]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-599592bf]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-599592bf]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-599592bf]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-599592bf]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-599592bf]{display:flex;flex-direction:column}.form-box .form-items input[data-v-599592bf]{margin:10px;padding:5px}.upper[data-v-599592bf]{text-transform:uppercase}.view[data-v-599592bf]{padding-bottom:35px}.fa-trophy[data-v-599592bf]{color:var(--workout-trophy-color)}.mountains[data-v-599592bf]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-599592bf]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-599592bf]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-599592bf]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-599592bf]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-599592bf]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-599592bf]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-599592bf]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-599592bf]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-599592bf]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-599592bf]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-599592bf]{font-weight:700}.description-list dl dd[data-v-599592bf]{margin-bottom:10px}.center-card[data-v-599592bf]{margin:0 auto;width:700px}.center-card.with-margin[data-v-599592bf]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-599592bf]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-599592bf]{margin-top:0}}.center-text[data-v-599592bf]{text-align:center}.responsive-table[data-v-599592bf]{margin-bottom:15px}.responsive-table table[data-v-599592bf]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-599592bf]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-599592bf]{font-size:.95em}.responsive-table table tbody td[data-v-599592bf]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-599592bf]{border:none}.responsive-table table .cell-heading[data-v-599592bf]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-599592bf]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-599592bf]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-599592bf]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-599592bf]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-599592bf]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-599592bf]{width:100%}}#workout-weather[data-v-599592bf]{padding-top:10px}#workout-weather .weather-img[data-v-599592bf]{height:30px;filter:var(--workout-img-color)}#workout-weather .weather-img-small[data-v-599592bf]{height:20px}#workout-weather .weather-table[data-v-599592bf]{width:100%;text-align:center}#workout-weather .weather-table .weather-th[data-v-599592bf]{display:flex;flex-direction:column;text-transform:capitalize}#workout-weather .weather-table tbody[data-v-599592bf]{font-size:.8em}[data-v-47565031]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-47565031]{margin:0}#app[data-v-47565031]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-47565031]{color:var(--app-a-color);text-decoration:none}img[data-v-47565031]{max-width:100%}input[data-v-47565031],select[data-v-47565031],textarea[data-v-47565031]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-47565031]:disabled,select[data-v-47565031]:disabled,textarea[data-v-47565031]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-47565031] :invalid{outline:2px solid var(--input-error-color)}label[data-v-47565031]{font-weight:700}button[data-v-47565031]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-47565031]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-47565031]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-47565031]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-47565031]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-47565031]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-47565031]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-47565031]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-47565031]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-47565031]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-47565031]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-47565031]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-47565031]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-47565031]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-47565031]{display:flex;flex-direction:column}.form-box .form-items input[data-v-47565031]{margin:10px;padding:5px}.upper[data-v-47565031]{text-transform:uppercase}.view[data-v-47565031]{padding-bottom:35px}.fa-trophy[data-v-47565031]{color:var(--workout-trophy-color)}.mountains[data-v-47565031]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-47565031]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-47565031]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-47565031]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-47565031]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-47565031]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-47565031]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-47565031]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-47565031]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-47565031]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-47565031]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-47565031]{font-weight:700}.description-list dl dd[data-v-47565031]{margin-bottom:10px}.center-card[data-v-47565031]{margin:0 auto;width:700px}.center-card.with-margin[data-v-47565031]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-47565031]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-47565031]{margin-top:0}}.center-text[data-v-47565031]{text-align:center}.responsive-table[data-v-47565031]{margin-bottom:15px}.responsive-table table[data-v-47565031]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-47565031]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-47565031]{font-size:.95em}.responsive-table table tbody td[data-v-47565031]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-47565031]{border:none}.responsive-table table .cell-heading[data-v-47565031]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-47565031]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-47565031]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-47565031]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-47565031]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-47565031]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-47565031]{width:100%}}#workout-info[data-v-47565031]{display:flex;flex-direction:column;padding:10px 20px;width:100%}#workout-info .workout-data[data-v-47565031]{text-transform:capitalize;padding:5px 0}#workout-info .workout-data span[data-v-47565031]{font-weight:700;text-transform:lowercase}@media screen and (max-width:700px){#workout-info[data-v-47565031]{padding:10px}}[data-v-b4b3006a]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-b4b3006a]{margin:0}#app[data-v-b4b3006a]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-b4b3006a]{color:var(--app-a-color);text-decoration:none}img[data-v-b4b3006a]{max-width:100%}input[data-v-b4b3006a],select[data-v-b4b3006a],textarea[data-v-b4b3006a]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-b4b3006a]:disabled,select[data-v-b4b3006a]:disabled,textarea[data-v-b4b3006a]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-b4b3006a] :invalid{outline:2px solid var(--input-error-color)}label[data-v-b4b3006a]{font-weight:700}button[data-v-b4b3006a]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-b4b3006a]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-b4b3006a]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-b4b3006a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-b4b3006a]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-b4b3006a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-b4b3006a]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-b4b3006a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-b4b3006a]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-b4b3006a]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-b4b3006a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-b4b3006a]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-b4b3006a]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-b4b3006a]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-b4b3006a]{display:flex;flex-direction:column}.form-box .form-items input[data-v-b4b3006a]{margin:10px;padding:5px}.upper[data-v-b4b3006a]{text-transform:uppercase}.view[data-v-b4b3006a]{padding-bottom:35px}.fa-trophy[data-v-b4b3006a]{color:var(--workout-trophy-color)}.mountains[data-v-b4b3006a]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-b4b3006a]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-b4b3006a]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-b4b3006a]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-b4b3006a]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-b4b3006a]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-b4b3006a]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-b4b3006a]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-b4b3006a]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-b4b3006a]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-b4b3006a]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-b4b3006a]{font-weight:700}.description-list dl dd[data-v-b4b3006a]{margin-bottom:10px}.center-card[data-v-b4b3006a]{margin:0 auto;width:700px}.center-card.with-margin[data-v-b4b3006a]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-b4b3006a]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-b4b3006a]{margin-top:0}}.center-text[data-v-b4b3006a]{text-align:center}.responsive-table[data-v-b4b3006a]{margin-bottom:15px}.responsive-table table[data-v-b4b3006a]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-b4b3006a]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-b4b3006a]{font-size:.95em}.responsive-table table tbody td[data-v-b4b3006a]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-b4b3006a]{border:none}.responsive-table table .cell-heading[data-v-b4b3006a]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-b4b3006a]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-b4b3006a]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-b4b3006a]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-b4b3006a]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-b4b3006a]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-b4b3006a]{width:100%}}#workout-map[data-v-b4b3006a]{padding:10px 0}#workout-map .leaflet-container[data-v-b4b3006a],#workout-map .no-map[data-v-b4b3006a]{height:400px;width:600px}#workout-map .no-map[data-v-b4b3006a]{line-height:400px}@media screen and (max-width:700px){#workout-map[data-v-b4b3006a]{padding:0}#workout-map .leaflet-container[data-v-b4b3006a]{width:100%;height:300px}#workout-map .no-map[data-v-b4b3006a]{display:none}}[data-v-45d17286]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-45d17286]{margin:0}#app[data-v-45d17286]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-45d17286]{color:var(--app-a-color);text-decoration:none}img[data-v-45d17286]{max-width:100%}input[data-v-45d17286],select[data-v-45d17286],textarea[data-v-45d17286]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-45d17286]:disabled,select[data-v-45d17286]:disabled,textarea[data-v-45d17286]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-45d17286] :invalid{outline:2px solid var(--input-error-color)}label[data-v-45d17286]{font-weight:700}button[data-v-45d17286]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-45d17286]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-45d17286]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-45d17286]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-45d17286]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-45d17286]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-45d17286]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-45d17286]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-45d17286]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-45d17286]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-45d17286]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-45d17286]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-45d17286]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-45d17286]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-45d17286]{display:flex;flex-direction:column}.form-box .form-items input[data-v-45d17286]{margin:10px;padding:5px}.upper[data-v-45d17286]{text-transform:uppercase}.view[data-v-45d17286]{padding-bottom:35px}.fa-trophy[data-v-45d17286]{color:var(--workout-trophy-color)}.mountains[data-v-45d17286]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-45d17286]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-45d17286]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-45d17286]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-45d17286]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-45d17286]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-45d17286]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-45d17286]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-45d17286]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-45d17286]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-45d17286]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-45d17286]{font-weight:700}.description-list dl dd[data-v-45d17286]{margin-bottom:10px}.center-card[data-v-45d17286]{margin:0 auto;width:700px}.center-card.with-margin[data-v-45d17286]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-45d17286]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-45d17286]{margin-top:0}}.center-text[data-v-45d17286]{text-align:center}.responsive-table[data-v-45d17286]{margin-bottom:15px}.responsive-table table[data-v-45d17286]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-45d17286]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-45d17286]{font-size:.95em}.responsive-table table tbody td[data-v-45d17286]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-45d17286]{border:none}.responsive-table table .cell-heading[data-v-45d17286]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-45d17286]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-45d17286]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-45d17286]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-45d17286]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-45d17286]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-45d17286]{width:100%}}.workout-detail[data-v-45d17286]{display:flex}.workout-detail[data-v-45d17286] .card{width:100%}.workout-detail[data-v-45d17286] .card .card-content{display:flex;flex-direction:row}@media screen and (max-width:1000px){.workout-detail[data-v-45d17286] .card .card-content{flex-direction:column}}[data-v-64197f7a]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-64197f7a]{margin:0}#app[data-v-64197f7a]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-64197f7a]{color:var(--app-a-color);text-decoration:none}img[data-v-64197f7a]{max-width:100%}input[data-v-64197f7a],select[data-v-64197f7a],textarea[data-v-64197f7a]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-64197f7a]:disabled,select[data-v-64197f7a]:disabled,textarea[data-v-64197f7a]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-64197f7a] :invalid{outline:2px solid var(--input-error-color)}label[data-v-64197f7a]{font-weight:700}button[data-v-64197f7a]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-64197f7a]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-64197f7a]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-64197f7a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-64197f7a]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-64197f7a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-64197f7a]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-64197f7a]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-64197f7a]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-64197f7a]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-64197f7a]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-64197f7a]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-64197f7a]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-64197f7a]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-64197f7a]{display:flex;flex-direction:column}.form-box .form-items input[data-v-64197f7a]{margin:10px;padding:5px}.upper[data-v-64197f7a]{text-transform:uppercase}.view[data-v-64197f7a]{padding-bottom:35px}.fa-trophy[data-v-64197f7a]{color:var(--workout-trophy-color)}.mountains[data-v-64197f7a]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-64197f7a]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-64197f7a]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-64197f7a]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-64197f7a]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-64197f7a]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-64197f7a]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-64197f7a]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-64197f7a]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-64197f7a]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-64197f7a]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-64197f7a]{font-weight:700}.description-list dl dd[data-v-64197f7a]{margin-bottom:10px}.center-card[data-v-64197f7a]{margin:0 auto;width:700px}.center-card.with-margin[data-v-64197f7a]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-64197f7a]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-64197f7a]{margin-top:0}}.center-text[data-v-64197f7a]{text-align:center}.responsive-table[data-v-64197f7a]{margin-bottom:15px}.responsive-table table[data-v-64197f7a]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-64197f7a]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-64197f7a]{font-size:.95em}.responsive-table table tbody td[data-v-64197f7a]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-64197f7a]{border:none}.responsive-table table .cell-heading[data-v-64197f7a]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-64197f7a]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-64197f7a]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-64197f7a]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-64197f7a]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-64197f7a]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-64197f7a]{width:100%}}#workout-note[data-v-64197f7a] .card-content{font-style:italic;white-space:pre-wrap}[data-v-2a948bcb]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-2a948bcb]{margin:0}#app[data-v-2a948bcb]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-2a948bcb]{color:var(--app-a-color);text-decoration:none}img[data-v-2a948bcb]{max-width:100%}input[data-v-2a948bcb],select[data-v-2a948bcb],textarea[data-v-2a948bcb]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-2a948bcb]:disabled,select[data-v-2a948bcb]:disabled,textarea[data-v-2a948bcb]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-2a948bcb] :invalid{outline:2px solid var(--input-error-color)}label[data-v-2a948bcb]{font-weight:700}button[data-v-2a948bcb]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-2a948bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-2a948bcb]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-2a948bcb]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-2a948bcb]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-2a948bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-2a948bcb]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-2a948bcb]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-2a948bcb]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-2a948bcb]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-2a948bcb]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-2a948bcb]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-2a948bcb]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-2a948bcb]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-2a948bcb]{display:flex;flex-direction:column}.form-box .form-items input[data-v-2a948bcb]{margin:10px;padding:5px}.upper[data-v-2a948bcb]{text-transform:uppercase}.view[data-v-2a948bcb]{padding-bottom:35px}.fa-trophy[data-v-2a948bcb]{color:var(--workout-trophy-color)}.mountains[data-v-2a948bcb]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-2a948bcb]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-2a948bcb]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-2a948bcb]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-2a948bcb]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-2a948bcb]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-2a948bcb]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-2a948bcb]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-2a948bcb]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-2a948bcb]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-2a948bcb]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-2a948bcb]{font-weight:700}.description-list dl dd[data-v-2a948bcb]{margin-bottom:10px}.center-card[data-v-2a948bcb]{margin:0 auto;width:700px}.center-card.with-margin[data-v-2a948bcb]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-2a948bcb]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-2a948bcb]{margin-top:0}}.center-text[data-v-2a948bcb]{text-align:center}.responsive-table[data-v-2a948bcb]{margin-bottom:15px}.responsive-table table[data-v-2a948bcb]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-2a948bcb]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-2a948bcb]{font-size:.95em}.responsive-table table tbody td[data-v-2a948bcb]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-2a948bcb]{border:none}.responsive-table table .cell-heading[data-v-2a948bcb]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-2a948bcb]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-2a948bcb]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-2a948bcb]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-2a948bcb]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-2a948bcb]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-2a948bcb]{width:100%}}#workout-segments[data-v-2a948bcb] .card .card-title{text-transform:capitalize}#workout-segments[data-v-2a948bcb] .card .card-content{padding-bottom:0;padding-top:0}#workout-segments[data-v-2a948bcb] .card .card-content a{font-weight:700}#workout-segments[data-v-2a948bcb] .card .card-content ul{padding:0 10px;list-style:square}[data-v-87defaa4]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}body[data-v-87defaa4]{margin:0}#app[data-v-87defaa4]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-87defaa4]{color:var(--app-a-color);text-decoration:none}img[data-v-87defaa4]{max-width:100%}input[data-v-87defaa4],select[data-v-87defaa4],textarea[data-v-87defaa4]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-87defaa4]:disabled,select[data-v-87defaa4]:disabled,textarea[data-v-87defaa4]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-87defaa4] :invalid{outline:2px solid var(--input-error-color)}label[data-v-87defaa4]{font-weight:700}button[data-v-87defaa4]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-87defaa4]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-87defaa4]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-87defaa4]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-87defaa4]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-87defaa4]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-87defaa4]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-87defaa4]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-87defaa4]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-87defaa4]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-87defaa4]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-87defaa4]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-87defaa4]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-87defaa4]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-87defaa4]{display:flex;flex-direction:column}.form-box .form-items input[data-v-87defaa4]{margin:10px;padding:5px}.upper[data-v-87defaa4]{text-transform:uppercase}.view[data-v-87defaa4]{padding-bottom:35px}.fa-trophy[data-v-87defaa4]{color:var(--workout-trophy-color)}.mountains[data-v-87defaa4]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-87defaa4]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-87defaa4]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-87defaa4]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-87defaa4]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-87defaa4]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-87defaa4]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-87defaa4]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-87defaa4]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-87defaa4]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-87defaa4]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-87defaa4]{font-weight:700}.description-list dl dd[data-v-87defaa4]{margin-bottom:10px}.center-card[data-v-87defaa4]{margin:0 auto;width:700px}.center-card.with-margin[data-v-87defaa4]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-87defaa4]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-87defaa4]{margin-top:0}}.center-text[data-v-87defaa4]{text-align:center}.responsive-table[data-v-87defaa4]{margin-bottom:15px}.responsive-table table[data-v-87defaa4]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-87defaa4]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-87defaa4]{font-size:.95em}.responsive-table table tbody td[data-v-87defaa4]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-87defaa4]{border:none}.responsive-table table .cell-heading[data-v-87defaa4]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-87defaa4]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-87defaa4]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-87defaa4]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-87defaa4]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-87defaa4]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-87defaa4]{width:100%}}#workout[data-v-87defaa4]{display:flex}#workout .container[data-v-87defaa4]{width:100%;padding:0}#workout .container .workout-container[data-v-87defaa4]{width:100%}#workout .container .workout-loading[data-v-87defaa4]{height:calc(100vh - 130px);width:100%}#workout .container .workout-loading .loading[data-v-87defaa4]{display:flex;align-items:center;height:100%}[data-v-20a704bc]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,0.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#c8cdd3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--scroll-button-bg-color:hsla(0,0%,100%,0.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color))}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(../../static/fonts/pt-sans-v9-latin-regular.c2a4d575.eot);src:local("PT Sans"),local("PTSans-Regular"),url(../../static/fonts/pt-sans-v9-latin-regular.c2a4d575.eot?#iefix) format("embedded-opentype"),url(../../static/fonts/pt-sans-v9-latin-regular.198d320b.woff2) format("woff2"),url(../../static/fonts/pt-sans-v9-latin-regular.399a9357.woff) format("woff"),url(../../static/fonts/pt-sans-v9-latin-regular.4ffa4616.ttf) format("truetype"),url(../../static/img/pt-sans-v9-latin-regular.f1f73e45.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(../../static/fonts/pt-sans-v9-latin-italic.d5f81343.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(../../static/fonts/pt-sans-v9-latin-italic.d5f81343.eot?#iefix) format("embedded-opentype"),url(../../static/fonts/pt-sans-v9-latin-italic.57d98c19.woff2) format("woff2"),url(../../static/fonts/pt-sans-v9-latin-italic.de9540fd.woff) format("woff"),url(../../static/fonts/pt-sans-v9-latin-italic.4ef1aece.ttf) format("truetype"),url(../../static/img/pt-sans-v9-latin-italic.648d3351.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(../../static/fonts/pt-sans-v9-latin-700.1db19001.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(../../static/fonts/pt-sans-v9-latin-700.1db19001.eot?#iefix) format("embedded-opentype"),url(../../static/fonts/pt-sans-v9-latin-700.f6d5807c.woff2) format("woff2"),url(../../static/fonts/pt-sans-v9-latin-700.e86e8add.woff) format("woff"),url(../../static/fonts/pt-sans-v9-latin-700.6078a795.ttf) format("truetype"),url(../../static/img/pt-sans-v9-latin-700.061c8566.svg#PTSans) format("svg")}body[data-v-20a704bc]{margin:0}#app[data-v-20a704bc]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-20a704bc]{color:var(--app-a-color);text-decoration:none}img[data-v-20a704bc]{max-width:100%}input[data-v-20a704bc],select[data-v-20a704bc],textarea[data-v-20a704bc]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-20a704bc]:disabled,select[data-v-20a704bc]:disabled,textarea[data-v-20a704bc]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-20a704bc] :invalid{outline:2px solid var(--input-error-color)}label[data-v-20a704bc]{font-weight:700}button[data-v-20a704bc]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-20a704bc]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-20a704bc]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button[data-v-20a704bc]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-20a704bc]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-20a704bc]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-20a704bc]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-20a704bc]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-20a704bc]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-20a704bc]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-20a704bc]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-20a704bc]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-20a704bc]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-20a704bc]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-20a704bc]{display:flex;flex-direction:column}.form-box .form-items input[data-v-20a704bc]{margin:10px;padding:5px}.upper[data-v-20a704bc]{text-transform:uppercase}.view[data-v-20a704bc]{padding-bottom:35px}.fa-trophy[data-v-20a704bc]{color:var(--workout-trophy-color)}.mountains[data-v-20a704bc]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-20a704bc]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-20a704bc]{background-color:var(--workout-no-map-bg-color);background-image:url(/img/workouts/map.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-20a704bc]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-20a704bc]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-20a704bc]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-20a704bc]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-20a704bc]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-20a704bc]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-20a704bc]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-20a704bc]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-20a704bc]{font-weight:700}.description-list dl dd[data-v-20a704bc]{margin-bottom:10px}.center-card[data-v-20a704bc]{margin:0 auto;width:700px}.center-card.with-margin[data-v-20a704bc]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-20a704bc]{width:100%;margin:0 auto 50px auto}.center-card.with-margin[data-v-20a704bc]{margin-top:0}}.center-text[data-v-20a704bc]{text-align:center}.responsive-table[data-v-20a704bc]{margin-bottom:15px}.responsive-table table[data-v-20a704bc]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-20a704bc]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-20a704bc]{font-size:.95em}.responsive-table table tbody td[data-v-20a704bc]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-20a704bc]{border:none}.responsive-table table .cell-heading[data-v-20a704bc]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-20a704bc]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-20a704bc]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-20a704bc]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-20a704bc]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-20a704bc]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-20a704bc]{width:100%}}@media screen and (max-width:700px){#workout-edition.center-form[data-v-20a704bc]{margin:50px auto}}#workout-edition[data-v-20a704bc] .card .card-title{text-align:center;text-transform:uppercase}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content{padding:10px 0}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items{display:flex;flex-direction:column}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items input{height:20px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .workout-date-duration{display:flex;flex-direction:row;justify-content:space-between}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .workout-date-duration{flex-direction:column}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item .workout-date-time{display:flex}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item .workout-date-time #workout-date{margin-right:10px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item .workout-duration{width:25px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio{display:flex;justify-content:space-around}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio label{font-weight:400}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio label{font-size:.9em}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-items .form-item-radio input{margin-top:-2px;vertical-align:middle}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-buttons{display:flex;justify-content:flex-end}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .form-buttons button{margin:5px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help{display:flex;justify-content:space-around;margin-top:10px}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help div{display:flex}@media screen and (max-width:1000px){#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help div{flex-direction:column}}#workout-edition[data-v-20a704bc] .card .card-content #workout-form .files-help div ul{margin:0;padding:0 20px} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.7f21cc2d.js b/fittrackee/dist/static/js/app.7f21cc2d.js deleted file mode 100644 index 93102e51..00000000 --- a/fittrackee/dist/static/js/app.7f21cc2d.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var r,c,i=t[0],s=t[1],l=t[2],u=0,O=[];ur?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(a)},s=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.label}))[0]}},1446:function(e,t,n){"use strict";n("1db4")},"1db4":function(e,t,n){},"1f46":function(e,t,n){},2679:function(e,t,n){},2906:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n("5502");function c(){return Object(r["b"])()}},"30bb":function(e,t,n){"use strict";n("599b")},"3c44":function(e,t,n){"use strict";n("b680"),n("a9e3");var r=n("7a23"),c=n("c46a"),o=function(e){return Object(r["pushScopeId"])("data-v-f8a631e2"),e=e(),Object(r["popScopeId"])(),e},a={class:"box user-header"},i={class:"user-details"},s={class:"user-name"},l={class:"user-stats"},u={class:"user-stat"},O={class:"stat-number"},d={class:"stat-label"},m={class:"user-stat"},E={class:"stat-number"},b=o((function(){return Object(r["createElementVNode"])("span",{class:"stat-label"},"km",-1)})),p={class:"user-stat hide-small"},T={class:"stat-number"},f={class:"stat-label"},A=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.user;return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,[Object(r["createVNode"])(c["a"],{user:Object(r["unref"])(o)},null,8,["user"]),Object(r["createElementVNode"])("div",i,[Object(r["createElementVNode"])("div",s,Object(r["toDisplayString"])(Object(r["unref"])(o).username),1),Object(r["createElementVNode"])("div",l,[Object(r["createElementVNode"])("div",u,[Object(r["createElementVNode"])("span",O,Object(r["toDisplayString"])(Object(r["unref"])(o).nb_workouts),1),Object(r["createElementVNode"])("span",d,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",Object(r["unref"])(o).nb_workouts)),1)]),Object(r["createElementVNode"])("div",m,[Object(r["createElementVNode"])("span",E,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).total_distance).toFixed(0)),1),b]),Object(r["createElementVNode"])("div",p,[Object(r["createElementVNode"])("span",T,Object(r["toDisplayString"])(Object(r["unref"])(o).nb_sports),1),Object(r["createElementVNode"])("span",f,Object(r["toDisplayString"])(e.$t("workouts.SPORT",Object(r["unref"])(o).nb_sports)),1)])])])])}}}),S=(n("e456"),n("6b0d")),j=n.n(S);const _=j()(A,[["__scopeId","data-v-f8a631e2"]]);t["a"]=_},"3ca5":function(e,t,n){"use strict";n("4a37")},4163:function(e,t,n){},"44dee":function(e,t,n){"use strict";n("d9b8")},4870:function(e,t,n){"use strict";var r,c,o;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return o})),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(c||(c={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},"49c1":function(e,t,n){},"4a37":function(e,t,n){},"55a6":function(e,t,n){"use strict";n("dbf1")},"599b":function(e,t,n){},"5e65":function(e,t,n){"use strict";n.d(t,"d",(function(){return m})),n.d(t,"e",(function(){return E})),n.d(t,"c",(function(){return b})),n.d(t,"b",(function(){return p})),n.d(t,"a",(function(){return T}));var r=n("69eb"),c=n("d6e9"),o=n("f628"),a=n("f7f1"),i=n("cdb6"),s=n("74b5"),l=n("8cac"),u=n("2fc8"),O=n("b166"),d=n("78b2"),m=function(e,t,n){switch(e){case"week":return Object(r["a"])(t,{weekStartsOn:n?1:0});case"year":return Object(c["a"])(t);case"month":return Object(o["a"])(t);default:throw new Error('Invalid duration, expected: "week", "month", "year", got: "'.concat(e,'"'))}},E=function(e,t){switch(e){case"week":return Object(a["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(d["a"])(new Date(e),t)},p=function(e,t){var n=Object(o["a"])(e),c=Object(l["a"])(e),a=t?1:0;return{start:Object(r["a"])(n,{weekStartsOn:a}),end:Object(u["a"])(c,{weekStartsOn:a})}},T=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(O["a"])(e,t),workout_time:Object(O["a"])(e,n)}}},"61af":function(e,t,n){"use strict";n("ae19")},"663e":function(e,t,n){"use strict";n.r(t);var r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Etes-vous sûr de vouloir supprimer le compte de ",n(r(0))," ? Toutes les données seront définitivement."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les drois d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les drois d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email : une adresse email valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur Réseau."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Mot de passe : 8 caractères minimum."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Désolé, cet utilisateur existe déjà."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas"])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Nom d'utilisateur : 3 à 12 caractères requis."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},o={BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},a={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de Bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}}},l={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Electrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},O={ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Saisir une adresse email"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},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"])}},d={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:c,buttons:o,common:a,dashboard:i,error:s,sports:l,statistics:u,user:O,workouts:d}},"6d7d":function(e,t,n){"use strict";var r=n("7a23"),c=n("97e5"),o=function(e){return Object(r["pushScopeId"])("data-v-de4b01da"),e=e(),Object(r["popScopeId"])(),e},a={class:"pagination-center","aria-label":"navigation"},i={class:"pagination"},s=o((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)})),l={key:0},u=o((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)})),O=Object(r["defineComponent"])({props:{pagination:null,path:null,query:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.pagination,O=n.path,d=n.query;function m(e,t){var n=Object.assign({},d.value);return n.page=t?e+t:e,n}return function(e,t){var n=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("nav",a,[Object(r["createElementVNode"])("ul",i,[Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-prev",{disabled:!Object(r["unref"])(o).has_prev}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(O),query:m(Object(r["unref"])(o).page,-1)},event:Object(r["unref"])(o).has_prev?"click":"",disabled:!Object(r["unref"])(o).has_prev},{default:Object(r["withCtx"])((function(){return[s,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("api.PAGINATION.PREVIOUS")),1)]})),_:1},8,["to","event","disabled"])],2),(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(c["b"])(Object(r["unref"])(o).pages,Object(r["unref"])(o).page),(function(e){return Object(r["openBlock"])(),Object(r["createElementBlock"])("li",{key:e,class:Object(r["normalizeClass"])(["page",{active:e===Object(r["unref"])(o).page}])},["..."===e?(Object(r["openBlock"])(),Object(r["createElementBlock"])("span",l," ... ")):(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:1,class:"page-link",to:{path:Object(r["unref"])(O),query:m(+e)}},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e),1)]})),_:2},1032,["to"]))],2)})),128)),Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-next",{disabled:!Object(r["unref"])(o).has_next}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(O),query:m(Object(r["unref"])(o).page,1)},event:Object(r["unref"])(o).has_next?"click":"",disabled:!Object(r["unref"])(o).has_next},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("api.PAGINATION.NEXT"))+" ",1),u]})),_:1},8,["to","event","disabled"])],2)])])}}}),d=(n("30bb"),n("6b0d")),m=n.n(d);const E=m()(O,[["__scopeId","data-v-de4b01da"]]);t["a"]=E},"6fe1":function(e,t,n){"use strict";n("8955")},"71a7":function(e,t,n){"use strict";var r=n("7a23"),c=n("b166"),o=n("dad5"),a=n("2906"),i={id:"user-infos",class:"description-list"},s={class:"user-bio"},l={key:1,class:"profile-buttons"},u={key:2,class:"profile-buttons"},O=Object(r["defineComponent"])({props:{user:null,fromAdmin:{default:!1}},setup:function(e){var t=e,n=Object(a["a"])(),O=Object(r["toRefs"])(t),d=O.user,m=O.fromAdmin,E=Object(r["computed"])((function(){return n.getters[o["a"].GETTERS.AUTH_USER_PROFILE]})),b=Object(r["computed"])((function(){return t.user.created_at?Object(c["a"])(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):""})),p=Object(r["computed"])((function(){return t.user.birth_date?Object(c["a"])(new Date(t.user.birth_date),"dd/MM/yyyy"):""})),T=Object(r["ref"])(!1);function f(e){T.value=e}function A(e){n.dispatch(o["a"].ACTIONS.DELETE_ACCOUNT,{username:e})}return function(e,t){var n=Object(r["resolveComponent"])("Modal");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,[Object(r["unref"])(T)?(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"admin.CONFIRM_USER_ACCOUNT_DELETION",strongMessage:Object(r["unref"])(d).username,onConfirmAction:t[0]||(t[0]=function(e){return A(Object(r["unref"])(d).username)}),onCancelAction:t[1]||(t[1]=function(e){return f(!1)})},null,8,["title","strongMessage"])):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("dl",null,[Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(b)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(d).first_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(d).last_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(p)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(d).location),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIO"))+":",1),Object(r["createElementVNode"])("dd",s,Object(r["toDisplayString"])(Object(r["unref"])(d).bio),1)]),Object(r["unref"])(m)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",l,[Object(r["unref"])(E).username!==Object(r["unref"])(d).username?(Object(r["openBlock"])(),Object(r["createElementBlock"])("button",{key:0,class:"danger",onClick:t[2]||(t[2]=Object(r["withModifiers"])((function(e){return f(!0)}),["prevent"]))},Object(r["toDisplayString"])(e.$t("admin.DELETE_USER")),1)):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("button",{onClick:t[3]||(t[3]=function(t){return e.$router.go(-1)})},Object(r["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",u,[Object(r["createElementVNode"])("button",{onClick:t[4]||(t[4]=function(t){return e.$router.push("/profile/edit")})},Object(r["toDisplayString"])(e.$t("user.PROFILE.EDIT")),1),Object(r["createElementVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/")})},Object(r["toDisplayString"])(e.$t("common.HOME")),1)]))])}}}),d=(n("a009"),n("6b0d")),m=n.n(d);const E=m()(O,[["__scopeId","data-v-d5946ea6"]]);t["a"]=E},7489:function(e,t,n){"use strict";n("1f46")},"83d3":function(e,t,n){"use strict";n("aaee")},8955:function(e,t,n){},"8bbf":function(e,t,n){"use strict";n("e3305")},"910d":function(e,t,n){},9176:function(e,t,n){"use strict";n("4e82"),n("99af");var r=n("7a23"),c={class:"table-selects"},o=["value"],a=["value"],i=["value"],s=["value"],l=["value"],u=["value"],O=Object(r["defineComponent"])({props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup:function(e,t){var n=t.emit,O=e,d=Object(r["toRefs"])(O),m=d.order_by,E=d.query,b=d.sort,p=d.message,T=[10,25,50,100];function f(e){n("updateSelect",e.target.id,e.target.value)}return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order_by",id:"order_by",value:Object(r["unref"])(E).order_by,onChange:f},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(m),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("".concat(Object(r["unref"])(p),".").concat(t.toUpperCase()))),9,a)})),128))],40,o)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order",id:"order",value:Object(r["unref"])(E).order,onChange:f},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(b),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.".concat(t.toUpperCase()))),9,s)})),128))],40,i)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"per_page",id:"per_page",value:Object(r["unref"])(E).per_page,onChange:f},[(Object(r["openBlock"])(),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(T,(function(e){return Object(r["createElementVNode"])("option",{value:e,key:e},Object(r["toDisplayString"])(e),9,u)})),64))],40,l)])])}}}),d=(n("9308"),n("6b0d")),m=n.n(d);const E=m()(O,[["__scopeId","data-v-a5d764a4"]]);t["a"]=E},"922d":function(e,t,n){"use strict";n("dbef")},9308:function(e,t,n){"use strict";n("910d")},"96f9":function(e,t,n){},"97e5":function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"b",(function(){return O}));n("caad"),n("2532"),n("a630"),n("3ca3"),n("99af");var r=["asc","desc"],c=1,o=10,a=function(e,t){return e&&"string"===typeof e&&+e>0?+e:t},i=function(e,t,n){return e&&"string"===typeof e&&t.includes(e)?e:n},s=function(e,t,n,s){var l=s||{},u=l.defaultSort||"asc",O={};return O.page=a(e.page,c),O.per_page=a(e.per_page,o),O.order=i(e.order,r,u),O.order_by=i(e.order_by,t,n),O},l=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Array.from({length:e-t+1},(function(e,n){return t+n}))},O=function(e,t){if(e<0)return[];if(e<9)return u(e);var n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Password: 8 characters required."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Sorry, that user already exists."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Username: 3 to 12 characters required."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},o={BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},a={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems encounter some issues.
Please try later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}}},l={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},O={ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Enter an email address"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirm the password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirm Password"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Password confirmation"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},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"])}},d={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:c,buttons:o,common:a,dashboard:i,error:s,sports:l,statistics:u,user:O,workouts:d}},c364:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return o}));n("b680"),n("99af");var r=["bytes","KB","MB","GB","TB"],c=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};var c=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?"".concat(c).concat(o):{size:c,suffix:o}},o=function(e){var t=e/1048576;return+t.toFixed(2)}},c46a:function(e,t,n){"use strict";n("99af");var r=n("7a23"),c=n("d257"),o={class:"user-picture"},a=["alt","src"],i={key:1,class:"no-picture"},s=Object(r["createElementVNode"])("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),l=[s],u=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["computed"])((function(){return t.user.picture?"".concat(Object(c["a"])(),"users/").concat(t.user.username,"/picture"):""}));return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",o,[""!==Object(r["unref"])(n)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:Object(r["unref"])(n)},null,8,a)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,l))])}}});n("a06d");const O=u;t["a"]=O},c6c1:function(e,t,n){"use strict";n("b71d")},c7cd:function(e,t,n){},ccf6:function(e,t,n){},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b0c0");var r=n("9b4a"),c=n("d9fa"),o=n("7a23"),a=n("9483");Object(a["a"])("".concat("/","service-worker.js"),{ready:function(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered:function(){console.log("Service worker has been registered.")},cached:function(){console.log("Content has been cached for offline use.")},updatefound:function(){console.log("New content is downloading.")},updated:function(){console.log("New content is available; please refresh.")},offline:function(){console.log("No internet connection found. App is running in offline mode.")},error:function(e){console.error("Error during service worker registration:",e)}});var i=function(e){return Object(o["pushScopeId"])("data-v-e60d9c5e"),e=e(),Object(o["popScopeId"])(),e},s={id:"footer"},l={class:"footer-items"},u={class:"footer-item"},O=i((function(){return Object(o["createElementVNode"])("strong",null,"FitTrackee",-1)})),d=Object(o["createStaticVNode"])('
',4),m=Object(o["defineComponent"])({props:{version:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.version;return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",s,[Object(o["createElementVNode"])("div",l,[Object(o["createElementVNode"])("div",u,[O,Object(o["createTextVNode"])(" v"+Object(o["toDisplayString"])(Object(o["unref"])(r)),1)]),d])])}}}),E=(n("3ca5"),n("6b0d")),b=n.n(E);const p=b()(m,[["__scopeId","data-v-e60d9c5e"]]);var T=p,f=(n("25f0"),n("47e2")),A=n("c46a"),S=n("dad5"),j=n("2906"),_=(n("d81d"),n("8923")),N=n("d481");n("ddb0"),n("ac1f"),n("466d");function R(){var e=n("e7b6"),t={};return e.keys().forEach((function(n){var r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){var c=r[1];t[c]=e(n).default}})),t}var g=Object(f["a"])({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:R()}),I={en:_["a"],fr:N["a"]},v={en:"English",fr:"Français"},U=g.global.availableLocales,h=U.map((function(e){return{label:v[e],value:e}})),k=function(e){return Object(o["pushScopeId"])("data-v-53493688"),e=e(),Object(o["popScopeId"])(),e},D={id:"nav"},C={class:"nav-container"},P={class:"nav-app-name"},M={class:"nav-items-close"},L=k((function(){return Object(o["createElementVNode"])("div",{class:"app-name"},"FitTrackee",-1)})),z={key:0,class:"nav-items-group"},y=k((function(){return Object(o["createElementVNode"])("div",{class:"nav-item nav-separator"},null,-1)})),w={class:"nav-items-user-menu"},V={key:0,class:"nav-items-group"},B={class:"nav-item nav-profile-img"},G={key:1,class:"nav-items-group"},x=k((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-language"},null,-1)})),K=Object(o["defineComponent"])({emits:["menuInteraction"],setup:function(e,t){var n=t.emit,r=Object(f["b"])(),c=r.locale,a=Object(j["a"])(),i=Object(o["computed"])((function(){return a.getters[S["a"].GETTERS.AUTH_USER_PROFILE]})),s=Object(o["computed"])((function(){return a.getters[S["a"].GETTERS.IS_AUTHENTICATED]})),l=Object(o["computed"])((function(){return a.getters[S["b"].GETTERS.LANGUAGE]})),u=Object(o["ref"])(!1);function O(){u.value=!0,n("menuInteraction",!0)}function d(){u.value=!1,n("menuInteraction",!1)}function m(e){c.value=e.value.toString(),a.commit(S["b"].MUTATIONS.UPDATE_LANG,e.value)}function E(){a.dispatch(S["a"].ACTIONS.LOGOUT)}return function(e,t){var n=Object(o["resolveComponent"])("router-link"),r=Object(o["resolveComponent"])("Dropdown");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",D,[Object(o["createElementVNode"])("div",C,[Object(o["createElementVNode"])("div",P,[Object(o["createElementVNode"])("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=function(t){return e.$router.push("/")})}," FitTrackee ")]),Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["nav-icon-open",{"menu-open":Object(o["unref"])(u)}])},[Object(o["createElementVNode"])("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=function(e){return O()})})],2),Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["nav-items",{"menu-open":Object(o["unref"])(u)}])},[Object(o["createElementVNode"])("div",M,[L,Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])(["fa fa-close close-icon nav-item",{"menu-closed":!Object(o["unref"])(u)}]),onClick:t[2]||(t[2]=function(e){return d()})},null,2)]),Object(o["createElementVNode"])("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=function(e){return d()})},[Object(o["unref"])(s)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",z,[Object(o["createVNode"])(n,{class:"nav-item",to:"/"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("dashboard.DASHBOARD")),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/workouts"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",2))),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/statistics"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("statistics.STATISTICS")),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/workouts/add"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("workouts.ADD_WORKOUT")),1)]})),_:1}),Object(o["unref"])(s)&&Object(o["unref"])(i).admin?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,class:"nav-item",to:"/admin"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.ADMIN")),1)]})),_:1})):Object(o["createCommentVNode"])("",!0),y])):Object(o["createCommentVNode"])("",!0)]),Object(o["createElementVNode"])("div",w,[Object(o["unref"])(s)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",V,[Object(o["createElementVNode"])("div",B,[Object(o["createVNode"])(A["a"],{user:Object(o["unref"])(i)},null,8,["user"])]),Object(o["createVNode"])(n,{class:"nav-item",to:"/profile",onClick:d},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["unref"])(i).username),1)]})),_:1}),Object(o["createElementVNode"])("div",{class:"nav-item nav-link",onClick:E},Object(o["toDisplayString"])(e.$t("user.LOGOUT")),1)])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",G,[Object(o["createVNode"])(n,{class:"nav-item",to:"/login",onClick:d},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.LOGIN")),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/register",onClick:d},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.REGISTER")),1)]})),_:1})])),Object(o["unref"])(h)&&Object(o["unref"])(l)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:2,class:"nav-item",options:Object(o["unref"])(h),selected:Object(o["unref"])(l),onSelected:m},{default:Object(o["withCtx"])((function(){return[x]})),_:1},8,["options","selected"])):Object(o["createCommentVNode"])("",!0)])],2)])])}}});n("bae4");const F=b()(K,[["__scopeId","data-v-53493688"]]);var W=F,H={id:"no-config"},$={class:"error-page"},Y=Object(o["createStaticVNode"])('
',1),q=["innerHTML"];function X(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",H,[Object(o["createElementVNode"])("div",$,[Y,Object(o["createElementVNode"])("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,q)])])}n("ba7f");const Z={},J=b()(Z,[["render",X],["__scopeId","data-v-c1193208"]]);var Q=J,ee=function(e){return Object(o["pushScopeId"])("data-v-6c3336ff"),e=e(),Object(o["popScopeId"])(),e},te=ee((function(){return Object(o["createElementVNode"])("div",{id:"top"},null,-1)})),ne={key:0,class:"app-container"},re={class:"app-loading"},ce={class:"container scroll"},oe=ee((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1)})),ae=[oe],ie=Object(o["defineComponent"])({setup:function(e){var t=Object(j["a"])(),n=Object(o["computed"])((function(){return t.getters[S["b"].GETTERS.APP_CONFIG]})),r=Object(o["computed"])((function(){return t.getters[S["b"].GETTERS.APP_LOADING]})),c=Object(o["ref"])(!1),a=Object(o["ref"])(!1);function i(e){c.value=e}function s(e){return e.getBoundingClientRect().top=0}function l(){window.onscroll=function(){var e=document.querySelector("#bottom");a.value=null!==e&&s(e)}}function u(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((function(){a.value=!1}),300)}return Object(o["onBeforeMount"])((function(){return t.dispatch(S["b"].ACTIONS.GET_APPLICATION_CONFIG)})),Object(o["onMounted"])((function(){return l()})),function(e,t){var s=Object(o["resolveComponent"])("Loader"),l=Object(o["resolveComponent"])("router-view");return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],null,[te,Object(o["createVNode"])(W,{onMenuInteraction:i}),Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ne,[Object(o["createElementVNode"])("div",re,[Object(o["createVNode"])(s)])])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{key:1,class:Object(o["normalizeClass"])(["app-container",{"hide-scroll":c.value}])},[Object(o["unref"])(n)?(Object(o["openBlock"])(),Object(o["createBlock"])(l,{key:0})):(Object(o["openBlock"])(),Object(o["createBlock"])(Q,{key:1}))],2)),Object(o["createElementVNode"])("div",ce,[Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["scroll-button",{"display-button":a.value}]),onClick:u},ae,2)]),Object(o["unref"])(n)?(Object(o["openBlock"])(),Object(o["createBlock"])(T,{key:2,version:Object(o["unref"])(n)?Object(o["unref"])(n).version:""},null,8,["version"])):Object(o["createCommentVNode"])("",!0)],64)}}});n("1446");const se=b()(ie,[["__scopeId","data-v-6c3336ff"]]);var le=se,ue=(n("5319"),n("3ca3"),n("caad"),n("6c02")),Oe=(n("b64b"),n("c364")),de=function(e){return Object(o["pushScopeId"])("data-v-03002a18"),e=e(),Object(o["popScopeId"])(),e},me={id:"admin-app",class:"admin-card"},Ee=["onSubmit"],be={for:"max_users"},pe=["disabled"],Te={class:"user-limit-help"},fe={class:"info-box"},Ae=de((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)})),Se={for:"max_single_file_size"},je=["disabled"],_e={for:"max_zip_file_size"},Ne=["disabled"],Re={for:"gpx_limit_import"},ge=["disabled"],Ie={key:1,class:"form-buttons"},ve={class:"confirm",type:"submit"},Ue=["onClick"],he={key:2,class:"form-buttons"},ke=Object(o["defineComponent"])({props:{appConfig:null,edition:{default:!1}},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(ue["d"])(),c=Object(o["reactive"])({max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),a=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function i(e){Object.keys(c).map((function(t){["max_single_file_size","max_zip_file_size"].includes(t)?c[t]=Object(Oe["a"])(e[t]):c[t]=e[t]}))}function s(){i(t.appConfig),n.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),r.push("/admin/application")}function l(){var e=Object.assign({},c);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,n.dispatch(S["b"].ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return Object(o["onBeforeMount"])((function(){t.appConfig&&i(t.appConfig)})),function(t,n){var r=Object(o["resolveComponent"])("ErrorMessage"),i=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",me,[Object(o["createVNode"])(i,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.TITLE")),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("form",{class:"admin-form",onSubmit:Object(o["withModifiers"])(l,["prevent"])},[Object(o["createElementVNode"])("label",be,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":n[0]||(n[0]=function(e){return Object(o["unref"])(c).max_users=e}),disabled:!e.edition},null,8,pe),[[o["vModelText"],Object(o["unref"])(c).max_users]])]),Object(o["createElementVNode"])("div",Te,[Object(o["createElementVNode"])("span",fe,[Ae,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),Object(o["createElementVNode"])("label",Se,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[1]||(n[1]=function(e){return Object(o["unref"])(c).max_single_file_size=e}),disabled:!e.edition},null,8,je),[[o["vModelText"],Object(o["unref"])(c).max_single_file_size]])]),Object(o["createElementVNode"])("label",_e,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[2]||(n[2]=function(e){return Object(o["unref"])(c).max_zip_file_size=e}),disabled:!e.edition},null,8,Ne),[[o["vModelText"],Object(o["unref"])(c).max_zip_file_size]])]),Object(o["createElementVNode"])("label",Re,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":n[3]||(n[3]=function(e){return Object(o["unref"])(c).gpx_limit_import=e}),disabled:!e.edition},null,8,ge),[[o["vModelText"],Object(o["unref"])(c).gpx_limit_import]])]),Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:0,message:Object(o["unref"])(a)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),e.edition?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Ie,[Object(o["createElementVNode"])("button",ve,Object(o["toDisplayString"])(t.$t("buttons.SUBMIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:Object(o["withModifiers"])(s,["prevent"])},Object(o["toDisplayString"])(t.$t("buttons.CANCEL")),9,Ue)])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",he,[Object(o["createElementVNode"])("button",{class:"confirm",onClick:n[4]||(n[4]=Object(o["withModifiers"])((function(e){return t.$router.push("/admin/application/edit")}),["prevent"]))},Object(o["toDisplayString"])(t.$t("buttons.EDIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:n[5]||(n[5]=Object(o["withModifiers"])((function(e){return t.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(t.$t("admin.BACK_TO_ADMIN")),1)]))],40,Ee)]})),_:1})])}}});n("61af");const De=b()(ke,[["__scopeId","data-v-03002a18"]]);var Ce=De,Pe=n("05d9"),Me={id:"user-stats"},Le=Object(o["defineComponent"])({props:{appStatistics:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(o["computed"])((function(){return t.appStatistics.uploads_dir_size?Object(Oe["b"])(t.appStatistics.uploads_dir_size,!1):{size:0,suffix:"bytes"}})),r=Object(o["computed"])((function(){return t.appStatistics.users?t.appStatistics.users:0})),c=Object(o["computed"])((function(){return t.appStatistics.sports?t.appStatistics.sports:0})),a=Object(o["computed"])((function(){return t.appStatistics.workouts?t.appStatistics.workouts:0}));return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Me,[Object(o["createVNode"])(Pe["a"],{icon:"users",value:Object(o["unref"])(r),text:e.$t("admin.USER",Object(o["unref"])(r))},null,8,["value","text"]),Object(o["createVNode"])(Pe["a"],{icon:"tags",value:Object(o["unref"])(c),text:e.$t("workouts.SPORT",Object(o["unref"])(c))},null,8,["value","text"]),Object(o["createVNode"])(Pe["a"],{icon:"calendar",value:Object(o["unref"])(a),text:e.$t("workouts.WORKOUT",Object(o["unref"])(a))},null,8,["value","text"]),Object(o["createVNode"])(Pe["a"],{icon:"folder-open",value:Object(o["unref"])(n).size,text:Object(o["unref"])(n).suffix},null,8,["value","text"])])}}});n("e591");const ze=Le;var ye=ze,we={class:"card"},Ve={class:"card-title"},Be={class:"card-content"};function Ge(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",we,[Object(o["createElementVNode"])("div",Ve,[Object(o["renderSlot"])(e.$slots,"title")]),Object(o["createElementVNode"])("div",Be,[Object(o["renderSlot"])(e.$slots,"content")])])}n("83d3");const xe={},Ke=b()(xe,[["render",Ge]]);var Fe=Ke,We=function(e){return Object(o["pushScopeId"])("data-v-7dad7915"),e=e(),Object(o["popScopeId"])(),e},He={id:"admin-menu",class:"center-card"},$e={class:"admin-menu description-list"},Ye=We((function(){return Object(o["createElementVNode"])("br",null,null,-1)})),qe={class:"registration-status"},Xe=Object(o["defineComponent"])({props:{appConfig:null,appStatistics:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.appConfig,c=n.appStatistics;return function(e,t){var n=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",He,[Object(o["createVNode"])(Fe,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.ADMINISTRATION")),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(ye,{appStatistics:Object(o["unref"])(c)},null,8,["appStatistics"]),Object(o["createElementVNode"])("div",$e,[Object(o["createElementVNode"])("dl",null,[Object(o["createElementVNode"])("dt",null,[Object(o["createVNode"])(n,{to:"/admin/application"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.APPLICATION")),1)]})),_:1})]),Object(o["createElementVNode"])("dd",null,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),Ye,Object(o["createElementVNode"])("span",qe,Object(o["toDisplayString"])(e.$t("admin.REGISTRATION_".concat(Object(o["unref"])(r).is_registration_enabled?"ENABLED":"DISABLED"))),1)]),Object(o["createElementVNode"])("dt",null,[Object(o["createVNode"])(n,{to:"/admin/sports"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.SPORT",0))),1)]})),_:1})]),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),Object(o["createElementVNode"])("dt",null,[Object(o["createVNode"])(n,{to:"/admin/users"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("admin.USER",0))),1)]})),_:1})]),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]})),_:1})])}}});n("07a4");const Ze=b()(Xe,[["__scopeId","data-v-7dad7915"]]);var Je=Ze,Qe=n("1119"),et=function(e){return Object(o["pushScopeId"])("data-v-8e49af46"),e=e(),Object(o["popScopeId"])(),e},tt={id:"admin-sports",class:"admin-card"},nt={class:"responsive-table"},rt=et((function(){return Object(o["createElementVNode"])("th",null,"#",-1)})),ct={class:"text-left"},ot={class:"text-left sport-action"},at=et((function(){return Object(o["createElementVNode"])("th",null,null,-1)})),it={class:"center-text"},st=et((function(){return Object(o["createElementVNode"])("span",{class:"cell-heading"},"id",-1)})),lt={class:"cell-heading"},ut={class:"sport-label"},Ot={class:"cell-heading"},dt={class:"center-text"},mt={class:"cell-heading"},Et={class:"sport-action"},bt={class:"cell-heading"},pt={class:"action-button"},Tt=["onClick"],ft={key:0,class:"has-workouts"},At=et((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)})),St=Object(o["defineComponent"])({setup:function(e){var t=Object(f["b"])(),n=t.t,r=Object(j["a"])(),c=Object(o["computed"])((function(){return Object(Qe["d"])(r.getters[S["c"].GETTERS.SPORTS],n)})),a=Object(o["computed"])((function(){return r.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function i(e,t){r.dispatch(S["c"].ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return function(e,t){var n=Object(o["resolveComponent"])("SportImage"),r=Object(o["resolveComponent"])("ErrorMessage"),s=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",tt,[Object(o["createVNode"])(s,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.SPORTS.TITLE")),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("button",{class:"top-button",onClick:t[0]||(t[0]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(o["createElementVNode"])("div",nt,[Object(o["createElementVNode"])("table",null,[Object(o["createElementVNode"])("thead",null,[Object(o["createElementVNode"])("tr",null,[rt,Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(o["createElementVNode"])("th",ct,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(o["createElementVNode"])("th",ot,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1),at])]),Object(o["createElementVNode"])("tbody",null,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(c),(function(t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{key:t.id},[Object(o["createElementVNode"])("td",it,[st,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.id),1)]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",lt,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(o["createVNode"])(n,{title:t.translatedLabel,"sport-label":t.label},null,8,["title","sport-label"])]),Object(o["createElementVNode"])("td",ut,[Object(o["createElementVNode"])("span",Ot,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.translatedLabel),1)]),Object(o["createElementVNode"])("td",dt,[Object(o["createElementVNode"])("span",mt,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])("fa fa".concat(t.is_active?"-check":"","-square-o")),"aria-hidden":"true"},null,2)]),Object(o["createElementVNode"])("td",Et,[Object(o["createElementVNode"])("span",bt,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1),Object(o["createElementVNode"])("div",pt,[Object(o["createElementVNode"])("button",{class:Object(o["normalizeClass"])({danger:t.is_active}),onClick:function(e){return i(t.id,!t.is_active)}},Object(o["toDisplayString"])(e.$t("buttons.".concat(t.is_active?"DIS":"EN","ABLE"))),11,Tt),t.has_workouts?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",ft,[At,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):Object(o["createCommentVNode"])("",!0)])])])})),128))])]),Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:0,message:Object(o["unref"])(a)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("button",{onClick:t[1]||(t[1]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])}}});n("e669");const jt=b()(St,[["__scopeId","data-v-8e49af46"]]);var _t=jt,Nt=n("b166"),Rt=n("9176"),gt=n("6d7d"),It=n("97e5"),vt=n("5e65"),Ut=function(e){return Object(o["pushScopeId"])("data-v-4b4e6923"),e=e(),Object(o["popScopeId"])(),e},ht={id:"admin-users",class:"admin-card"},kt={class:"responsive-table"},Dt=Ut((function(){return Object(o["createElementVNode"])("th",null,"#",-1)})),Ct={class:"left-text"},Pt={class:"left-text"},Mt={class:"left-text"},Lt={class:"cell-heading"},zt={class:"cell-heading"},yt={class:"cell-heading"},wt={class:"cell-heading"},Vt={class:"center-text"},Bt={class:"cell-heading"},Gt={class:"center-text"},xt={class:"cell-heading"},Kt={class:"center-text"},Ft={class:"cell-heading"},Wt=["disabled","onClick"],Ht=Object(o["defineComponent"])({setup:function(e){var t=Object(j["a"])(),n=Object(ue["c"])(),r=Object(ue["d"])(),c=["admin","created_at","username","workouts_count"],a="created_at",i=Object(o["reactive"])(Object(It["a"])(n.query,c,a)),s=Object(o["computed"])((function(){return t.getters[S["a"].GETTERS.AUTH_USER_PROFILE]})),l=Object(o["computed"])((function(){return t.getters[S["e"].GETTERS.USERS]})),u=Object(o["computed"])((function(){return t.getters[S["e"].GETTERS.USERS_PAGINATION]})),O=Object(o["computed"])((function(){return t.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function d(e){t.dispatch(S["e"].ACTIONS.GET_USERS,e)}function m(e,n){t.dispatch(S["e"].ACTIONS.UPDATE_USER,{username:e,admin:n})}function E(e,t){i[e]=t,"per_page"===e&&(i.page=1),r.push({path:"/admin/users",query:i})}return Object(o["onBeforeMount"])((function(){return d(i)})),Object(o["onUnmounted"])((function(){t.dispatch(S["e"].ACTIONS.EMPTY_USERS)})),Object(o["watch"])((function(){return n.query}),(function(e){i=Object(It["a"])(e,c,a,{query:i}),d(i)})),function(e,t){var n=Object(o["resolveComponent"])("router-link"),r=Object(o["resolveComponent"])("ErrorMessage"),a=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ht,[Object(o["createVNode"])(a,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("admin.USER",0))),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("button",{class:"top-button",onClick:t[0]||(t[0]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(o["createVNode"])(Rt["a"],{sort:Object(o["unref"])(It["c"]),order_by:c,query:Object(o["unref"])(i),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:E},null,8,["sort","query"]),Object(o["createElementVNode"])("div",kt,[Object(o["createElementVNode"])("table",null,[Object(o["createElementVNode"])("thead",null,[Object(o["createElementVNode"])("tr",null,[Dt,Object(o["createElementVNode"])("th",Ct,Object(o["toDisplayString"])(e.$t("user.USERNAME")),1),Object(o["createElementVNode"])("th",Pt,Object(o["toDisplayString"])(e.$t("user.EMAIL")),1),Object(o["createElementVNode"])("th",Mt,Object(o["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",0))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("user.ADMIN")),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1)])]),Object(o["createElementVNode"])("tbody",null,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(l),(function(t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{key:t.username},[Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",Lt,Object(o["toDisplayString"])(e.$t("user.PROFILE.PICTURE")),1),Object(o["createVNode"])(A["a"],{user:t},null,8,["user"])]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",zt,Object(o["toDisplayString"])(e.$t("user.USERNAME")),1),Object(o["createVNode"])(n,{to:"/users/".concat(t.username)},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.username),1)]})),_:2},1032,["to"])]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",yt,Object(o["toDisplayString"])(e.$t("user.EMAIL")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.email),1)]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",wt,Object(o["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(Object(o["unref"])(Nt["a"])(Object(o["unref"])(vt["c"])(t.created_at,Object(o["unref"])(s).timezone),"dd/MM/yyyy HH:mm")),1)]),Object(o["createElementVNode"])("td",Vt,[Object(o["createElementVNode"])("span",Bt,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",0))),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.nb_workouts),1)]),Object(o["createElementVNode"])("td",Gt,[Object(o["createElementVNode"])("span",xt,Object(o["toDisplayString"])(e.$t("user.ADMIN")),1),Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])("fa fa".concat(t.admin?"-check":"","-square-o")),"aria-hidden":"true"},null,2)]),Object(o["createElementVNode"])("td",Kt,[Object(o["createElementVNode"])("span",Ft,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1),Object(o["createElementVNode"])("button",{class:Object(o["normalizeClass"])({danger:t.admin}),disabled:t.username===Object(o["unref"])(s).username,onClick:function(e){return m(t.username,!t.admin)}},Object(o["toDisplayString"])(e.$t("admin.USERS.TABLE.".concat(t.admin?"REMOVE":"ADD","_ADMIN_RIGHTS"))),11,Wt)])])})),128))])]),Object(o["unref"])(u).page?(Object(o["openBlock"])(),Object(o["createBlock"])(gt["a"],{key:0,path:"/admin/users",pagination:Object(o["unref"])(u),query:Object(o["unref"])(i)},null,8,["pagination","query"])):Object(o["createCommentVNode"])("",!0),Object(o["unref"])(O)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:1,message:Object(o["unref"])(O)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("button",{onClick:t[1]||(t[1]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])}}});n("6fe1");const $t=b()(Ht,[["__scopeId","data-v-4b4e6923"]]);var Yt=$t,qt=n("3c44"),Xt={class:"profile-tabs custom-checkboxes-group"},Zt={class:"profile-tabs-checkboxes custom-checkboxes"},Jt=["id","name","checked","disabled","onInput"],Qt=Object(o["defineComponent"])({props:{tabs:null,selectedTab:null,edition:null,disabled:{default:!1}},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.tabs,c=n.selectedTab,a=n.disabled;function i(e){switch(e){case"PICTURE":return"/profile/edit/picture";case"PREFERENCES":return"/profile".concat(t.edition?"/edit":"","/preferences");default:case"PROFILE":return"/profile".concat(t.edition?"/edit":"")}}return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Xt,[Object(o["createElementVNode"])("div",Zt,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(r),(function(t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"profile-tab custom-checkbox",key:t},[Object(o["createElementVNode"])("label",null,[Object(o["createElementVNode"])("input",{type:"radio",id:t,name:t,checked:Object(o["unref"])(c)===t,disabled:Object(o["unref"])(a),onInput:function(n){return e.$router.push(i(t))}},null,40,Jt),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.TABS.".concat(t))),1)])])})),128))])])}}});n("c040");const en=Qt;var tn=en,nn={id:"user-profile"},rn={class:"box"},cn=Object(o["defineComponent"])({props:{user:null,tab:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.user,c=n.tab,a=["PROFILE","PREFERENCES"];return function(e,t){var n=Object(o["resolveComponent"])("router-view");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",nn,[Object(o["createVNode"])(qt["a"],{user:Object(o["unref"])(r)},null,8,["user"]),Object(o["createElementVNode"])("div",rn,[Object(o["createVNode"])(tn,{tabs:a,selectedTab:Object(o["unref"])(c),edition:!1},null,8,["selectedTab"]),Object(o["createVNode"])(n,{user:Object(o["unref"])(r)},null,8,["user"])])])}}});n("8bbf");const on=b()(cn,[["__scopeId","data-v-b211d1ec"]]);var an=on,sn=n("71a7"),ln={id:"user-preferences",class:"description-list"},un={class:"profile-buttons"},On=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(o["computed"])((function(){return t.user.language?v[t.user.language]:v["en"]})),r=Object(o["computed"])((function(){return t.user.weekm?"MONDAY":"SUNDAY"})),c=Object(o["computed"])((function(){return t.user.timezone?t.user.timezone:"Europe/Paris"}));return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ln,[Object(o["createElementVNode"])("dl",null,[Object(o["createElementVNode"])("dt",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+":",1),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(Object(o["unref"])(n)),1),Object(o["createElementVNode"])("dt",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+":",1),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(Object(o["unref"])(c)),1),Object(o["createElementVNode"])("dt",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.".concat(Object(o["unref"])(r)))),1)]),Object(o["createElementVNode"])("div",un,[Object(o["createElementVNode"])("button",{onClick:t[0]||(t[0]=function(t){return e.$router.push("/profile/edit/preferences")})},Object(o["toDisplayString"])(e.$t("user.PROFILE.EDIT_PREFERENCES")),1),Object(o["createElementVNode"])("button",{onClick:t[1]||(t[1]=function(t){return e.$router.push("/")})},Object(o["toDisplayString"])(e.$t("common.HOME")),1)])])}}});n("c6c1");const dn=b()(On,[["__scopeId","data-v-5eb5bd11"]]);var mn=dn,En={id:"user-profile-edition",class:"center-card"},bn=Object(o["defineComponent"])({props:{user:null,tab:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["toRefs"])(t),c=r.user,a=r.tab,i=["PROFILE","PICTURE","PREFERENCES"],s=Object(o["computed"])((function(){return n.getters[S["a"].GETTERS.USER_LOADING]}));return function(e,t){var n=Object(o["resolveComponent"])("router-view"),r=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",En,[Object(o["createVNode"])(r,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.".concat(Object(o["unref"])(a),"_EDITION"))),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(tn,{tabs:i,selectedTab:Object(o["unref"])(a),edition:!0,disabled:Object(o["unref"])(s)},null,8,["selectedTab","disabled"]),Object(o["createVNode"])(n,{user:Object(o["unref"])(c)},null,8,["user"])]})),_:1})])}}});const pn=bn;var Tn=pn,fn={id:"user-infos-edition"},An={class:"profile-form form-box"},Sn=["onSubmit"],jn={class:"form-items",for:"email"},_n=["value"],Nn={class:"form-items",for:"registrationDate"},Rn=["value"],gn={class:"form-items",for:"password"},In=["disabled"],vn={class:"form-items",for:"passwordConfirmation"},Un=["disabled"],hn=Object(o["createElementVNode"])("hr",null,null,-1),kn={class:"form-items",for:"first_name"},Dn=["disabled"],Cn={class:"form-items",for:"last_name"},Pn={class:"form-items",for:"birth_date"},Mn=["disabled"],Ln={class:"form-items",for:"location"},zn=["disabled"],yn={class:"form-items"},wn={class:"form-buttons"},Vn={class:"confirm",type:"submit"},Bn=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["toRefs"])(t),c=r.user,a=Object(o["reactive"])({password:"",password_conf:"",first_name:"",last_name:"",birth_date:"",location:"",bio:""}),i=Object(o["computed"])((function(){return t.user.created_at?Object(Nt["a"])(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):""})),s=Object(o["computed"])((function(){return n.getters[S["a"].GETTERS.USER_LOADING]})),l=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]})),u=Object(o["ref"])(!1);function O(e){a.first_name=e.first_name?e.first_name:"",a.last_name=e.last_name?e.last_name:"",a.birth_date=e.birth_date?Object(Nt["a"])(new Date(e.birth_date),"yyyy-MM-dd"):"",a.location=e.location?e.location:"",a.bio=e.bio?e.bio:""}function d(e){a.bio=e}function m(){n.dispatch(S["a"].ACTIONS.UPDATE_USER_PROFILE,a)}function E(e){u.value=e}function b(e){n.dispatch(S["a"].ACTIONS.DELETE_ACCOUNT,{username:e})}return Object(o["onMounted"])((function(){t.user&&O(t.user)})),function(e,t){var n=Object(o["resolveComponent"])("Modal"),r=Object(o["resolveComponent"])("ErrorMessage"),O=Object(o["resolveComponent"])("CustomTextArea");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",fn,[Object(o["unref"])(u)?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=function(e){return b(Object(o["unref"])(c).username)}),onCancelAction:t[1]||(t[1]=function(e){return E(!1)})},null,8,["title","message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",An,[Object(o["unref"])(l)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:0,message:Object(o["unref"])(l)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("form",{onSubmit:Object(o["withModifiers"])(m,["prevent"])},[Object(o["createElementVNode"])("label",jn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.EMAIL"))+" ",1),Object(o["createElementVNode"])("input",{id:"email",value:Object(o["unref"])(c).email,disabled:""},null,8,_n)]),Object(o["createElementVNode"])("label",Nn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),Object(o["createElementVNode"])("input",{id:"registrationDate",value:Object(o["unref"])(i),disabled:""},null,8,Rn)]),Object(o["createElementVNode"])("label",gn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PASSWORD"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"password",type:"password","onUpdate:modelValue":t[2]||(t[2]=function(e){return Object(o["unref"])(a).password=e}),disabled:Object(o["unref"])(s)},null,8,In),[[o["vModelText"],Object(o["unref"])(a).password]])]),Object(o["createElementVNode"])("label",vn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PASSWORD_CONFIRMATION"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"passwordConfirmation",type:"password","onUpdate:modelValue":t[3]||(t[3]=function(e){return Object(o["unref"])(a).password_conf=e}),disabled:Object(o["unref"])(s)},null,8,Un),[[o["vModelText"],Object(o["unref"])(a).password_conf]])]),hn,Object(o["createElementVNode"])("label",kn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"first_name","onUpdate:modelValue":t[4]||(t[4]=function(e){return Object(o["unref"])(a).first_name=e}),disabled:Object(o["unref"])(s)},null,8,Dn),[[o["vModelText"],Object(o["unref"])(a).first_name]])]),Object(o["createElementVNode"])("label",Cn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"last_name","onUpdate:modelValue":t[5]||(t[5]=function(e){return Object(o["unref"])(a).last_name=e})},null,512),[[o["vModelText"],Object(o["unref"])(a).last_name]])]),Object(o["createElementVNode"])("label",Pn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[6]||(t[6]=function(e){return Object(o["unref"])(a).birth_date=e}),disabled:Object(o["unref"])(s)},null,8,Mn),[[o["vModelText"],Object(o["unref"])(a).birth_date]])]),Object(o["createElementVNode"])("label",Ln,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"location","onUpdate:modelValue":t[7]||(t[7]=function(e){return Object(o["unref"])(a).location=e}),disabled:Object(o["unref"])(s)},null,8,zn),[[o["vModelText"],Object(o["unref"])(a).location]])]),Object(o["createElementVNode"])("label",yn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.BIO"))+" ",1),Object(o["createVNode"])(O,{name:"bio",charLimit:200,input:Object(o["unref"])(a).bio,disabled:Object(o["unref"])(s),onUpdateValue:d},null,8,["input","disabled"])]),Object(o["createElementVNode"])("div",wn,[Object(o["createElementVNode"])("button",Vn,Object(o["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[8]||(t[8]=Object(o["withModifiers"])((function(t){return e.$router.push("/profile")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("buttons.CANCEL")),1),Object(o["createElementVNode"])("button",{class:"danger",onClick:t[9]||(t[9]=Object(o["withModifiers"])((function(e){return E(!0)}),["prevent"]))},Object(o["toDisplayString"])(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],40,Sn)])])}}});n("44dee");const Gn=Bn;var xn=Gn,Kn=function(e){return Object(o["pushScopeId"])("data-v-239b9d46"),e=e(),Object(o["popScopeId"])(),e},Fn={id:"user-picture-edition"},Wn={class:"user-picture-form"},Hn=["onSubmit"],$n={class:"picture-help"},Yn={class:"info-box"},qn=Kn((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)})),Xn={class:"picture-buttons"},Zn=["disabled"],Jn=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["toRefs"])(t),c=r.user,a=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]})),i=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.APP_CONFIG]})),s=i.value.max_single_file_size?Object(Oe["b"])(i.value.max_single_file_size):"",l=Object(o["ref"])(null);function u(){n.dispatch(S["a"].ACTIONS.DELETE_PICTURE)}function O(e){e.target.files&&(l.value=e.target.files[0])}function d(){l.value&&n.dispatch(S["a"].ACTIONS.UPDATE_USER_PICTURE,{picture:l.value})}return function(e,t){var n=Object(o["resolveComponent"])("ErrorMessage");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Fn,[Object(o["createElementVNode"])("div",Wn,[Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,message:Object(o["unref"])(a)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createVNode"])(A["a"],{user:Object(o["unref"])(c)},null,8,["user"]),Object(o["createElementVNode"])("form",{onSubmit:Object(o["withModifiers"])(d,["prevent"])},[Object(o["createElementVNode"])("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:O},null,32),Object(o["createElementVNode"])("div",$n,[Object(o["createElementVNode"])("span",Yn,[qn,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(o["toDisplayString"])(Object(o["unref"])(s)),1)])]),Object(o["createElementVNode"])("div",Xn,[Object(o["createElementVNode"])("button",{type:"submit",disabled:!Object(o["unref"])(l)},Object(o["toDisplayString"])(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Zn),Object(o["unref"])(c).picture?(Object(o["openBlock"])(),Object(o["createElementBlock"])("button",{key:0,class:"danger",onClick:u},Object(o["toDisplayString"])(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[0]||(t[0]=function(t){return e.$router.push("/profile")})},Object(o["toDisplayString"])(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,Hn)])])}}});n("9ad0");const Qn=b()(Jn,[["__scopeId","data-v-239b9d46"]]);var er=Qn,tr=(n("498a"),n("4de4"),["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Fort_Nelson","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"]),nr={id:"tz-dropdown"},rr=["value","disabled","onKeydown"],cr=["onClick","onMouseover","autofocus"],or=Object(o["defineComponent"])({props:{input:null,disabled:{default:!1}},emits:["updateTimezone"],setup:function(e,t){var n=t.emit,r=e,c=Object(o["toRefs"])(r),a=c.input,i=c.disabled,s=Object(o["ref"])(r.input),l=Object(o["ref"])(!1),u=Object(o["ref"])(null),O=Object(o["ref"])(0);function d(e){return e.toLowerCase().match(s.value.toLowerCase())}function m(e){O.value=e}function E(e){s.value=e,l.value=!1,n("updateTimezone",e)}function b(e){var t,n,r,c;(e.preventDefault(),null!==(t=u.value)&&void 0!==t&&null!==(n=t.firstElementChild)&&void 0!==n&&n.innerHTML)&&E(null===(r=u.value)||void 0===r||null===(c=r.firstElementChild)||void 0===c?void 0:c.innerHTML)}function p(e){e.preventDefault(),l.value=!0,s.value=e.target.value.trim()}return Object(o["watch"])((function(){return r.input}),(function(e){s.value=e})),function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",nr,[Object(o["createElementVNode"])("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:s.value,disabled:Object(o["unref"])(i),required:"",onKeydown:[t[0]||(t[0]=Object(o["withKeys"])((function(e){return E(Object(o["unref"])(a))}),["esc"])),Object(o["withKeys"])(b,["enter"])],onInput:p},null,40,rr),l.value?(Object(o["openBlock"])(),Object(o["createElementBlock"])("ul",{key:0,class:"tz-dropdown-list",ref:function(e,t){t["tzList"]=e,u.value=e}},[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(tr).filter((function(e){return d(e)})),(function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("li",{key:e,class:Object(o["normalizeClass"])(["tz-dropdown-item",{focus:t===O.value}]),onClick:function(t){return E(e)},onMouseover:function(e){return m(t)},autofocus:t===O.value},Object(o["toDisplayString"])(e),43,cr)})),128))],512)):Object(o["createCommentVNode"])("",!0)])}}});n("dfd6");const ar=b()(or,[["__scopeId","data-v-d1c5cf04"]]);var ir=ar,sr={id:"user-preferences-edition"},lr={class:"profile-form form-box"},ur=["onSubmit"],Or={class:"form-items"},dr=["disabled"],mr=["value"],Er={class:"form-items"},br={class:"form-items"},pr=["disabled"],Tr=["value"],fr={class:"form-buttons"},Ar={class:"confirm",type:"submit"},Sr=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["reactive"])({language:"",timezone:"Europe/Paris",weekm:!1}),c=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],a=Object(o["computed"])((function(){return n.getters[S["a"].GETTERS.USER_LOADING]})),i=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function s(e){r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.weekm=!!e.weekm&&e.weekm}function l(){n.dispatch(S["a"].ACTIONS.UPDATE_USER_PREFERENCES,r)}function u(e){r.timezone=e}return Object(o["onMounted"])((function(){t.user&&s(t.user)})),function(e,t){var n=Object(o["resolveComponent"])("ErrorMessage");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",sr,[Object(o["createElementVNode"])("div",lr,[Object(o["unref"])(i)?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,message:Object(o["unref"])(i)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("form",{onSubmit:Object(o["withModifiers"])(l,["prevent"])},[Object(o["createElementVNode"])("label",Or,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=function(e){return Object(o["unref"])(r).language=e}),disabled:Object(o["unref"])(a)},[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(h),(function(e){return Object(o["openBlock"])(),Object(o["createElementBlock"])("option",{value:e.value,key:e.value},Object(o["toDisplayString"])(e.label),9,mr)})),128))],8,dr),[[o["vModelSelect"],Object(o["unref"])(r).language]])]),Object(o["createElementVNode"])("label",Er,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+" ",1),Object(o["createVNode"])(ir,{input:Object(o["unref"])(r).timezone,disabled:Object(o["unref"])(a),onUpdateTimezone:u},null,8,["input","disabled"])]),Object(o["createElementVNode"])("label",br,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("select",{id:"weekm","onUpdate:modelValue":t[1]||(t[1]=function(e){return Object(o["unref"])(r).weekm=e}),disabled:Object(o["unref"])(a)},[(Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(c,(function(t){return Object(o["createElementVNode"])("option",{value:t.value,key:t.value},Object(o["toDisplayString"])(e.$t("user.PROFILE.".concat(t.label))),9,Tr)})),64))],8,pr),[[o["vModelSelect"],Object(o["unref"])(r).weekm]])]),Object(o["createElementVNode"])("div",fr,[Object(o["createElementVNode"])("button",Ar,Object(o["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[2]||(t[2]=Object(o["withModifiers"])((function(t){return e.$router.push("/profile/preferences")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("buttons.CANCEL")),1)])],40,ur)])])}}});const jr=Sr;var _r=jr,Nr=n("5502"),Rr=n("ade3"),gr=n("bc3a"),Ir=n.n(gr),vr=n("d257"),Ur=Ir.a.create({baseURL:Object(vr["a"])()});Ur.interceptors.request.use((function(e){var t=Mc.getters[S["a"].GETTERS.AUTH_TOKEN];if(t){var n="Bearer ".concat(t);e.headers&&e.headers.Authorization!==n&&(e.headers.Authorization="Bearer ".concat(t))}return e}),(function(e){return Promise.reject(e)}));var hr,kr,Dr,Cr,Pr,Mr,Lr,zr,yr,wr,Vr,Br,Gr,xr,Kr=Ur,Fr=Ir.a.create({baseURL:Object(vr["a"])()}),Wr=Fr,Hr=g.global.locale,$r=function(e){localStorage.removeItem("authToken"),e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["d"].MUTATIONS.EMPTY_USER_STATS),e.commit(S["a"].MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(S["e"].MUTATIONS.UPDATE_USERS,[]),e.commit(S["f"].MUTATIONS.EMPTY_WORKOUTS),e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),Vc.push("/login")},Yr=(hr={},Object(Rr["a"])(hr,S["a"].ACTIONS.CHECK_AUTH_USER,(function(e){window.localStorage.authToken&&!e.getters[S["a"].GETTERS.IS_AUTHENTICATED]&&(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE))})),Object(Rr["a"])(hr,S["a"].ACTIONS.GET_USER_PROFILE,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("auth/profile").then((function(t){"success"===t.data.status?(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&(e.commit(S["b"].MUTATIONS.UPDATE_LANG,t.data.data.language),Hr.value=t.data.data.language),e.dispatch(S["c"].ACTIONS.GET_SPORTS)):(Object(vr["b"])(e,null),$r(e))})).catch((function(t){Object(vr["b"])(e,t),$r(e)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.LOGIN_OR_REGISTER,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Wr.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(S["a"].MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE).then((function(){return Vc.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")}))}else Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.LOGOUT,(function(e){$r(e)})),Object(Rr["a"])(hr,S["a"].ACTIONS.UPDATE_USER_PROFILE,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),Kr.post("auth/profile/edit",t).then((function(t){"success"===t.data.status?(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),Vc.push("/profile")):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.UPDATE_USER_PREFERENCES,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),Kr.post("auth/profile/edit/preferences",t).then((function(t){"success"===t.data.status?(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(S["b"].MUTATIONS.UPDATE_LANG,t.data.data.language),Hr.value=t.data.data.language,Vc.push("/profile/preferences")):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.UPDATE_USER_PICTURE,(function(e,t){if(e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");var n=new FormData;n.append("file",t.picture),Kr.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){"success"===t.data.status?e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE).then((function(){return Vc.push("/profile")})):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.DELETE_ACCOUNT,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.delete("users/".concat(t.username)).then((function(t){204===t.status?e.dispatch(S["a"].ACTIONS.LOGOUT).then((function(){return Vc.push("/")})):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.DELETE_PICTURE,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),Kr.delete("auth/picture").then((function(t){204===t.status?e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE).then((function(){return Vc.push("/profile")})):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.SEND_PASSWORD_RESET_REQUEST,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Wr.post("auth/password/reset-request",t).then((function(t){"success"===t.data.status?Vc.push("/password-reset/sent"):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.RESET_USER_PASSWORD,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Wr.post("auth/password/update",t).then((function(t){"success"===t.data.status?Vc.push("/password-reset/password-updated"):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),hr),qr=(kr={},Object(Rr["a"])(kr,S["a"].GETTERS.AUTH_TOKEN,(function(e){return e.authToken})),Object(Rr["a"])(kr,S["a"].GETTERS.AUTH_USER_PROFILE,(function(e){return e.authUserProfile})),Object(Rr["a"])(kr,S["a"].GETTERS.IS_AUTHENTICATED,(function(e){return null!==e.authToken})),Object(Rr["a"])(kr,S["a"].GETTERS.IS_ADMIN,(function(e){return e.authUserProfile&&e.authUserProfile.admin})),Object(Rr["a"])(kr,S["a"].GETTERS.USER_LOADING,(function(e){return e.loading})),kr),Xr=(Dr={},Object(Rr["a"])(Dr,S["a"].MUTATIONS.CLEAR_AUTH_USER_TOKEN,(function(e){e.authToken=null,e.authUserProfile={}})),Object(Rr["a"])(Dr,S["a"].MUTATIONS.UPDATE_AUTH_TOKEN,(function(e,t){e.authToken=t})),Object(Rr["a"])(Dr,S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,(function(e,t){e.authUserProfile=t})),Object(Rr["a"])(Dr,S["a"].MUTATIONS.UPDATE_USER_LOADING,(function(e,t){e.loading=t})),Dr),Zr={authToken:null,authUserProfile:{},loading:!1},Jr={state:Zr,actions:Yr,getters:qr,mutations:Xr},Qr=Jr,ec=(Cr={},Object(Rr["a"])(Cr,S["b"].ACTIONS.GET_APPLICATION_CONFIG,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_LOADING,!0),Kr.get("config").then((function(t){"success"===t.data.status?e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_LOADING,!1)}))})),Object(Rr["a"])(Cr,S["b"].ACTIONS.GET_APPLICATION_STATS,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("stats/all").then((function(t){"success"===t.data.status?e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(Cr,S["b"].ACTIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.patch("config",t).then((function(t){"success"===t.data.status?(e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),Vc.push("/admin/application")):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Cr),tc=(Pr={},Object(Rr["a"])(Pr,S["b"].GETTERS.APP_CONFIG,(function(e){return e.application.config})),Object(Rr["a"])(Pr,S["b"].GETTERS.APP_LOADING,(function(e){return e.appLoading})),Object(Rr["a"])(Pr,S["b"].GETTERS.APP_STATS,(function(e){return e.application.statistics})),Object(Rr["a"])(Pr,S["b"].GETTERS.ERROR_MESSAGES,(function(e){return e.errorMessages})),Object(Rr["a"])(Pr,S["b"].GETTERS.LANGUAGE,(function(e){return e.language})),Object(Rr["a"])(Pr,S["b"].GETTERS.LOCALE,(function(e){return e.locale})),Pr),nc=(Mr={},Object(Rr["a"])(Mr,S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES,(function(e){e.errorMessages=null})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.SET_ERROR_MESSAGES,(function(e,t){e.errorMessages=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.application.config=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_APPLICATION_LOADING,(function(e,t){e.appLoading=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_APPLICATION_STATS,(function(e,t){e.application.statistics=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_LANG,(function(e,t){e.language=t,e.locale=I[t]})),Mr),rc={root:!0,language:"en",locale:_["a"],errorMessages:null,application:{},appLoading:!1},cc=(Lr={},Object(Rr["a"])(Lr,S["c"].ACTIONS.GET_SPORTS,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("sports").then((function(t){"success"===t.data.status?e.commit(S["c"].MUTATIONS.SET_SPORTS,t.data.data.sports):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(Lr,S["c"].ACTIONS.UPDATE_SPORTS,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.patch("sports/".concat(t.id),{is_active:t.isActive}).then((function(t){"success"===t.data.status?e.dispatch(S["c"].ACTIONS.GET_SPORTS):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Lr),oc=Object(Rr["a"])({},S["c"].GETTERS.SPORTS,(function(e){return e.sports})),ac=Object(Rr["a"])({},S["c"].MUTATIONS.SET_SPORTS,(function(e,t){e.sports=t})),ic={sports:[]},sc={state:ic,actions:cc,getters:oc,mutations:ac},lc=sc,uc=(n("99af"),Object(Rr["a"])({},S["d"].ACTIONS.GET_USER_STATS,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("stats/".concat(t.username,"/").concat(t.filterType),{params:t.params}).then((function(t){"success"===t.data.status?e.commit(S["d"].MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))}))),Oc=Object(Rr["a"])({},S["d"].GETTERS.USER_STATS,(function(e){return e.statistics})),dc=(zr={},Object(Rr["a"])(zr,S["d"].MUTATIONS.UPDATE_USER_STATS,(function(e,t){e.statistics=t})),Object(Rr["a"])(zr,S["d"].MUTATIONS.EMPTY_USER_STATS,(function(e){e.statistics={}})),zr),mc={statistics:{}},Ec={state:mc,actions:uc,getters:Oc,mutations:dc},bc=Ec,pc=(yr={},Object(Rr["a"])(yr,S["e"].ACTIONS.EMPTY_USER,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USER,{})})),Object(Rr["a"])(yr,S["e"].ACTIONS.EMPTY_USERS,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USERS,[]),e.commit(S["e"].MUTATIONS.UPDATE_USERS_PAGINATION,{})})),Object(Rr["a"])(yr,S["e"].ACTIONS.GET_USER,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!0),Kr.get("users/".concat(t)).then((function(t){"success"===t.data.status?e.commit(S["e"].MUTATIONS.UPDATE_USER,t.data.data.users[0]):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(Rr["a"])(yr,S["e"].ACTIONS.GET_USERS,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!0),Kr.get("users",{params:t}).then((function(t){"success"===t.data.status?(e.commit(S["e"].MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(S["e"].MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(Rr["a"])(yr,S["e"].ACTIONS.UPDATE_USER,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.patch("users/".concat(t.username),{admin:t.admin}).then((function(t){"success"===t.data.status?e.commit(S["e"].MUTATIONS.UPDATE_USER_IN_USERS,t.data.data.users[0]):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),yr),Tc=(wr={},Object(Rr["a"])(wr,S["e"].GETTERS.USER,(function(e){return e.user})),Object(Rr["a"])(wr,S["e"].GETTERS.USERS,(function(e){return e.users})),Object(Rr["a"])(wr,S["e"].GETTERS.USERS_LOADING,(function(e){return e.loading})),Object(Rr["a"])(wr,S["e"].GETTERS.USERS_PAGINATION,(function(e){return e.pagination})),wr),fc=(Vr={},Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USER,(function(e,t){e.user=t})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USER_IN_USERS,(function(e,t){e.users=e.users.map((function(e){return e.username===t.username?t:e}))})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USERS,(function(e,t){e.users=t})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USERS_LOADING,(function(e,t){e.loading=t})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USERS_PAGINATION,(function(e,t){e.pagination=t})),Vr),Ac={user:{},users:[],loading:!1,pagination:{}},Sc={state:Ac,actions:pc,getters:Tc,mutations:fc},jc=Sc,_c=n("4870"),Nc=function(e,t,n){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("workouts",{params:t}).then((function(t){"success"===t.data.status?(e.commit(S["f"].MUTATIONS[n],t.data.data.workouts),n===_c["c"]["SET_USER_WORKOUTS"]&&e.commit(S["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))},Rc=(Br={},Object(Rr["a"])(Br,S["f"].ACTIONS.GET_CALENDAR_WORKOUTS,(function(e,t){e.commit(S["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Nc(e,t,_c["c"]["SET_CALENDAR_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_USER_WORKOUTS,(function(e,t){Nc(e,t,_c["c"]["SET_USER_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_TIMELINE_WORKOUTS,(function(e,t){Nc(e,t,_c["c"]["SET_TIMELINE_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_MORE_TIMELINE_WORKOUTS,(function(e,t){Nc(e,t,_c["c"]["ADD_TIMELINE_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_WORKOUT_DATA,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0);var n=t.segmentId?"/segment/".concat(t.segmentId):"";Kr.get("workouts/".concat(t.workoutId)).then((function(r){var c=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===c.segments.length||!c.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(S["f"].MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(Kr.get("workouts/".concat(t.workoutId,"/chart_data").concat(n)).then((function(t){"success"===t.data.status&&e.commit(S["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),Kr.get("workouts/".concat(t.workoutId,"/gpx").concat(n)).then((function(t){"success"===t.data.status&&e.commit(S["f"].MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),Object(vr["b"])(e,null)})).catch((function(t){e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.DELETE_WORKOUT,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),Kr.delete("workouts/".concat(t.workoutId)).then((function(){e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE),Vc.push("/")})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.EDIT_WORKOUT,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),Kr.patch("workouts/".concat(t.workoutId),t.data).then((function(){e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE),e.dispatch(S["f"].ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((function(){Vc.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.ADD_WORKOUT,(function(e,t){if(e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["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,'"}')),Kr.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){if("created"===t.data.status){e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];Vc.push(1===t.data.data.workouts.length?"/workouts/".concat(n.id):"/")}})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.ADD_WORKOUT_WITHOUT_GPX,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),Kr.post("workouts/no_gpx",t).then((function(t){if("created"===t.data.status){e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];Vc.push("/workouts/".concat(n.id))}})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Br),gc=(Gr={},Object(Rr["a"])(Gr,S["f"].GETTERS.CALENDAR_WORKOUTS,(function(e){return e.calendar_workouts})),Object(Rr["a"])(Gr,S["f"].GETTERS.TIMELINE_WORKOUTS,(function(e){return e.timeline_workouts})),Object(Rr["a"])(Gr,S["f"].GETTERS.USER_WORKOUTS,(function(e){return e.user_workouts})),Object(Rr["a"])(Gr,S["f"].GETTERS.WORKOUT_DATA,(function(e){return e.workoutData})),Object(Rr["a"])(Gr,S["f"].GETTERS.WORKOUTS_PAGINATION,(function(e){return e.pagination})),Gr),Ic=(xr={},Object(Rr["a"])(xr,S["f"].MUTATIONS.ADD_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=e.timeline_workouts.concat(t)})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_CALENDAR_WORKOUTS,(function(e,t){e.calendar_workouts=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_USER_WORKOUTS,(function(e,t){e.user_workouts=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,(function(e,t){e.pagination=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT,(function(e,t){e.workoutData.workout=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,(function(e,t){e.workoutData.chartData=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT_GPX,(function(e,t){e.workoutData.gpx=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT_LOADING,(function(e,t){e.workoutData.loading=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS,(function(e){e.calendar_workouts=[]})),Object(Rr["a"])(xr,S["f"].MUTATIONS.EMPTY_WORKOUTS,(function(e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]})),Object(Rr["a"])(xr,S["f"].MUTATIONS.EMPTY_WORKOUT,(function(e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}})),xr),vc={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},Uc={state:vc,actions:Rc,getters:gc,mutations:Ic},hc=Uc,kc={authUserModule:Qr,sportsModule:lc,statsModule:bc,usersModule:jc,workoutsModule:hc},Dc={state:rc,actions:ec,getters:tc,mutations:nc,modules:kc},Cc=Dc,Pc=Object(Nr["a"])(Cc),Mc=Pc,Lc=function(e){var t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},zc=[{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:an,props:function(e){return{tab:Lc(e.path)}},children:[{path:"",name:"UserInfos",component:sn["a"]},{path:"preferences",name:"UserPreferences",component:mn}]},{path:"edit",name:"UserProfileEdition",component:Tn,props:function(e){return{tab:Lc(e.path)}},children:[{path:"",name:"UserInfosEdition",component:xn},{path:"picture",name:"UserPictureEdition",component:er},{path:"preferences",name:"UserPreferencesEdition",component:_r}]}]},{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:Je},{path:"application",name:"ApplicationAdministration",component:Ce},{path:"application/edit",name:"ApplicationAdministrationEdition",component:Ce,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:_t},{path:"users",name:"UsersAdministration",component:Yt}]},{path:"/:pathMatch(.*)*",name:"not-found",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"e19f"))}}],yc=Object(ue["a"])({history:Object(ue["b"])("/"),routes:zc}),wc=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register"];yc.beforeEach((function(e,t,n){Mc.dispatch(S["a"].ACTIONS.CHECK_AUTH_USER).then((function(){if(Mc.getters[S["a"].GETTERS.IS_AUTHENTICATED]&&wc.includes(e.path))return n("/");if(Mc.getters[S["a"].GETTERS.IS_AUTHENTICATED]||wc.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 Vc=yc,Bc={class:"alert-message"},Gc=["innerHTML"],xc=Object(o["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.message;return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Bc,[Object(o["createElementVNode"])("div",{innerHTML:e.$t(Object(o["unref"])(r))},null,8,Gc)])}}});n("b9a4");const Kc=b()(xc,[["__scopeId","data-v-1c7b89ce"]]);var Fc=Kc,Wc={class:"custom-textarea"},Hc=["id","name","maxLenght","disabled"],$c={class:"remaining-chars"},Yc=Object(o["defineComponent"])({props:{name:null,charLimit:{default:500},disabled:{default:!1},input:{default:""}},emits:["updateValue"],setup:function(e,t){var n=t.emit,r=e,c=Object(o["ref"])("");function a(e){n("updateValue",e.target.value)}return Object(o["watch"])((function(){return r.input}),(function(e){c.value=e})),function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Wc,[Object(o["withDirectives"])(Object(o["createElementVNode"])("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=function(e){return Object(o["isRef"])(c)?c.value=e:c=e}),onInput:a},null,40,Hc),[[o["vModelText"],Object(o["unref"])(c)]]),Object(o["createElementVNode"])("div",$c,Object(o["toDisplayString"])(t.$t("workouts.REMAINING_CHARS"))+": "+Object(o["toDisplayString"])(Object(o["unref"])(c).length)+"/"+Object(o["toDisplayString"])(e.charLimit),1)])}}});n("f41d");const qc=b()(Yc,[["__scopeId","data-v-129e44c0"]]);var Xc=qc,Zc={class:"dropdown-wrapper"},Jc={key:0,class:"dropdown-list"},Qc=["onClick"],eo=Object(o["defineComponent"])({props:{options:null,selected:null},emits:{selected:function(e){return e}},setup:function(e,t){var n=t.emit,r=e,c=Object(ue["c"])(),a=Object(o["ref"])(!1),i=r.options.map((function(e){return e}));function s(){a.value=!a.value}function l(e){n("selected",e),a.value=!1}return Object(o["watch"])((function(){return c.path}),(function(){return a.value=!1})),function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Zc,[Object(o["createElementVNode"])("div",{class:"dropdown-selected",onClick:s},[Object(o["renderSlot"])(t.$slots,"default")]),Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("ul",Jc,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(i),(function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("li",{class:Object(o["normalizeClass"])(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:function(e){return l(t)}},Object(o["toDisplayString"])(t.label),11,Qc)})),128))])):Object(o["createCommentVNode"])("",!0)])}}});n("55a6");const to=b()(eo,[["__scopeId","data-v-ca61364c"]]);var no=to,ro={class:"error-message"},co={key:0},oo={key:1},ao=Object(o["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.message;return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ro,[Array.isArray(Object(o["unref"])(r))?(Object(o["openBlock"])(),Object(o["createElementBlock"])("ul",co,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(r),(function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("li",{key:n},Object(o["toDisplayString"])(e.$t(t)),1)})),128))])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",oo,Object(o["toDisplayString"])(e.$t(Object(o["unref"])(r))),1))])}}});n("cf98");const io=b()(ao,[["__scopeId","data-v-4366d0e7"]]);var so=io,lo={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"},uo=Object(o["createElementVNode"])("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Oo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),Object(o["createElementVNode"])("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),mo=[uo,Oo];function Eo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",lo,mo)}var bo={name:"CyclingSport"};const po=b()(bo,[["render",Eo]]);var To=po,fo={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"},Ao=Object(o["createElementVNode"])("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),So=Object(o["createElementVNode"])("g",{id:"g147"},[Object(o["createElementVNode"])("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),Object(o["createElementVNode"])("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),jo=[Ao,So];function _o(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",fo,jo)}var No={name:"CyclingTransport"};const Ro=b()(No,[["render",_o]]);var go=Ro,Io={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"},vo=Object(o["createElementVNode"])("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Uo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),Object(o["createElementVNode"])("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),ho=[vo,Uo];function ko(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Io,ho)}var Do={name:"Hiking"};const Co=b()(Do,[["render",ko]]);var Po=Co,Mo={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"},Lo=Object(o["createElementVNode"])("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),zo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),Object(o["createElementVNode"])("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),Object(o["createElementVNode"])("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),yo=[Lo,zo];function wo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Mo,yo)}var Vo={name:"MountainBiking"};const Bo=b()(Vo,[["render",wo]]);var Go=Bo,xo={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},Ko=Object(o["createStaticVNode"])(' silhouette of a person riding an electric mountain bike ',18),Fo=[Ko];function Wo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",xo,Fo)}var Ho={name:"MountainBikingElectric"};const $o=b()(Ho,[["render",Wo]]);var Yo=$o,qo={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 534.51 534.51",style:{"enable-background":"new 0 0 534.51 534.51"},"xml:space":"preserve"},Xo=Object(o["createElementVNode"])("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),Zo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),Object(o["createElementVNode"])("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Jo=[Xo,Zo];function Qo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",qo,Jo)}var ea={name:"Rowing"};const ta=b()(ea,[["render",Qo]]);var na=ta,ra={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"},ca=Object(o["createElementVNode"])("desc",{id:"runningDescription"},"silhouette of a running person",-1),oa=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),Object(o["createElementVNode"])("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),aa=[ca,oa];function ia(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",ra,aa)}var sa={name:"Running"};const la=b()(sa,[["render",ia]]);var ua=la,Oa={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},da=Object(o["createElementVNode"])("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),ma=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),Object(o["createElementVNode"])("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),Ea=[da,ma];function ba(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Oa,Ea)}var pa={name:"SkiingAlpine"};const Ta=b()(pa,[["render",ba]]);var fa=Ta,Aa={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},Sa=Object(o["createElementVNode"])("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),ja=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),_a=[Sa,ja];function Na(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Aa,_a)}var Ra={name:"SkiingCrossCountry"};const ga=b()(Ra,[["render",Na]]);var Ia=ga,va={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Ua=Object(o["createElementVNode"])("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),ha=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),Object(o["createElementVNode"])("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),ka=[Ua,ha];function Da(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",va,ka)}var Ca={name:"Trail"};const Pa=b()(Ca,[["render",Da]]);var Ma=Pa,La={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"},za=Object(o["createStaticVNode"])('silhouette of a walking person',3),ya=[za];function wa(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",La,ya)}var Va={name:"Walking"};const Ba=b()(Va,[["render",wa]]);var Ga=Ba,xa=["title"],Ka=Object(o["defineComponent"])({props:{sportLabel:null,title:{default:""}},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.sportLabel,c=n.title,a=Object(o["inject"])("sportColors");return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"sport-img",style:Object(o["normalizeStyle"])({fill:Object(o["unref"])(a)[Object(o["unref"])(r)]}),title:Object(o["unref"])(c)?Object(o["unref"])(c):e.$t("sports.".concat(Object(o["unref"])(r),".LABEL"))},["Cycling (Sport)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(To,{key:0})):Object(o["createCommentVNode"])("",!0),"Cycling (Transport)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(go,{key:1})):Object(o["createCommentVNode"])("",!0),"Hiking"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Po,{key:2})):Object(o["createCommentVNode"])("",!0),"Mountain Biking"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Go,{key:3})):Object(o["createCommentVNode"])("",!0),"Mountain Biking (Electric)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Yo,{key:4})):Object(o["createCommentVNode"])("",!0),"Rowing"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(na,{key:5})):Object(o["createCommentVNode"])("",!0),"Running"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(ua,{key:6})):Object(o["createCommentVNode"])("",!0),"Skiing (Alpine)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(fa,{key:7})):Object(o["createCommentVNode"])("",!0),"Skiing (Cross Country)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Ia,{key:8})):Object(o["createCommentVNode"])("",!0),"Trail"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Ma,{key:9})):Object(o["createCommentVNode"])("",!0),"Walking"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Ga,{key:10})):Object(o["createCommentVNode"])("",!0)],12,xa)}}});const Fa=Ka;var Wa=Fa,Ha={class:"loader"};function $a(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Ha)}n("922d");const Ya={},qa=b()(Ya,[["render",$a],["__scopeId","data-v-436637e0"]]);var Xa=qa,Za={id:"modal"},Ja={class:"custom-modal"},Qa={key:0,class:"modal-message"},ei={key:1,class:"modal-message"},ti={class:"modal-buttons"},ni=Object(o["defineComponent"])({props:{title:null,message:null,strongMessage:{default:function(){return null}}},emits:["cancelAction","confirmAction"],setup:function(e,t){var n=t.emit,r=e,c=Object(j["a"])(),a=Object(o["toRefs"])(r),i=a.title,s=a.message,l=a.strongMessage,u=Object(o["computed"])((function(){return c.getters[S["b"].GETTERS.ERROR_MESSAGES]}));return Object(o["onUnmounted"])((function(){return c.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),function(e,t){var r=Object(o["resolveComponent"])("i18n-t"),c=Object(o["resolveComponent"])("ErrorMessage"),a=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Za,[Object(o["createElementVNode"])("div",Ja,[Object(o["createVNode"])(a,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["unref"])(i)),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["unref"])(l)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Qa,[Object(o["createVNode"])(r,{keypath:Object(o["unref"])(s)},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(Object(o["unref"])(l)),1)]})),_:1},8,["keypath"])])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ei,Object(o["toDisplayString"])(Object(o["unref"])(s)),1)),Object(o["unref"])(u)?(Object(o["openBlock"])(),Object(o["createBlock"])(c,{key:2,message:Object(o["unref"])(u)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",ti,[Object(o["unref"])(u)?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("button",{key:0,class:"confirm",onClick:t[0]||(t[0]=function(e){return n("confirmAction")})},Object(o["toDisplayString"])(e.$t("buttons.YES")),1)),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[1]||(t[1]=function(e){return n("cancelAction")})},Object(o["toDisplayString"])(e.$t("buttons.".concat(Object(o["unref"])(u)?"CANCEL":"NO"))),1)])]})),_:1})])])}}});n("7489");const ri=b()(ni,[["__scopeId","data-v-20a846ac"]]);var ci=ri,oi=[{target:Fc,name:"AlertMessage"},{target:Fe,name:"Card"},{target:Xc,name:"CustomTextArea"},{target:no,name:"Dropdown"},{target:so,name:"ErrorMessage"},{target:Xa,name:"Loader"},{target:ci,name:"Modal"},{target:Wa,name:"SportImage"}],ai={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"],c["a"]);var ii=Object(o["createApp"])(le).provide("sportColors",Qe["b"]).use(g).use(Mc).use(Vc).directive("click-outside",ai);oi.forEach((function(e){ii.component(e.name,e.target)})),ii.mount("#app")},cf98:function(e,t,n){"use strict";n("c7cd")},d257:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return o}));n("caad"),n("2532"),n("d81d"),n("4de4"),n("d3b7"),n("ac1f"),n("1276");var r=n("dad5"),c=function(){return"/api/"},o=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"UNKNOWN",c=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(r["b"].MUTATIONS.SET_ERROR_MESSAGES,c.includes("\n")?c.split("\n").filter((function(e){return""!==e})).map((function(e){return"api.ERROR.".concat(e)})):"api.ERROR.".concat(c))}},d2bc:function(e,t,n){},d508:function(e,t,n){},d9b8:function(e,t,n){},dad5:function(e,t,n){"use strict";var r,c,o,a,i,s,l,u,O,d,m,E,b,p,T;n.d(t,"b",(function(){return A})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return j})),n.d(t,"a",(function(){return _})),n.d(t,"e",(function(){return N})),n.d(t,"f",(function(){return R})),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["USER_LOADING"]="USER_LOADING"}(c||(c={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(a||(a={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(i||(i={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(s||(s={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(l||(l={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(O||(O={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(d||(d={})),function(e){e["USER_STATS"]="USER_STATS"}(m||(m={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(E||(E={})),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"}(p||(p={})),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"}(T||(T={}));var f=n("4870"),A={ACTIONS:a,GETTERS:i,MUTATIONS:s},S={ACTIONS:l,GETTERS:u,MUTATIONS:O},j={ACTIONS:d,GETTERS:m,MUTATIONS:E},_={ACTIONS:r,GETTERS:c,MUTATIONS:o},N={ACTIONS:b,GETTERS:p,MUTATIONS:T},R={ACTIONS:f["a"],GETTERS:f["b"],MUTATIONS:f["c"]}},dbef:function(e,t,n){},dbf1:function(e,t,n){},dfd6:function(e,t,n){"use strict";n("2679")},e3305:function(e,t,n){},e456:function(e,t,n){"use strict";n("e7f1")},e591:function(e,t,n){"use strict";n("f977")},e669:function(e,t,n){"use strict";n("b0e9")},e7b6:function(e,t,n){var r={"./en/en.ts":"c142","./fr/fr.ts":"663e"};function c(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}c.keys=function(){return Object.keys(r)},c.resolve=o,e.exports=c,c.id="e7b6"},e7f1:function(e,t,n){},e9c9:function(e,t,n){},ecd3:function(e,t,n){},ef54:function(e,t,n){},f41d:function(e,t,n){"use strict";n("a0eb")},f977:function(e,t,n){}}); -//# sourceMappingURL=app.7f21cc2d.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.7f21cc2d.js.map b/fittrackee/dist/static/js/app.7f21cc2d.js.map deleted file mode 100644 index 3eb29798..00000000 --- a/fittrackee/dist/static/js/app.7f21cc2d.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?7652","webpack:///./src/components/Administration/AdminMenu.vue?95c1","webpack:///./src/components/Common/StatCard.vue?785a","webpack:///./src/utils/sports.ts","webpack:///./src/App.vue?5d1b","webpack:///./src/use/useStore.ts","webpack:///./src/components/Common/Pagination.vue?42b0","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?24df","webpack:///./src/components/Footer.vue?1c0e","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?3ebe","webpack:///./src/store/modules/workouts/enums.ts","webpack:///./src/components/Common/Dropdown.vue?9d33","webpack:///./src/utils/dates.ts","webpack:///./src/components/Administration/AdminApplication.vue?1c1a","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?573e","webpack:///./src/components/Administration/AdminUsers.vue?82aa","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?9546","webpack:///./src/components/Common/Modal.vue?2baf","webpack:///./src/components/Common/Card.vue?ee24","webpack:///./src/components/User/ProfileDisplay/index.vue?0f0b","webpack:///./src/components/Common/FilterSelects.vue","webpack:///./src/components/Common/FilterSelects.vue?2f0a","webpack:///./src/components/Common/Loader.vue?458e","webpack:///./src/components/Common/FilterSelects.vue?bcc8","webpack:///./src/utils/api.ts","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?2f25","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?7ccd","webpack:///./src/components/User/UserPicture.vue?3c5d","webpack:///./src/components/Common/AlertMessage.vue?cde4","webpack:///./src/components/NoConfig.vue?d170","webpack:///./src/components/NavBar.vue?6217","webpack:///./src/components/User/UserProfileTabs.vue?97d8","webpack:///./src/locales/en/administration.json","webpack:///./src/locales/en/api.json","webpack:///./src/locales/en/buttons.json","webpack:///./src/locales/en/common.json","webpack:///./src/locales/en/dashboard.json","webpack:///./src/locales/en/error.json","webpack:///./src/locales/en/sports.json","webpack:///./src/locales/en/statistics.json","webpack:///./src/locales/en/user.json","webpack:///./src/locales/en/workouts.json","webpack:///./src/locales/en/en.ts","webpack:///./src/utils/files.ts","webpack:///./src/components/User/UserPicture.vue","webpack:///./src/components/User/UserPicture.vue?dc88","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?1e3d","webpack:///./src/registerServiceWorker.ts","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?14b8","webpack:///./src/i18n.ts","webpack:///./src/utils/locales.ts","webpack:///./src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?5ec4","webpack:///./src/components/NoConfig.vue","webpack:///./src/components/NoConfig.vue?0078","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/components/Administration/AdminApplication.vue","webpack:///./src/components/Administration/AdminApplication.vue?9c66","webpack:///./src/components/Administration/AppStatsCards.vue","webpack:///./src/components/Administration/AppStatsCards.vue?5d3b","webpack:///./src/components/Common/Card.vue","webpack:///./src/components/Common/Card.vue?ecbc","webpack:///./src/components/Administration/AdminMenu.vue","webpack:///./src/components/Administration/AdminMenu.vue?572b","webpack:///./src/components/Administration/AdminSports.vue","webpack:///./src/components/Administration/AdminSports.vue?8d91","webpack:///./src/components/Administration/AdminUsers.vue","webpack:///./src/components/Administration/AdminUsers.vue?9006","webpack:///./src/components/User/UserProfileTabs.vue","webpack:///./src/components/User/UserProfileTabs.vue?68f5","webpack:///./src/components/User/ProfileDisplay/index.vue","webpack:///./src/components/User/ProfileDisplay/index.vue?d237","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?e51f","webpack:///./src/components/User/ProfileEdition/index.vue","webpack:///./src/components/User/ProfileEdition/index.vue?27de","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?a314","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?6a32","webpack:///./src/utils/timezone.ts","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?2dc4","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?a05c","webpack:///./src/api/authApi.ts","webpack:///./src/api/defaultApi.ts","webpack:///./src/store/modules/authUser/actions.ts","webpack:///./src/store/modules/authUser/getters.ts","webpack:///./src/store/modules/authUser/mutations.ts","webpack:///./src/store/modules/authUser/state.ts","webpack:///./src/store/modules/authUser/index.ts","webpack:///./src/store/modules/root/actions.ts","webpack:///./src/store/modules/root/getters.ts","webpack:///./src/store/modules/root/mutations.ts","webpack:///./src/store/modules/root/state.ts","webpack:///./src/store/modules/sports/actions.ts","webpack:///./src/store/modules/sports/getters.ts","webpack:///./src/store/modules/sports/mutations.ts","webpack:///./src/store/modules/sports/state.ts","webpack:///./src/store/modules/sports/index.ts","webpack:///./src/store/modules/statistics/actions.ts","webpack:///./src/store/modules/statistics/getters.ts","webpack:///./src/store/modules/statistics/mutations.ts","webpack:///./src/store/modules/statistics/state.ts","webpack:///./src/store/modules/statistics/index.ts","webpack:///./src/store/modules/users/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?7dca","webpack:///./src/components/Common/CustomTextArea.vue","webpack:///./src/components/Common/CustomTextArea.vue?933e","webpack:///./src/components/Common/Dropdown.vue","webpack:///./src/components/Common/Dropdown.vue?56da","webpack:///./src/components/Common/ErrorMessage.vue","webpack:///./src/components/Common/ErrorMessage.vue?31ca","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue?1dcc","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue?667c","webpack:///./src/components/Common/Images/SportImage/Hiking.vue","webpack:///./src/components/Common/Images/SportImage/Hiking.vue?75de","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue?9b14","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue?adb2","webpack:///./src/components/Common/Images/SportImage/Rowing.vue","webpack:///./src/components/Common/Images/SportImage/Rowing.vue?a825","webpack:///./src/components/Common/Images/SportImage/Running.vue","webpack:///./src/components/Common/Images/SportImage/Running.vue?275d","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue?8028","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue?a0cc","webpack:///./src/components/Common/Images/SportImage/Trail.vue","webpack:///./src/components/Common/Images/SportImage/Trail.vue?43e1","webpack:///./src/components/Common/Images/SportImage/Walking.vue","webpack:///./src/components/Common/Images/SportImage/Walking.vue?ecc5","webpack:///./src/components/Common/Images/SportImage/index.vue","webpack:///./src/components/Common/Images/SportImage/index.vue?1dbe","webpack:///./src/components/Common/Loader.vue","webpack:///./src/components/Common/Loader.vue?bdb0","webpack:///./src/components/Common/Modal.vue","webpack:///./src/components/Common/Modal.vue?1686","webpack:///./src/custom-components.ts","webpack:///./src/directives.ts","webpack:///./src/main.ts","webpack:///./src/components/Common/ErrorMessage.vue?172e","webpack:///./src/utils/index.ts","webpack:///./src/store/modules/authUser/enums.ts","webpack:///./src/store/modules/root/enums.ts","webpack:///./src/store/modules/sports/enums.ts","webpack:///./src/store/modules/statistics/enums.ts","webpack:///./src/store/modules/users/enums.ts","webpack:///./src/store/constants.ts","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?25ee","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?ecda","webpack:///./src/components/Administration/AppStatsCards.vue?6843","webpack:///./src/components/Administration/AdminSports.vue?dcaf","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack:///./src/components/Common/CustomTextArea.vue?7df9"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","props","icon","text","setup","__props","_ctx","_cache","__exports__","sportColors","Hiking","Rowing","Running","Trail","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","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","user","UserPicture","username","nb_workouts","$t","Number","total_distance","toFixed","nb_sports","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","getStartDate","duration","day","weekStartingMonday","weekStartsOn","incrementDate","getDateWithTZ","dateInUTC","tz","Date","getCalendarStartAndEnd","date","monthStart","monthEnd","start","end","formatWorkoutDate","dateTime","dateFormat","timeFormat","workout_date","workout_time","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","admin","api","buttons","common","dashboard","statistics","workouts","pagination","path","query","getQuery","page","cursor","newQuery","assign","_component_router_link","disabled","has_prev","to","default","_","pages","active","has_next","fromAdmin","store","authUser","getters","GETTERS","AUTH_USER_PROFILE","registrationDate","created_at","format","birthDate","birth_date","displayModal","updateDisplayModal","deleteUserAccount","dispatch","ACTIONS","DELETE_ACCOUNT","_component_Modal","title","strongMessage","onConfirmAction","$event","onCancelAction","first_name","last_name","location","bio","onClick","$router","go","order_by","emits","emit","perPage","onSelectUpdate","onChange","order","toUpperCase","per_page","nb","sortList","defaultPage","defaultPerPage","getNumberQueryValue","queryValue","defaultValue","getStringQueryValue","availableValues","includes","locationQuery","orderByList","defaultOrderBy","options","queryOptions","defaultSort","workoutsPayloadKeys","getRange","stop","Array","from","rangePagination","currentPage","concat","suffixes","getReadableFileSize","fileSize","asText","Math","floor","log","size","suffix","pow","getFileSizeInMB","authUserPictureUrl","picture","alt","ready","registered","cached","updatefound","updated","offline","version","loadLocaleMessages","locales","messages","keys","forEach","matched","match","locale","legacy","fallbackLocale","globalInjection","localeFromLanguage","en","fr","languageLabels","availableLocales","global","availableLanguages","isAuthenticated","IS_AUTHENTICATED","language","LANGUAGE","isMenuOpen","openMenu","closeMenu","updateLanguage","option","toString","commit","MUTATIONS","UPDATE_LANG","logout","LOGOUT","_component_Dropdown","selected","onSelected","render","appConfig","APP_CONFIG","appLoading","APP_LOADING","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","innerHeight","bottom","scroll","onscroll","querySelector","scrollToTop","scrollTo","behavior","GET_APPLICATION_CONFIG","_component_Loader","_component_router_view","NavBar","onMenuInteraction","NoConfig","Footer","for","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","edition","router","appData","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","errorMessages","ERROR_MESSAGES","updateForm","onCancel","EMPTY_ERROR_MESSAGES","onSubmit","formData","UPDATE_APPLICATION_CONFIG","_component_ErrorMessage","_component_Card","content","min","step","appStatistics","uploadDirSize","uploads_dir_size","usersCount","users","sportsCount","workoutCount","StatCard","Card","AppStatsCards","is_registration_enabled","_hoisted_18","_hoisted_19","translatedSports","SPORTS","updateSportStatus","isActive","UPDATE_SPORTS","_component_SportImage","danger","has_workouts","route","USERS","USERS_PAGINATION","loadUsers","queryParams","GET_USERS","updateUser","UPDATE_USER","reloadUsers","queryParam","EMPTY_USERS","FilterSelects","onUpdateSelect","email","timezone","Pagination","tabs","selectedTab","getPath","tab","checked","onInput","UserHeader","UserProfileTabs","fistDayOfWeek","weekm","loading","USER_LOADING","_hoisted_20","_hoisted_21","_hoisted_22","userForm","password","password_conf","updateUserForm","updateBio","updateProfile","UPDATE_USER_PROFILE","deleteAccount","_component_CustomTextArea","charLimit","input","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","DELETE_PICTURE","updatePictureFile","files","updateUserPicture","UPDATE_USER_PICTURE","accept","timeZones","isOpen","tzList","focusItemIndex","matchTimezone","onMouseOver","index","onUpdateTimezone","onEnter","preventDefault","firstElementChild","innerHTML","openDropdown","trim","required","onKeydown","ref","_value","_refs","focus","onMouseover","autofocus","weekStart","UPDATE_USER_PREFERENCES","updateTZ","lang","TimezoneDropdown","authApi","baseURL","interceptors","use","config","authToken","AUTH_TOKEN","auth","headers","Authorization","context","localStorage","removeItem","EMPTY_USER_STATS","CLEAR_AUTH_USER_TOKEN","UPDATE_USERS","EMPTY_WORKOUTS","EMPTY_WORKOUT","actions","CHECK_AUTH_USER","UPDATE_AUTH_TOKEN","GET_USER_PROFILE","res","status","UPDATE_AUTH_USER_PROFILE","GET_SPORTS","catch","LOGIN_OR_REGISTER","post","actionType","token","auth_token","setItem","redirectUrl","payload","UPDATE_USER_LOADING","finally","form","FormData","append","delete","SEND_PASSWORD_RESET_REQUEST","RESET_USER_PASSWORD","state","authUserProfile","IS_ADMIN","mutations","authUserState","UPDATE_APPLICATION_LOADING","GET_APPLICATION_STATS","UPDATE_APPLICATION_STATS","patch","application","APP_STATS","LOCALE","SET_ERROR_MESSAGES","root","SET_SPORTS","sportsState","GET_USER_STATS","filterType","params","UPDATE_USER_STATS","USER_STATS","statisticsState","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","segments","SET_WORKOUT","with_gpx","SET_WORKOUT_CHART_DATA","chart_data","SET_WORKOUT_GPX","gpx","DELETE_WORKOUT","EDIT_WORKOUT","ADD_WORKOUT","file","notes","ADD_WORKOUT_WITHOUT_GPX","CALENDAR_WORKOUTS","calendar_workouts","TIMELINE_WORKOUTS","timeline_workouts","USER_WORKOUTS","user_workouts","WORKOUT_DATA","workoutData","WORKOUTS_PAGINATION","ADD_TIMELINE_WORKOUTS","SET_CALENDAR_WORKOUTS","SET_TIMELINE_WORKOUTS","SET_USER_WORKOUTS","chartData","workoutsState","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","getTabFromPath","regex","replace","routes","component","action","children","UserInfos","UserPreferences","ProfileEdition","UserInfosEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","AdminUsers","history","pathsWithoutAuthentication","beforeEach","next","fullPath","updateText","maxLenght","dropdownOptions","toggleDropdown","updateSelected","$slots","isArray","subMessage","xmlns","xmlns:xlink","x","y","viewBox","style","xml:space","xmlns:svg","cx","cy","sportLabel","fill","CyclingSport","CyclingTransport","MountainBiking","MountainBikingElectric","SkiingAlpine","SkiingCrossCountry","_component_i18n_t","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","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ROOT_STORE","SPORTS_STORE","STATS_STORE","AUTH_USER_STORE","USERS_STORE","WORKOUTS_STORE","webpackContext","req","webpackContextResolve"],"mappings":"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B,OAAQ,GAAY,CACtC,GACA,6BAAiB,IAAM,6BAAiB1V,EAAK2C,GAAG,sBAAwB,KAAO,6BAAiB,mBAAO2S,IAAiB,OAG5H,gCAAoB,MAAO,GAAY,CACrC,gCAAoB,SAAU,CAC5B/Z,KAAM,SACN2K,UAAW,mBAAOqP,IACjB,6BAAiBvV,EAAK2C,GAAG,gCAAiC,EAAG,IAC/D,mBAAOJ,GAAM8I,SACT,yBAAc,gCAAoB,SAAU,CAC3C5M,IAAK,EACLY,MAAO,SACPgJ,QAASmN,GACR,6BAAiBxV,EAAK2C,GAAG,gCAAiC,IAC7D,gCAAoB,IAAI,GAC5B,gCAAoB,SAAU,CAC5BtD,MAAO,SACPgJ,QAASpI,EAAO,KAAOA,EAAO,GAAK,SAAC8H,GAAD,OAAkB/H,EAAKsI,QAAQvP,KAAK,eACtE,6BAAiBiH,EAAK2C,GAAG,iCAAkC,MAE/D,GAAI,Y,UC7Gb,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,YAAY,qBAExD,UCRFoT,I,oBAAY,CACvB,iBACA,eACA,iBACA,gBACA,eACA,oBACA,eACA,kBACA,sBACA,cACA,kBACA,eACA,gBACA,kBACA,iBACA,kBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,oBACA,iCACA,8BACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,mBACA,mBACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,sBACA,oBACA,sBACA,oBACA,kBACA,oBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,iBACA,eACA,sBACA,iBACA,kBACA,iBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,mBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,cACA,aACA,cACA,aACA,cACA,gBACA,cACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,aACA,eACA,gBACA,cACA,eACA,oBACA,mBACA,YACA,YACA,iBACA,iBACA,aACA,gBACA,iBACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,aACA,mBACA,cACA,gBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,kBACA,gBACA,kBACA,mBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,gBACA,gBACA,oBACA,gBACA,eACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,cACA,cACA,gBACA,iBACA,oBACA,eACA,mBACA,iBACA,gBACA,mBACA,kBACA,gBACA,iBACA,mBACA,gBACA,oBACA,gBACA,gBACA,mBACA,eACA,mBACA,cACA,kBACA,mBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gB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","file":"static/js/app.7f21cc2d.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\":\"2f1d393d\",\"main~workouts\":\"a74990d7\",\"main\":\"e5da50b8\",\"workouts\":\"16e33b8b\",\"profile\":\"6a786c1d\",\"reset\":\"518e646f\",\"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\":\"04e24276\",\"main~workouts\":\"66c5ef05\",\"main\":\"c790adb1\",\"workouts\":\"b4f73c62\",\"profile\":\"b52bc193\",\"reset\":\"bd9657a8\",\"chunk-2d0c9189\":\"31d6cfe0\",\"chunk-2d0cf391\":\"31d6cfe0\",\"chunk-2d0da8f3\":\"31d6cfe0\",\"chunk-2d2248b6\":\"31d6cfe0\",\"chunk-2d22523a\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n }\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=9e52fc98&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminMenu.vue?vue&type=style&index=0&id=7dad7915&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StatCard.vue?vue&type=style&index=0&id=9e52fc98&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 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Trail: '#09a98a',\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--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=6c3336ff&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--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Pagination.vue?vue&type=style&index=0&id=de4b01da&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f8a631e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-number\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stat-label\" }, \"km\", -1))\nconst _hoisted_11 = { class: \"user-stat hide-small\" }\nconst _hoisted_12 = { class: \"stat-number\" }\nconst _hoisted_13 = { class: \"stat-label\" }\n\nimport { toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const { user } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(Number(_unref(user).total_distance).toFixed(0)), 1),\n _hoisted_10\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=f8a631e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f8a631e2\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Footer.vue?vue&type=style&index=0&id=e60d9c5e&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfosEdition.vue?vue&type=style&index=0&id=15042edb&lang=scss\"","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Dropdown.vue?vue&type=style&index=0&id=ca61364c&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--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminApplication.vue?vue&type=style&index=0&id=03002a18&lang=scss&scoped=true\"","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer le compte de \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les drois d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les drois d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email : une adresse email valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur Réseau.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : 8 caractères minimum.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, cet utilisateur existe déjà.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur : 3 à 12 caractères requis.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de Bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n }\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Electrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"KM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"km\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-de4b01da\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination } from '@/types/api'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload\n }\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(page: number, cursor?: number): TWorkoutsPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n event: _unref(pagination).has_prev ? 'click' : '',\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')), 1)\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n event: _unref(pagination).has_next ? 'click' : '',\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=de4b01da&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-de4b01da\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminUsers.vue?vue&type=style&index=0&id=4b4e6923&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d5946ea6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"user-bio\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_4 = {\n key: 2,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, Ref, computed, ref, toRefs, withDefaults } from 'vue'\n\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n fromAdmin: { default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean }\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(new Date(props.user.birth_date), 'dd/MM/yyyy')\n : ''\n )\n let displayModal: Ref = ref(false)\n\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteUserAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \"admin.CONFIRM_USER_ACCOUNT_DELETION\",\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteUserAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_2, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=d5946ea6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-d5946ea6\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Modal.vue?vue&type=style&index=0&id=20a846ac&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Card.vue?vue&type=style&index=0&id=66f9fd1d&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=b211d1ec&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a5d764a4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=a5d764a4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a5d764a4\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loader.vue?vue&type=style&index=0&id=436637e0&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FilterSelects.vue?vue&type=style&index=0&id=a5d764a4&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 = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPictureEdition.vue?vue&type=style&index=0&id=239b9d46&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfos.vue?vue&type=style&index=0&id=d5946ea6&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPicture.vue?vue&type=style&index=0&id=3c1d51f0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AlertMessage.vue?vue&type=style&index=0&id=1c7b89ce&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NoConfig.vue?vue&type=style&index=0&id=c1193208&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NavBar.vue?vue&type=style&index=0&id=53493688&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserProfileTabs.vue?vue&type=style&index=0&id=76da3258&lang=scss\"","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: 8 characters required.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that user already exists.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username: 3 to 12 characters required.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems encounter some issues.
Please try later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n }\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter an email address\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm the password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm Password\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"KM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"km\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farest distance\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=3c1d51f0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPreferences.vue?vue&type=style&index=0&id=5eb5bd11&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","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e60d9c5e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/_createStaticVNode(\"
\", 4)\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n version: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n }\n\n \n\n const { version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=e60d9c5e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e60d9c5e\"]])\n\nexport default __exports__","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","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-53493688\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const { locale } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n let isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n locale.value = option.value.toString()\n store.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, option.value)\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': _unref(isMenuOpen) }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': _unref(isMenuOpen) }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !_unref(isMenuOpen) }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=53493688&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-53493688\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./NoConfig.vue?vue&type=template&id=c1193208&scoped=true\"\nconst script = {}\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=c1193208&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c1193208\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6c3336ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1))\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG))\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n let bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : ''\n }, null, 8, [\"version\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=6c3336ff&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c3336ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-03002a18\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"max_users\" }\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = { class: \"user-limit-help\" }\nconst _hoisted_6 = { class: \"info-box\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = { for: \"max_single_file_size\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { for: \"max_zip_file_size\" }\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = { for: \"gpx_limit_import\" }\nconst _hoisted_13 = [\"disabled\"]\nconst _hoisted_14 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n appConfig: null,\n edition: { default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean }\n\n \n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ;['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(appData).max_users) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_4), [\n [_vModelText, _unref(appData).max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(appData).max_single_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(appData).max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(appData).max_zip_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(appData).max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(appData).gpx_limit_import) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_13), [\n [_vModelText, _unref(appData).gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (__props.edition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_16)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=03002a18&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-03002a18\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, withDefaults } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appStatistics: IAppStatistics }\n\n \n\n const uploadDirSize = computed(() =>\n props.appStatistics.uploads_dir_size\n ? getReadableFileSize(props.appStatistics.uploads_dir_size, false)\n : { size: 0, suffix: 'bytes' }\n )\n const usersCount = computed(() =>\n props.appStatistics.users ? props.appStatistics.users : 0\n )\n const sportsCount = computed(() =>\n props.appStatistics.sports ? props.appStatistics.sports : 0\n )\n const workoutCount = computed(() =>\n props.appStatistics.workouts ? props.appStatistics.workouts : 0\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(usersCount),\n text: _ctx.$t('admin.USER', _unref(usersCount))\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(sportsCount),\n text: _ctx.$t('workouts.SPORT', _unref(sportsCount))\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(workoutCount),\n text: _ctx.$t('workouts.WORKOUT', _unref(workoutCount))\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=2a71abbb&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=66f9fd1d\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=66f9fd1d&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7dad7915\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_4 = { class: \"registration-status\" }\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics }\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=7dad7915&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7dad7915\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8e49af46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"center-text\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"center-text\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label\n }, null, 8, [\"title\", \"sport-label\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=8e49af46&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8e49af46\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4b4e6923\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"left-text\" }\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"cell-heading\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"center-text\" }\nconst _hoisted_12 = { class: \"cell-heading\" }\nconst _hoisted_13 = { class: \"center-text\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"center-text\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"disabled\", \"onClick\"]\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { getDateWithTZ } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(format)(\n _unref(getDateWithTZ)(user.created_at, _unref(authUser).timezone),\n 'dd/MM/yyyy HH:mm'\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_17)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=4b4e6923&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4b4e6923\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n tabs: null,\n selectedTab: null,\n edition: null,\n disabled: { default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean }\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'PICTURE':\n return '/profile/edit/picture'\n case 'PREFERENCES':\n return `/profile${props.edition ? '/edit' : ''}/preferences`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab) === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=76da3258&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b211d1ec\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n }\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=b211d1ec&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b211d1ec\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5eb5bd11\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const language = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(language)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferences.vue?vue&type=style&index=0&id=5eb5bd11&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5eb5bd11\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n }\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PICTURE', 'PREFERENCES']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_7 = [\"value\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"password\"\n}\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = {\n class: \"form-items\",\n for: \"passwordConfirmation\"\n}\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_13 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_16 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_17 = [\"disabled\"]\nconst _hoisted_18 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_19 = [\"disabled\"]\nconst _hoisted_20 = { class: \"form-items\" }\nconst _hoisted_21 = { class: \"form-buttons\" }\nconst _hoisted_22 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const userForm: IUserPayload = reactive({\n password: '',\n password_conf: '',\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n let displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"email\",\n value: _unref(user).email,\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_7)\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"password\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(userForm).password) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(userForm).password]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_CONFIRMATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"passwordConfirmation\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(userForm).password_conf) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(userForm).password_conf]\n ])\n ]),\n _hoisted_12,\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(userForm).first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_14), [\n [_vModelText, _unref(userForm).first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(userForm).last_name) = $event))\n }, null, 512), [\n [_vModelText, _unref(userForm).last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_16, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(userForm).birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_17), [\n [_vModelText, _unref(userForm).birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_18, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(userForm).location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_19), [\n [_vModelText, _unref(userForm).location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_20, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: _unref(userForm).bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", _hoisted_22, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[8] || (_cache[8] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[9] || (_cache[9] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=15042edb&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-239b9d46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n let pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !_unref(pictureFile)\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=239b9d46&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-239b9d46\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d1c5cf04\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n input: null,\n disabled: { default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean }\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref: (_value, _refs) => {\n _refs['tzList'] = _value\n tzList.value = _value\n }\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=d1c5cf04&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-d1c5cf04\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-buttons\" }\nconst _hoisted_12 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n 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[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(userForm).language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, _unref(userForm).language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: _unref(userForm).timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"weekm\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(userForm).weekm) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"option\", {\n value: start.value,\n key: start.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 9, _hoisted_10)\n }), 64))\n ], 8, _hoisted_9), [\n [_vModelSelect, _unref(userForm).weekm]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"button\", _hoisted_12, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import axios from 'axios'\n\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport { getApiUrl } from '@/utils'\n\nconst authApi = axios.create({\n baseURL: getApiUrl(),\n})\n\nauthApi.interceptors.request.use(\n (config) => {\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default authApi\n","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 AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\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 removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeAuthUserData(context)\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n router.push('/profile/preferences')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n 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(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserPasswordPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {},\n 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 { 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, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","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 { AUTH_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(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n } else if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1c7b89ce\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n }\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=1c7b89ce&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1c7b89ce\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, isRef as _isRef, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-129e44c0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string }\n\n \n\n \n\n let text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(text) ? (text).value = $event : text = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, _unref(text)]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(_unref(text).length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=129e44c0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-129e44c0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ca61364c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n }\n\n \n\n \n\n const route = useRoute()\n let isOpen = ref(false)\n let dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (_unref(isOpen))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=ca61364c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ca61364c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4366d0e7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n }\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=4366d0e7&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4366d0e7\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n sportLabel: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, title: string }\n\n \n\n const { sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 10 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=436637e0&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=436637e0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-436637e0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20a846ac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null }\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=20a846ac&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20a846ac\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ErrorMessage.vue?vue&type=style&index=0&id=4366d0e7&scoped=true&lang=scss\"","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TimezoneDropdown.vue?vue&type=style&index=0&id=d1c5cf04&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserHeader.vue?vue&type=style&index=0&id=f8a631e2&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppStatsCards.vue?vue&type=style&index=0&id=2a71abbb&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminSports.vue?vue&type=style&index=0&id=8e49af46&lang=scss&scoped=true\"","var map = {\n\t\"./en/en.ts\": \"c142\",\n\t\"./fr/fr.ts\": \"663e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"e7b6\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CustomTextArea.vue?vue&type=style&index=0&id=129e44c0&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.cb19dec0.js b/fittrackee/dist/static/js/app.cb19dec0.js new file mode 100644 index 00000000..004d507d --- /dev/null +++ b/fittrackee/dist/static/js/app.cb19dec0.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var r,c,i=t[0],s=t[1],l=t[2],u=0,O=[];ur?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(a)},s=function(e,t){return t.filter((function(t){return t.id===e.sport_id})).map((function(e){return e.label}))[0]}},1446:function(e,t,n){"use strict";n("1db4")},"1db4":function(e,t,n){},"1f46":function(e,t,n){},2679:function(e,t,n){},2906:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n("5502");function c(){return Object(r["b"])()}},"30bb":function(e,t,n){"use strict";n("599b")},"3c44":function(e,t,n){"use strict";n("b680"),n("a9e3");var r=n("7a23"),c=n("c46a"),o=function(e){return Object(r["pushScopeId"])("data-v-f8a631e2"),e=e(),Object(r["popScopeId"])(),e},a={class:"box user-header"},i={class:"user-details"},s={class:"user-name"},l={class:"user-stats"},u={class:"user-stat"},O={class:"stat-number"},d={class:"stat-label"},m={class:"user-stat"},E={class:"stat-number"},b=o((function(){return Object(r["createElementVNode"])("span",{class:"stat-label"},"km",-1)})),p={class:"user-stat hide-small"},T={class:"stat-number"},f={class:"stat-label"},A=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.user;return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",a,[Object(r["createVNode"])(c["a"],{user:Object(r["unref"])(o)},null,8,["user"]),Object(r["createElementVNode"])("div",i,[Object(r["createElementVNode"])("div",s,Object(r["toDisplayString"])(Object(r["unref"])(o).username),1),Object(r["createElementVNode"])("div",l,[Object(r["createElementVNode"])("div",u,[Object(r["createElementVNode"])("span",O,Object(r["toDisplayString"])(Object(r["unref"])(o).nb_workouts),1),Object(r["createElementVNode"])("span",d,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT",Object(r["unref"])(o).nb_workouts)),1)]),Object(r["createElementVNode"])("div",m,[Object(r["createElementVNode"])("span",E,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).total_distance).toFixed(0)),1),b]),Object(r["createElementVNode"])("div",p,[Object(r["createElementVNode"])("span",T,Object(r["toDisplayString"])(Object(r["unref"])(o).nb_sports),1),Object(r["createElementVNode"])("span",f,Object(r["toDisplayString"])(e.$t("workouts.SPORT",Object(r["unref"])(o).nb_sports)),1)])])])])}}}),S=(n("e456"),n("6b0d")),j=n.n(S);const _=j()(A,[["__scopeId","data-v-f8a631e2"]]);t["a"]=_},"3ca5":function(e,t,n){"use strict";n("4a37")},4163:function(e,t,n){},"44dee":function(e,t,n){"use strict";n("d9b8")},4870:function(e,t,n){"use strict";var r,c,o;n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return o})),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(c||(c={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},"49c1":function(e,t,n){},"4a37":function(e,t,n){},"55a6":function(e,t,n){"use strict";n("dbf1")},"599b":function(e,t,n){},"5e65":function(e,t,n){"use strict";n.d(t,"d",(function(){return m})),n.d(t,"e",(function(){return E})),n.d(t,"c",(function(){return b})),n.d(t,"b",(function(){return p})),n.d(t,"a",(function(){return T}));var r=n("69eb"),c=n("d6e9"),o=n("f628"),a=n("f7f1"),i=n("cdb6"),s=n("74b5"),l=n("8cac"),u=n("2fc8"),O=n("b166"),d=n("78b2"),m=function(e,t,n){switch(e){case"week":return Object(r["a"])(t,{weekStartsOn:n?1:0});case"year":return Object(c["a"])(t);case"month":return Object(o["a"])(t);default:throw new Error('Invalid duration, expected: "week", "month", "year", got: "'.concat(e,'"'))}},E=function(e,t){switch(e){case"week":return Object(a["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(d["a"])(new Date(e),t)},p=function(e,t){var n=Object(o["a"])(e),c=Object(l["a"])(e),a=t?1:0;return{start:Object(r["a"])(n,{weekStartsOn:a}),end:Object(u["a"])(c,{weekStartsOn:a})}},T=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(O["a"])(e,t),workout_time:Object(O["a"])(e,n)}}},"61af":function(e,t,n){"use strict";n("ae19")},"663e":function(e,t,n){"use strict";n.r(t);var r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Etes-vous sûr de vouloir supprimer le compte de ",n(r(0))," ? Toutes les données seront définitivement."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les drois d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les drois d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email : une adresse email valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur Réseau."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Mot de passe : 8 caractères minimum."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Désolé, cet utilisateur existe déjà."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas"])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Nom d'utilisateur : 3 à 12 caractères requis."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},o={BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},a={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de Bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}}},l={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Electrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},O={ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Saisir une adresse email"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation du mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},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"])}},d={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"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Axe pour l'altitude démarrant à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}};t["default"]={admin:r,api:c,buttons:o,common:a,dashboard:i,error:s,sports:l,statistics:u,user:O,workouts:d}},"6d7d":function(e,t,n){"use strict";var r=n("7a23"),c=n("97e5"),o=function(e){return Object(r["pushScopeId"])("data-v-de4b01da"),e=e(),Object(r["popScopeId"])(),e},a={class:"pagination-center","aria-label":"navigation"},i={class:"pagination"},s=o((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)})),l={key:0},u=o((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)})),O=Object(r["defineComponent"])({props:{pagination:null,path:null,query:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.pagination,O=n.path,d=n.query;function m(e,t){var n=Object.assign({},d.value);return n.page=t?e+t:e,n}return function(e,t){var n=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("nav",a,[Object(r["createElementVNode"])("ul",i,[Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-prev",{disabled:!Object(r["unref"])(o).has_prev}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(O),query:m(Object(r["unref"])(o).page,-1)},event:Object(r["unref"])(o).has_prev?"click":"",disabled:!Object(r["unref"])(o).has_prev},{default:Object(r["withCtx"])((function(){return[s,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("api.PAGINATION.PREVIOUS")),1)]})),_:1},8,["to","event","disabled"])],2),(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(c["b"])(Object(r["unref"])(o).pages,Object(r["unref"])(o).page),(function(e){return Object(r["openBlock"])(),Object(r["createElementBlock"])("li",{key:e,class:Object(r["normalizeClass"])(["page",{active:e===Object(r["unref"])(o).page}])},["..."===e?(Object(r["openBlock"])(),Object(r["createElementBlock"])("span",l," ... ")):(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:1,class:"page-link",to:{path:Object(r["unref"])(O),query:m(+e)}},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e),1)]})),_:2},1032,["to"]))],2)})),128)),Object(r["createElementVNode"])("li",{class:Object(r["normalizeClass"])(["page-next",{disabled:!Object(r["unref"])(o).has_next}])},[Object(r["createVNode"])(n,{class:"page-link",to:{path:Object(r["unref"])(O),query:m(Object(r["unref"])(o).page,1)},event:Object(r["unref"])(o).has_next?"click":"",disabled:!Object(r["unref"])(o).has_next},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("api.PAGINATION.NEXT"))+" ",1),u]})),_:1},8,["to","event","disabled"])],2)])])}}}),d=(n("30bb"),n("6b0d")),m=n.n(d);const E=m()(O,[["__scopeId","data-v-de4b01da"]]);t["a"]=E},"6fe1":function(e,t,n){"use strict";n("8955")},"71a7":function(e,t,n){"use strict";var r=n("7a23"),c=n("b166"),o=n("dad5"),a=n("2906"),i={id:"user-infos",class:"description-list"},s={class:"user-bio"},l={key:1,class:"profile-buttons"},u={key:2,class:"profile-buttons"},O=Object(r["defineComponent"])({props:{user:null,fromAdmin:{default:!1}},setup:function(e){var t=e,n=Object(a["a"])(),O=Object(r["toRefs"])(t),d=O.user,m=O.fromAdmin,E=Object(r["computed"])((function(){return n.getters[o["a"].GETTERS.AUTH_USER_PROFILE]})),b=Object(r["computed"])((function(){return t.user.created_at?Object(c["a"])(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):""})),p=Object(r["computed"])((function(){return t.user.birth_date?Object(c["a"])(new Date(t.user.birth_date),"dd/MM/yyyy"):""})),T=Object(r["ref"])(!1);function f(e){T.value=e}function A(e){n.dispatch(o["a"].ACTIONS.DELETE_ACCOUNT,{username:e})}return function(e,t){var n=Object(r["resolveComponent"])("Modal");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,[Object(r["unref"])(T)?(Object(r["openBlock"])(),Object(r["createBlock"])(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"admin.CONFIRM_USER_ACCOUNT_DELETION",strongMessage:Object(r["unref"])(d).username,onConfirmAction:t[0]||(t[0]=function(e){return A(Object(r["unref"])(d).username)}),onCancelAction:t[1]||(t[1]=function(e){return f(!1)})},null,8,["title","strongMessage"])):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("dl",null,[Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(b)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(d).first_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(d).last_name),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(p)),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+":",1),Object(r["createElementVNode"])("dd",null,Object(r["toDisplayString"])(Object(r["unref"])(d).location),1),Object(r["createElementVNode"])("dt",null,Object(r["toDisplayString"])(e.$t("user.PROFILE.BIO"))+":",1),Object(r["createElementVNode"])("dd",s,Object(r["toDisplayString"])(Object(r["unref"])(d).bio),1)]),Object(r["unref"])(m)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",l,[Object(r["unref"])(E).username!==Object(r["unref"])(d).username?(Object(r["openBlock"])(),Object(r["createElementBlock"])("button",{key:0,class:"danger",onClick:t[2]||(t[2]=Object(r["withModifiers"])((function(e){return f(!0)}),["prevent"]))},Object(r["toDisplayString"])(e.$t("admin.DELETE_USER")),1)):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("button",{onClick:t[3]||(t[3]=function(t){return e.$router.go(-1)})},Object(r["toDisplayString"])(e.$t("buttons.BACK")),1)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",u,[Object(r["createElementVNode"])("button",{onClick:t[4]||(t[4]=function(t){return e.$router.push("/profile/edit")})},Object(r["toDisplayString"])(e.$t("user.PROFILE.EDIT")),1),Object(r["createElementVNode"])("button",{onClick:t[5]||(t[5]=function(t){return e.$router.push("/")})},Object(r["toDisplayString"])(e.$t("common.HOME")),1)]))])}}}),d=(n("a009"),n("6b0d")),m=n.n(d);const E=m()(O,[["__scopeId","data-v-d5946ea6"]]);t["a"]=E},7489:function(e,t,n){"use strict";n("1f46")},"83d3":function(e,t,n){"use strict";n("aaee")},8955:function(e,t,n){},"8bbf":function(e,t,n){"use strict";n("e3305")},"910d":function(e,t,n){},9176:function(e,t,n){"use strict";n("4e82"),n("99af");var r=n("7a23"),c={class:"table-selects"},o=["value"],a=["value"],i=["value"],s=["value"],l=["value"],u=["value"],O=Object(r["defineComponent"])({props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup:function(e,t){var n=t.emit,O=e,d=Object(r["toRefs"])(O),m=d.order_by,E=d.query,b=d.sort,p=d.message,T=[10,25,50,100];function f(e){n("updateSelect",e.target.id,e.target.value)}return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",c,[Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order_by",id:"order_by",value:Object(r["unref"])(E).order_by,onChange:f},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(m),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("".concat(Object(r["unref"])(p),".").concat(t.toUpperCase()))),9,a)})),128))],40,o)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"order",id:"order",value:Object(r["unref"])(E).order,onChange:f},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(b),(function(t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:t,key:t},Object(r["toDisplayString"])(e.$t("common.SELECTS.ORDER.".concat(t.toUpperCase()))),9,s)})),128))],40,i)]),Object(r["createElementVNode"])("label",null,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),Object(r["createElementVNode"])("select",{name:"per_page",id:"per_page",value:Object(r["unref"])(E).per_page,onChange:f},[(Object(r["openBlock"])(),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(T,(function(e){return Object(r["createElementVNode"])("option",{value:e,key:e},Object(r["toDisplayString"])(e),9,u)})),64))],40,l)])])}}}),d=(n("9308"),n("6b0d")),m=n.n(d);const E=m()(O,[["__scopeId","data-v-a5d764a4"]]);t["a"]=E},"922d":function(e,t,n){"use strict";n("dbef")},9308:function(e,t,n){"use strict";n("910d")},"96f9":function(e,t,n){},"97e5":function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"b",(function(){return O}));n("caad"),n("2532"),n("a630"),n("3ca3"),n("99af");var r=["asc","desc"],c=1,o=10,a=function(e,t){return e&&"string"===typeof e&&+e>0?+e:t},i=function(e,t,n){return e&&"string"===typeof e&&t.includes(e)?e:n},s=function(e,t,n,s){var l=s||{},u=l.defaultSort||"asc",O={};return O.page=a(e.page,c),O.per_page=a(e.per_page,o),O.order=i(e.order,r,u),O.order_by=i(e.order_by,t,n),O},l=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return Array.from({length:e-t+1},(function(e,n){return t+n}))},O=function(e,t){if(e<0)return[];if(e<9)return u(e);var n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{const{normalize:t}=e;return t(["Action"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},c={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"password: 8 characters required":e=>{const{normalize:t}=e;return t(["Password: 8 characters required."])},"sorry, that user already exists":e=>{const{normalize:t}=e;return t(["Sorry, that user already exists."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"username: 3 to 12 characters required":e=>{const{normalize:t}=e;return t(["Username: 3 to 12 characters required."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},o={BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},a={CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},i={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},s={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems encounter some issues.
Please try later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}}},l={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},u={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},O={ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},ENTER_EMAIL:e=>{const{normalize:t}=e;return t(["Enter an email address"])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},ENTER_PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirm the password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_CONFIRM:e=>{const{normalize:t}=e;return t(["Confirm Password"])},PASSWORD_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Password confirmation"])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},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"])}},d={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"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Elevation axis beginning at 0"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}};t["default"]={admin:r,api:c,buttons:o,common:a,dashboard:i,error:s,sports:l,statistics:u,user:O,workouts:d}},c364:function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return o}));n("b680"),n("99af");var r=["bytes","KB","MB","GB","TB"],c=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};var c=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?"".concat(c).concat(o):{size:c,suffix:o}},o=function(e){var t=e/1048576;return+t.toFixed(2)}},c46a:function(e,t,n){"use strict";n("99af");var r=n("7a23"),c=n("d257"),o={class:"user-picture"},a=["alt","src"],i={key:1,class:"no-picture"},s=Object(r["createElementVNode"])("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),l=[s],u=Object(r["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(r["computed"])((function(){return t.user.picture?"".concat(Object(c["a"])(),"users/").concat(t.user.username,"/picture"):""}));return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",o,[""!==Object(r["unref"])(n)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:Object(r["unref"])(n)},null,8,a)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,l))])}}});n("a06d");const O=u;t["a"]=O},c6c1:function(e,t,n){"use strict";n("b71d")},c7cd:function(e,t,n){},ccf6:function(e,t,n){},cd49:function(e,t,n){"use strict";n.r(t);n("e260"),n("e6cf"),n("cca6"),n("a79d"),n("d3b7"),n("159b"),n("b0c0");var r=n("9b4a"),c=n("d9fa"),o=n("7a23"),a=n("9483");Object(a["a"])("".concat("/","service-worker.js"),{ready:function(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered:function(){console.log("Service worker has been registered.")},cached:function(){console.log("Content has been cached for offline use.")},updatefound:function(){console.log("New content is downloading.")},updated:function(){console.log("New content is available; please refresh.")},offline:function(){console.log("No internet connection found. App is running in offline mode.")},error:function(e){console.error("Error during service worker registration:",e)}});var i=function(e){return Object(o["pushScopeId"])("data-v-e60d9c5e"),e=e(),Object(o["popScopeId"])(),e},s={id:"footer"},l={class:"footer-items"},u={class:"footer-item"},O=i((function(){return Object(o["createElementVNode"])("strong",null,"FitTrackee",-1)})),d=Object(o["createStaticVNode"])('',4),m=Object(o["defineComponent"])({props:{version:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.version;return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",s,[Object(o["createElementVNode"])("div",l,[Object(o["createElementVNode"])("div",u,[O,Object(o["createTextVNode"])(" v"+Object(o["toDisplayString"])(Object(o["unref"])(r)),1)]),d])])}}}),E=(n("3ca5"),n("6b0d")),b=n.n(E);const p=b()(m,[["__scopeId","data-v-e60d9c5e"]]);var T=p,f=(n("25f0"),n("47e2")),A=n("c46a"),S=n("dad5"),j=n("2906"),_=(n("d81d"),n("8923")),N=n("d481");n("ddb0"),n("ac1f"),n("466d");function R(){var e=n("e7b6"),t={};return e.keys().forEach((function(n){var r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){var c=r[1];t[c]=e(n).default}})),t}var g=Object(f["a"])({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:R()}),I={en:_["a"],fr:N["a"]},v={en:"English",fr:"Français"},U=g.global.availableLocales,h=U.map((function(e){return{label:v[e],value:e}})),k=function(e){return Object(o["pushScopeId"])("data-v-53493688"),e=e(),Object(o["popScopeId"])(),e},D={id:"nav"},C={class:"nav-container"},P={class:"nav-app-name"},M={class:"nav-items-close"},L=k((function(){return Object(o["createElementVNode"])("div",{class:"app-name"},"FitTrackee",-1)})),z={key:0,class:"nav-items-group"},y=k((function(){return Object(o["createElementVNode"])("div",{class:"nav-item nav-separator"},null,-1)})),w={class:"nav-items-user-menu"},V={key:0,class:"nav-items-group"},B={class:"nav-item nav-profile-img"},G={key:1,class:"nav-items-group"},x=k((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-language"},null,-1)})),K=Object(o["defineComponent"])({emits:["menuInteraction"],setup:function(e,t){var n=t.emit,r=Object(f["b"])(),c=r.locale,a=Object(j["a"])(),i=Object(o["computed"])((function(){return a.getters[S["a"].GETTERS.AUTH_USER_PROFILE]})),s=Object(o["computed"])((function(){return a.getters[S["a"].GETTERS.IS_AUTHENTICATED]})),l=Object(o["computed"])((function(){return a.getters[S["b"].GETTERS.LANGUAGE]})),u=Object(o["ref"])(!1);function O(){u.value=!0,n("menuInteraction",!0)}function d(){u.value=!1,n("menuInteraction",!1)}function m(e){c.value=e.value.toString(),a.commit(S["b"].MUTATIONS.UPDATE_LANG,e.value)}function E(){a.dispatch(S["a"].ACTIONS.LOGOUT)}return function(e,t){var n=Object(o["resolveComponent"])("router-link"),r=Object(o["resolveComponent"])("Dropdown");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",D,[Object(o["createElementVNode"])("div",C,[Object(o["createElementVNode"])("div",P,[Object(o["createElementVNode"])("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=function(t){return e.$router.push("/")})}," FitTrackee ")]),Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["nav-icon-open",{"menu-open":Object(o["unref"])(u)}])},[Object(o["createElementVNode"])("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=function(e){return O()})})],2),Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["nav-items",{"menu-open":Object(o["unref"])(u)}])},[Object(o["createElementVNode"])("div",M,[L,Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])(["fa fa-close close-icon nav-item",{"menu-closed":!Object(o["unref"])(u)}]),onClick:t[2]||(t[2]=function(e){return d()})},null,2)]),Object(o["createElementVNode"])("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=function(e){return d()})},[Object(o["unref"])(s)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",z,[Object(o["createVNode"])(n,{class:"nav-item",to:"/"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("dashboard.DASHBOARD")),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/workouts"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",2))),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/statistics"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("statistics.STATISTICS")),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/workouts/add"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("workouts.ADD_WORKOUT")),1)]})),_:1}),Object(o["unref"])(s)&&Object(o["unref"])(i).admin?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,class:"nav-item",to:"/admin"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.ADMIN")),1)]})),_:1})):Object(o["createCommentVNode"])("",!0),y])):Object(o["createCommentVNode"])("",!0)]),Object(o["createElementVNode"])("div",w,[Object(o["unref"])(s)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",V,[Object(o["createElementVNode"])("div",B,[Object(o["createVNode"])(A["a"],{user:Object(o["unref"])(i)},null,8,["user"])]),Object(o["createVNode"])(n,{class:"nav-item",to:"/profile",onClick:d},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["unref"])(i).username),1)]})),_:1}),Object(o["createElementVNode"])("div",{class:"nav-item nav-link",onClick:E},Object(o["toDisplayString"])(e.$t("user.LOGOUT")),1)])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",G,[Object(o["createVNode"])(n,{class:"nav-item",to:"/login",onClick:d},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.LOGIN")),1)]})),_:1}),Object(o["createVNode"])(n,{class:"nav-item",to:"/register",onClick:d},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.REGISTER")),1)]})),_:1})])),Object(o["unref"])(h)&&Object(o["unref"])(l)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:2,class:"nav-item",options:Object(o["unref"])(h),selected:Object(o["unref"])(l),onSelected:m},{default:Object(o["withCtx"])((function(){return[x]})),_:1},8,["options","selected"])):Object(o["createCommentVNode"])("",!0)])],2)])])}}});n("bae4");const F=b()(K,[["__scopeId","data-v-53493688"]]);var W=F,H={id:"no-config"},$={class:"error-page"},Y=Object(o["createStaticVNode"])('
',1),q=["innerHTML"];function X(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",H,[Object(o["createElementVNode"])("div",$,[Y,Object(o["createElementVNode"])("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,q)])])}n("ba7f");const Z={},J=b()(Z,[["render",X],["__scopeId","data-v-c1193208"]]);var Q=J,ee=function(e){return Object(o["pushScopeId"])("data-v-6c3336ff"),e=e(),Object(o["popScopeId"])(),e},te=ee((function(){return Object(o["createElementVNode"])("div",{id:"top"},null,-1)})),ne={key:0,class:"app-container"},re={class:"app-loading"},ce={class:"container scroll"},oe=ee((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1)})),ae=[oe],ie=Object(o["defineComponent"])({setup:function(e){var t=Object(j["a"])(),n=Object(o["computed"])((function(){return t.getters[S["b"].GETTERS.APP_CONFIG]})),r=Object(o["computed"])((function(){return t.getters[S["b"].GETTERS.APP_LOADING]})),c=Object(o["ref"])(!1),a=Object(o["ref"])(!1);function i(e){c.value=e}function s(e){return e.getBoundingClientRect().top=0}function l(){window.onscroll=function(){var e=document.querySelector("#bottom");a.value=null!==e&&s(e)}}function u(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((function(){a.value=!1}),300)}return Object(o["onBeforeMount"])((function(){return t.dispatch(S["b"].ACTIONS.GET_APPLICATION_CONFIG)})),Object(o["onMounted"])((function(){return l()})),function(e,t){var s=Object(o["resolveComponent"])("Loader"),l=Object(o["resolveComponent"])("router-view");return Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],null,[te,Object(o["createVNode"])(W,{onMenuInteraction:i}),Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ne,[Object(o["createElementVNode"])("div",re,[Object(o["createVNode"])(s)])])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{key:1,class:Object(o["normalizeClass"])(["app-container",{"hide-scroll":c.value}])},[Object(o["unref"])(n)?(Object(o["openBlock"])(),Object(o["createBlock"])(l,{key:0})):(Object(o["openBlock"])(),Object(o["createBlock"])(Q,{key:1}))],2)),Object(o["createElementVNode"])("div",ce,[Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["scroll-button",{"display-button":a.value}]),onClick:u},ae,2)]),Object(o["unref"])(n)?(Object(o["openBlock"])(),Object(o["createBlock"])(T,{key:2,version:Object(o["unref"])(n)?Object(o["unref"])(n).version:""},null,8,["version"])):Object(o["createCommentVNode"])("",!0)],64)}}});n("1446");const se=b()(ie,[["__scopeId","data-v-6c3336ff"]]);var le=se,ue=(n("5319"),n("3ca3"),n("caad"),n("6c02")),Oe=(n("b64b"),n("c364")),de=function(e){return Object(o["pushScopeId"])("data-v-03002a18"),e=e(),Object(o["popScopeId"])(),e},me={id:"admin-app",class:"admin-card"},Ee=["onSubmit"],be={for:"max_users"},pe=["disabled"],Te={class:"user-limit-help"},fe={class:"info-box"},Ae=de((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)})),Se={for:"max_single_file_size"},je=["disabled"],_e={for:"max_zip_file_size"},Ne=["disabled"],Re={for:"gpx_limit_import"},ge=["disabled"],Ie={key:1,class:"form-buttons"},ve={class:"confirm",type:"submit"},Ue=["onClick"],he={key:2,class:"form-buttons"},ke=Object(o["defineComponent"])({props:{appConfig:null,edition:{default:!1}},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(ue["d"])(),c=Object(o["reactive"])({max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),a=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function i(e){Object.keys(c).map((function(t){["max_single_file_size","max_zip_file_size"].includes(t)?c[t]=Object(Oe["a"])(e[t]):c[t]=e[t]}))}function s(){i(t.appConfig),n.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),r.push("/admin/application")}function l(){var e=Object.assign({},c);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,n.dispatch(S["b"].ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return Object(o["onBeforeMount"])((function(){t.appConfig&&i(t.appConfig)})),function(t,n){var r=Object(o["resolveComponent"])("ErrorMessage"),i=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",me,[Object(o["createVNode"])(i,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.TITLE")),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("form",{class:"admin-form",onSubmit:Object(o["withModifiers"])(l,["prevent"])},[Object(o["createElementVNode"])("label",be,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":n[0]||(n[0]=function(e){return Object(o["unref"])(c).max_users=e}),disabled:!e.edition},null,8,pe),[[o["vModelText"],Object(o["unref"])(c).max_users]])]),Object(o["createElementVNode"])("div",Te,[Object(o["createElementVNode"])("span",fe,[Ae,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),Object(o["createElementVNode"])("label",Se,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[1]||(n[1]=function(e){return Object(o["unref"])(c).max_single_file_size=e}),disabled:!e.edition},null,8,je),[[o["vModelText"],Object(o["unref"])(c).max_single_file_size]])]),Object(o["createElementVNode"])("label",_e,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[2]||(n[2]=function(e){return Object(o["unref"])(c).max_zip_file_size=e}),disabled:!e.edition},null,8,Ne),[[o["vModelText"],Object(o["unref"])(c).max_zip_file_size]])]),Object(o["createElementVNode"])("label",Re,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":n[3]||(n[3]=function(e){return Object(o["unref"])(c).gpx_limit_import=e}),disabled:!e.edition},null,8,ge),[[o["vModelText"],Object(o["unref"])(c).gpx_limit_import]])]),Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:0,message:Object(o["unref"])(a)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),e.edition?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Ie,[Object(o["createElementVNode"])("button",ve,Object(o["toDisplayString"])(t.$t("buttons.SUBMIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:Object(o["withModifiers"])(s,["prevent"])},Object(o["toDisplayString"])(t.$t("buttons.CANCEL")),9,Ue)])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",he,[Object(o["createElementVNode"])("button",{class:"confirm",onClick:n[4]||(n[4]=Object(o["withModifiers"])((function(e){return t.$router.push("/admin/application/edit")}),["prevent"]))},Object(o["toDisplayString"])(t.$t("buttons.EDIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:n[5]||(n[5]=Object(o["withModifiers"])((function(e){return t.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(t.$t("admin.BACK_TO_ADMIN")),1)]))],40,Ee)]})),_:1})])}}});n("61af");const De=b()(ke,[["__scopeId","data-v-03002a18"]]);var Ce=De,Pe=n("05d9"),Me={id:"user-stats"},Le=Object(o["defineComponent"])({props:{appStatistics:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(o["computed"])((function(){return t.appStatistics.uploads_dir_size?Object(Oe["b"])(t.appStatistics.uploads_dir_size,!1):{size:0,suffix:"bytes"}})),r=Object(o["computed"])((function(){return t.appStatistics.users?t.appStatistics.users:0})),c=Object(o["computed"])((function(){return t.appStatistics.sports?t.appStatistics.sports:0})),a=Object(o["computed"])((function(){return t.appStatistics.workouts?t.appStatistics.workouts:0}));return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Me,[Object(o["createVNode"])(Pe["a"],{icon:"users",value:Object(o["unref"])(r),text:e.$t("admin.USER",Object(o["unref"])(r))},null,8,["value","text"]),Object(o["createVNode"])(Pe["a"],{icon:"tags",value:Object(o["unref"])(c),text:e.$t("workouts.SPORT",Object(o["unref"])(c))},null,8,["value","text"]),Object(o["createVNode"])(Pe["a"],{icon:"calendar",value:Object(o["unref"])(a),text:e.$t("workouts.WORKOUT",Object(o["unref"])(a))},null,8,["value","text"]),Object(o["createVNode"])(Pe["a"],{icon:"folder-open",value:Object(o["unref"])(n).size,text:Object(o["unref"])(n).suffix},null,8,["value","text"])])}}});n("e591");const ze=Le;var ye=ze,we={class:"card"},Ve={class:"card-title"},Be={class:"card-content"};function Ge(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",we,[Object(o["createElementVNode"])("div",Ve,[Object(o["renderSlot"])(e.$slots,"title")]),Object(o["createElementVNode"])("div",Be,[Object(o["renderSlot"])(e.$slots,"content")])])}n("83d3");const xe={},Ke=b()(xe,[["render",Ge]]);var Fe=Ke,We=function(e){return Object(o["pushScopeId"])("data-v-7dad7915"),e=e(),Object(o["popScopeId"])(),e},He={id:"admin-menu",class:"center-card"},$e={class:"admin-menu description-list"},Ye=We((function(){return Object(o["createElementVNode"])("br",null,null,-1)})),qe={class:"registration-status"},Xe=Object(o["defineComponent"])({props:{appConfig:null,appStatistics:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.appConfig,c=n.appStatistics;return function(e,t){var n=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",He,[Object(o["createVNode"])(Fe,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.ADMINISTRATION")),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(ye,{appStatistics:Object(o["unref"])(c)},null,8,["appStatistics"]),Object(o["createElementVNode"])("div",$e,[Object(o["createElementVNode"])("dl",null,[Object(o["createElementVNode"])("dt",null,[Object(o["createVNode"])(n,{to:"/admin/application"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.APPLICATION")),1)]})),_:1})]),Object(o["createElementVNode"])("dd",null,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),Ye,Object(o["createElementVNode"])("span",qe,Object(o["toDisplayString"])(e.$t("admin.REGISTRATION_".concat(Object(o["unref"])(r).is_registration_enabled?"ENABLED":"DISABLED"))),1)]),Object(o["createElementVNode"])("dt",null,[Object(o["createVNode"])(n,{to:"/admin/sports"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.SPORT",0))),1)]})),_:1})]),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),Object(o["createElementVNode"])("dt",null,[Object(o["createVNode"])(n,{to:"/admin/users"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("admin.USER",0))),1)]})),_:1})]),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]})),_:1})])}}});n("07a4");const Ze=b()(Xe,[["__scopeId","data-v-7dad7915"]]);var Je=Ze,Qe=n("1119"),et=function(e){return Object(o["pushScopeId"])("data-v-8e49af46"),e=e(),Object(o["popScopeId"])(),e},tt={id:"admin-sports",class:"admin-card"},nt={class:"responsive-table"},rt=et((function(){return Object(o["createElementVNode"])("th",null,"#",-1)})),ct={class:"text-left"},ot={class:"text-left sport-action"},at=et((function(){return Object(o["createElementVNode"])("th",null,null,-1)})),it={class:"center-text"},st=et((function(){return Object(o["createElementVNode"])("span",{class:"cell-heading"},"id",-1)})),lt={class:"cell-heading"},ut={class:"sport-label"},Ot={class:"cell-heading"},dt={class:"center-text"},mt={class:"cell-heading"},Et={class:"sport-action"},bt={class:"cell-heading"},pt={class:"action-button"},Tt=["onClick"],ft={key:0,class:"has-workouts"},At=et((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)})),St=Object(o["defineComponent"])({setup:function(e){var t=Object(f["b"])(),n=t.t,r=Object(j["a"])(),c=Object(o["computed"])((function(){return Object(Qe["d"])(r.getters[S["c"].GETTERS.SPORTS],n)})),a=Object(o["computed"])((function(){return r.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function i(e,t){r.dispatch(S["c"].ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return function(e,t){var n=Object(o["resolveComponent"])("SportImage"),r=Object(o["resolveComponent"])("ErrorMessage"),s=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",tt,[Object(o["createVNode"])(s,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("admin.SPORTS.TITLE")),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("button",{class:"top-button",onClick:t[0]||(t[0]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(o["createElementVNode"])("div",nt,[Object(o["createElementVNode"])("table",null,[Object(o["createElementVNode"])("thead",null,[Object(o["createElementVNode"])("tr",null,[rt,Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(o["createElementVNode"])("th",ct,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(o["createElementVNode"])("th",ot,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1),at])]),Object(o["createElementVNode"])("tbody",null,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(c),(function(t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{key:t.id},[Object(o["createElementVNode"])("td",it,[st,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.id),1)]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",lt,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.IMAGE")),1),Object(o["createVNode"])(n,{title:t.translatedLabel,"sport-label":t.label},null,8,["title","sport-label"])]),Object(o["createElementVNode"])("td",ut,[Object(o["createElementVNode"])("span",Ot,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.LABEL")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.translatedLabel),1)]),Object(o["createElementVNode"])("td",dt,[Object(o["createElementVNode"])("span",mt,Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])("fa fa".concat(t.is_active?"-check":"","-square-o")),"aria-hidden":"true"},null,2)]),Object(o["createElementVNode"])("td",Et,[Object(o["createElementVNode"])("span",bt,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1),Object(o["createElementVNode"])("div",pt,[Object(o["createElementVNode"])("button",{class:Object(o["normalizeClass"])({danger:t.is_active}),onClick:function(e){return i(t.id,!t.is_active)}},Object(o["toDisplayString"])(e.$t("buttons.".concat(t.is_active?"DIS":"EN","ABLE"))),11,Tt),t.has_workouts?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",ft,[At,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):Object(o["createCommentVNode"])("",!0)])])])})),128))])]),Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:0,message:Object(o["unref"])(a)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("button",{onClick:t[1]||(t[1]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])}}});n("e669");const jt=b()(St,[["__scopeId","data-v-8e49af46"]]);var _t=jt,Nt=n("b166"),Rt=n("9176"),gt=n("6d7d"),It=n("97e5"),vt=n("5e65"),Ut=function(e){return Object(o["pushScopeId"])("data-v-4b4e6923"),e=e(),Object(o["popScopeId"])(),e},ht={id:"admin-users",class:"admin-card"},kt={class:"responsive-table"},Dt=Ut((function(){return Object(o["createElementVNode"])("th",null,"#",-1)})),Ct={class:"left-text"},Pt={class:"left-text"},Mt={class:"left-text"},Lt={class:"cell-heading"},zt={class:"cell-heading"},yt={class:"cell-heading"},wt={class:"cell-heading"},Vt={class:"center-text"},Bt={class:"cell-heading"},Gt={class:"center-text"},xt={class:"cell-heading"},Kt={class:"center-text"},Ft={class:"cell-heading"},Wt=["disabled","onClick"],Ht=Object(o["defineComponent"])({setup:function(e){var t=Object(j["a"])(),n=Object(ue["c"])(),r=Object(ue["d"])(),c=["admin","created_at","username","workouts_count"],a="created_at",i=Object(o["reactive"])(Object(It["a"])(n.query,c,a)),s=Object(o["computed"])((function(){return t.getters[S["a"].GETTERS.AUTH_USER_PROFILE]})),l=Object(o["computed"])((function(){return t.getters[S["e"].GETTERS.USERS]})),u=Object(o["computed"])((function(){return t.getters[S["e"].GETTERS.USERS_PAGINATION]})),O=Object(o["computed"])((function(){return t.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function d(e){t.dispatch(S["e"].ACTIONS.GET_USERS,e)}function m(e,n){t.dispatch(S["e"].ACTIONS.UPDATE_USER,{username:e,admin:n})}function E(e,t){i[e]=t,"per_page"===e&&(i.page=1),r.push({path:"/admin/users",query:i})}return Object(o["onBeforeMount"])((function(){return d(i)})),Object(o["onUnmounted"])((function(){t.dispatch(S["e"].ACTIONS.EMPTY_USERS)})),Object(o["watch"])((function(){return n.query}),(function(e){i=Object(It["a"])(e,c,a,{query:i}),d(i)})),function(e,t){var n=Object(o["resolveComponent"])("router-link"),r=Object(o["resolveComponent"])("ErrorMessage"),a=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ht,[Object(o["createVNode"])(a,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("admin.USER",0))),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("button",{class:"top-button",onClick:t[0]||(t[0]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1),Object(o["createVNode"])(Rt["a"],{sort:Object(o["unref"])(It["c"]),order_by:c,query:Object(o["unref"])(i),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:E},null,8,["sort","query"]),Object(o["createElementVNode"])("div",kt,[Object(o["createElementVNode"])("table",null,[Object(o["createElementVNode"])("thead",null,[Object(o["createElementVNode"])("tr",null,[Dt,Object(o["createElementVNode"])("th",Ct,Object(o["toDisplayString"])(e.$t("user.USERNAME")),1),Object(o["createElementVNode"])("th",Pt,Object(o["toDisplayString"])(e.$t("user.EMAIL")),1),Object(o["createElementVNode"])("th",Mt,Object(o["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",0))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("user.ADMIN")),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1)])]),Object(o["createElementVNode"])("tbody",null,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(l),(function(t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{key:t.username},[Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",Lt,Object(o["toDisplayString"])(e.$t("user.PROFILE.PICTURE")),1),Object(o["createVNode"])(A["a"],{user:t},null,8,["user"])]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",zt,Object(o["toDisplayString"])(e.$t("user.USERNAME")),1),Object(o["createVNode"])(n,{to:"/users/".concat(t.username)},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(t.username),1)]})),_:2},1032,["to"])]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",yt,Object(o["toDisplayString"])(e.$t("user.EMAIL")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.email),1)]),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",wt,Object(o["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(Object(o["unref"])(Nt["a"])(Object(o["unref"])(vt["c"])(t.created_at,Object(o["unref"])(s).timezone),"dd/MM/yyyy HH:mm")),1)]),Object(o["createElementVNode"])("td",Vt,[Object(o["createElementVNode"])("span",Bt,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",0))),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(t.nb_workouts),1)]),Object(o["createElementVNode"])("td",Gt,[Object(o["createElementVNode"])("span",xt,Object(o["toDisplayString"])(e.$t("user.ADMIN")),1),Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])("fa fa".concat(t.admin?"-check":"","-square-o")),"aria-hidden":"true"},null,2)]),Object(o["createElementVNode"])("td",Kt,[Object(o["createElementVNode"])("span",Ft,Object(o["toDisplayString"])(e.$t("admin.ACTION")),1),Object(o["createElementVNode"])("button",{class:Object(o["normalizeClass"])({danger:t.admin}),disabled:t.username===Object(o["unref"])(s).username,onClick:function(e){return m(t.username,!t.admin)}},Object(o["toDisplayString"])(e.$t("admin.USERS.TABLE.".concat(t.admin?"REMOVE":"ADD","_ADMIN_RIGHTS"))),11,Wt)])])})),128))])]),Object(o["unref"])(u).page?(Object(o["openBlock"])(),Object(o["createBlock"])(gt["a"],{key:0,path:"/admin/users",pagination:Object(o["unref"])(u),query:Object(o["unref"])(i)},null,8,["pagination","query"])):Object(o["createCommentVNode"])("",!0),Object(o["unref"])(O)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:1,message:Object(o["unref"])(O)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("button",{onClick:t[1]||(t[1]=Object(o["withModifiers"])((function(t){return e.$router.push("/admin")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("admin.BACK_TO_ADMIN")),1)])]})),_:1})])}}});n("6fe1");const $t=b()(Ht,[["__scopeId","data-v-4b4e6923"]]);var Yt=$t,qt=n("3c44"),Xt={class:"profile-tabs custom-checkboxes-group"},Zt={class:"profile-tabs-checkboxes custom-checkboxes"},Jt=["id","name","checked","disabled","onInput"],Qt=Object(o["defineComponent"])({props:{tabs:null,selectedTab:null,edition:null,disabled:{default:!1}},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.tabs,c=n.selectedTab,a=n.disabled;function i(e){switch(e){case"PICTURE":return"/profile/edit/picture";case"PREFERENCES":return"/profile".concat(t.edition?"/edit":"","/preferences");default:case"PROFILE":return"/profile".concat(t.edition?"/edit":"")}}return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Xt,[Object(o["createElementVNode"])("div",Zt,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(r),(function(t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"profile-tab custom-checkbox",key:t},[Object(o["createElementVNode"])("label",null,[Object(o["createElementVNode"])("input",{type:"radio",id:t,name:t,checked:Object(o["unref"])(c)===t,disabled:Object(o["unref"])(a),onInput:function(n){return e.$router.push(i(t))}},null,40,Jt),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.TABS.".concat(t))),1)])])})),128))])])}}});n("c040");const en=Qt;var tn=en,nn={id:"user-profile"},rn={class:"box"},cn=Object(o["defineComponent"])({props:{user:null,tab:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.user,c=n.tab,a=["PROFILE","PREFERENCES"];return function(e,t){var n=Object(o["resolveComponent"])("router-view");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",nn,[Object(o["createVNode"])(qt["a"],{user:Object(o["unref"])(r)},null,8,["user"]),Object(o["createElementVNode"])("div",rn,[Object(o["createVNode"])(tn,{tabs:a,selectedTab:Object(o["unref"])(c),edition:!1},null,8,["selectedTab"]),Object(o["createVNode"])(n,{user:Object(o["unref"])(r)},null,8,["user"])])])}}});n("8bbf");const on=b()(cn,[["__scopeId","data-v-b211d1ec"]]);var an=on,sn=n("71a7"),ln={id:"user-preferences",class:"description-list"},un={class:"profile-buttons"},On=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(o["computed"])((function(){return t.user.language?v[t.user.language]:v["en"]})),r=Object(o["computed"])((function(){return t.user.weekm?"MONDAY":"SUNDAY"})),c=Object(o["computed"])((function(){return t.user.timezone?t.user.timezone:"Europe/Paris"}));return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ln,[Object(o["createElementVNode"])("dl",null,[Object(o["createElementVNode"])("dt",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+":",1),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(Object(o["unref"])(n)),1),Object(o["createElementVNode"])("dt",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+":",1),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(Object(o["unref"])(c)),1),Object(o["createElementVNode"])("dt",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),Object(o["createElementVNode"])("dd",null,Object(o["toDisplayString"])(e.$t("user.PROFILE.".concat(Object(o["unref"])(r)))),1)]),Object(o["createElementVNode"])("div",un,[Object(o["createElementVNode"])("button",{onClick:t[0]||(t[0]=function(t){return e.$router.push("/profile/edit/preferences")})},Object(o["toDisplayString"])(e.$t("user.PROFILE.EDIT_PREFERENCES")),1),Object(o["createElementVNode"])("button",{onClick:t[1]||(t[1]=function(t){return e.$router.push("/")})},Object(o["toDisplayString"])(e.$t("common.HOME")),1)])])}}});n("c6c1");const dn=b()(On,[["__scopeId","data-v-5eb5bd11"]]);var mn=dn,En={id:"user-profile-edition",class:"center-card"},bn=Object(o["defineComponent"])({props:{user:null,tab:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["toRefs"])(t),c=r.user,a=r.tab,i=["PROFILE","PICTURE","PREFERENCES"],s=Object(o["computed"])((function(){return n.getters[S["a"].GETTERS.USER_LOADING]}));return function(e,t){var n=Object(o["resolveComponent"])("router-view"),r=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",En,[Object(o["createVNode"])(r,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.".concat(Object(o["unref"])(a),"_EDITION"))),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(tn,{tabs:i,selectedTab:Object(o["unref"])(a),edition:!0,disabled:Object(o["unref"])(s)},null,8,["selectedTab","disabled"]),Object(o["createVNode"])(n,{user:Object(o["unref"])(c)},null,8,["user"])]})),_:1})])}}});const pn=bn;var Tn=pn,fn={id:"user-infos-edition"},An={class:"profile-form form-box"},Sn=["onSubmit"],jn={class:"form-items",for:"email"},_n=["value"],Nn={class:"form-items",for:"registrationDate"},Rn=["value"],gn={class:"form-items",for:"password"},In=["disabled"],vn={class:"form-items",for:"passwordConfirmation"},Un=["disabled"],hn=Object(o["createElementVNode"])("hr",null,null,-1),kn={class:"form-items",for:"first_name"},Dn=["disabled"],Cn={class:"form-items",for:"last_name"},Pn={class:"form-items",for:"birth_date"},Mn=["disabled"],Ln={class:"form-items",for:"location"},zn=["disabled"],yn={class:"form-items"},wn={class:"form-buttons"},Vn={class:"confirm",type:"submit"},Bn=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["toRefs"])(t),c=r.user,a=Object(o["reactive"])({password:"",password_conf:"",first_name:"",last_name:"",birth_date:"",location:"",bio:""}),i=Object(o["computed"])((function(){return t.user.created_at?Object(Nt["a"])(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):""})),s=Object(o["computed"])((function(){return n.getters[S["a"].GETTERS.USER_LOADING]})),l=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]})),u=Object(o["ref"])(!1);function O(e){a.first_name=e.first_name?e.first_name:"",a.last_name=e.last_name?e.last_name:"",a.birth_date=e.birth_date?Object(Nt["a"])(new Date(e.birth_date),"yyyy-MM-dd"):"",a.location=e.location?e.location:"",a.bio=e.bio?e.bio:""}function d(e){a.bio=e}function m(){n.dispatch(S["a"].ACTIONS.UPDATE_USER_PROFILE,a)}function E(e){u.value=e}function b(e){n.dispatch(S["a"].ACTIONS.DELETE_ACCOUNT,{username:e})}return Object(o["onMounted"])((function(){t.user&&O(t.user)})),function(e,t){var n=Object(o["resolveComponent"])("Modal"),r=Object(o["resolveComponent"])("ErrorMessage"),O=Object(o["resolveComponent"])("CustomTextArea");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",fn,[Object(o["unref"])(u)?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=function(e){return b(Object(o["unref"])(c).username)}),onCancelAction:t[1]||(t[1]=function(e){return E(!1)})},null,8,["title","message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",An,[Object(o["unref"])(l)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:0,message:Object(o["unref"])(l)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("form",{onSubmit:Object(o["withModifiers"])(m,["prevent"])},[Object(o["createElementVNode"])("label",jn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.EMAIL"))+" ",1),Object(o["createElementVNode"])("input",{id:"email",value:Object(o["unref"])(c).email,disabled:""},null,8,_n)]),Object(o["createElementVNode"])("label",Nn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),Object(o["createElementVNode"])("input",{id:"registrationDate",value:Object(o["unref"])(i),disabled:""},null,8,Rn)]),Object(o["createElementVNode"])("label",gn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PASSWORD"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"password",type:"password","onUpdate:modelValue":t[2]||(t[2]=function(e){return Object(o["unref"])(a).password=e}),disabled:Object(o["unref"])(s)},null,8,In),[[o["vModelText"],Object(o["unref"])(a).password]])]),Object(o["createElementVNode"])("label",vn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PASSWORD_CONFIRMATION"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"passwordConfirmation",type:"password","onUpdate:modelValue":t[3]||(t[3]=function(e){return Object(o["unref"])(a).password_conf=e}),disabled:Object(o["unref"])(s)},null,8,Un),[[o["vModelText"],Object(o["unref"])(a).password_conf]])]),hn,Object(o["createElementVNode"])("label",kn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"first_name","onUpdate:modelValue":t[4]||(t[4]=function(e){return Object(o["unref"])(a).first_name=e}),disabled:Object(o["unref"])(s)},null,8,Dn),[[o["vModelText"],Object(o["unref"])(a).first_name]])]),Object(o["createElementVNode"])("label",Cn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.LAST_NAME"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"last_name","onUpdate:modelValue":t[5]||(t[5]=function(e){return Object(o["unref"])(a).last_name=e})},null,512),[[o["vModelText"],Object(o["unref"])(a).last_name]])]),Object(o["createElementVNode"])("label",Pn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[6]||(t[6]=function(e){return Object(o["unref"])(a).birth_date=e}),disabled:Object(o["unref"])(s)},null,8,Mn),[[o["vModelText"],Object(o["unref"])(a).birth_date]])]),Object(o["createElementVNode"])("label",Ln,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.LOCATION"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("input",{id:"location","onUpdate:modelValue":t[7]||(t[7]=function(e){return Object(o["unref"])(a).location=e}),disabled:Object(o["unref"])(s)},null,8,zn),[[o["vModelText"],Object(o["unref"])(a).location]])]),Object(o["createElementVNode"])("label",yn,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.BIO"))+" ",1),Object(o["createVNode"])(O,{name:"bio",charLimit:200,input:Object(o["unref"])(a).bio,disabled:Object(o["unref"])(s),onUpdateValue:d},null,8,["input","disabled"])]),Object(o["createElementVNode"])("div",wn,[Object(o["createElementVNode"])("button",Vn,Object(o["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[8]||(t[8]=Object(o["withModifiers"])((function(t){return e.$router.push("/profile")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("buttons.CANCEL")),1),Object(o["createElementVNode"])("button",{class:"danger",onClick:t[9]||(t[9]=Object(o["withModifiers"])((function(e){return E(!0)}),["prevent"]))},Object(o["toDisplayString"])(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],40,Sn)])])}}});n("44dee");const Gn=Bn;var xn=Gn,Kn=function(e){return Object(o["pushScopeId"])("data-v-239b9d46"),e=e(),Object(o["popScopeId"])(),e},Fn={id:"user-picture-edition"},Wn={class:"user-picture-form"},Hn=["onSubmit"],$n={class:"picture-help"},Yn={class:"info-box"},qn=Kn((function(){return Object(o["createElementVNode"])("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)})),Xn={class:"picture-buttons"},Zn=["disabled"],Jn=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["toRefs"])(t),c=r.user,a=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]})),i=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.APP_CONFIG]})),s=i.value.max_single_file_size?Object(Oe["b"])(i.value.max_single_file_size):"",l=Object(o["ref"])(null);function u(){n.dispatch(S["a"].ACTIONS.DELETE_PICTURE)}function O(e){e.target.files&&(l.value=e.target.files[0])}function d(){l.value&&n.dispatch(S["a"].ACTIONS.UPDATE_USER_PICTURE,{picture:l.value})}return function(e,t){var n=Object(o["resolveComponent"])("ErrorMessage");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Fn,[Object(o["createElementVNode"])("div",Wn,[Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,message:Object(o["unref"])(a)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createVNode"])(A["a"],{user:Object(o["unref"])(c)},null,8,["user"]),Object(o["createElementVNode"])("form",{onSubmit:Object(o["withModifiers"])(d,["prevent"])},[Object(o["createElementVNode"])("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:O},null,32),Object(o["createElementVNode"])("div",$n,[Object(o["createElementVNode"])("span",Yn,[qn,Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(o["toDisplayString"])(Object(o["unref"])(s)),1)])]),Object(o["createElementVNode"])("div",Xn,[Object(o["createElementVNode"])("button",{type:"submit",disabled:!Object(o["unref"])(l)},Object(o["toDisplayString"])(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Zn),Object(o["unref"])(c).picture?(Object(o["openBlock"])(),Object(o["createElementBlock"])("button",{key:0,class:"danger",onClick:u},Object(o["toDisplayString"])(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[0]||(t[0]=function(t){return e.$router.push("/profile")})},Object(o["toDisplayString"])(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,Hn)])])}}});n("9ad0");const Qn=b()(Jn,[["__scopeId","data-v-239b9d46"]]);var er=Qn,tr=(n("498a"),n("4de4"),["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Fort_Nelson","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"]),nr={id:"tz-dropdown"},rr=["value","disabled","onKeydown"],cr=["onClick","onMouseover","autofocus"],or=Object(o["defineComponent"])({props:{input:null,disabled:{default:!1}},emits:["updateTimezone"],setup:function(e,t){var n=t.emit,r=e,c=Object(o["toRefs"])(r),a=c.input,i=c.disabled,s=Object(o["ref"])(r.input),l=Object(o["ref"])(!1),u=Object(o["ref"])(null),O=Object(o["ref"])(0);function d(e){return e.toLowerCase().match(s.value.toLowerCase())}function m(e){O.value=e}function E(e){s.value=e,l.value=!1,n("updateTimezone",e)}function b(e){var t,n,r,c;(e.preventDefault(),null!==(t=u.value)&&void 0!==t&&null!==(n=t.firstElementChild)&&void 0!==n&&n.innerHTML)&&E(null===(r=u.value)||void 0===r||null===(c=r.firstElementChild)||void 0===c?void 0:c.innerHTML)}function p(e){e.preventDefault(),l.value=!0,s.value=e.target.value.trim()}return Object(o["watch"])((function(){return r.input}),(function(e){s.value=e})),function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",nr,[Object(o["createElementVNode"])("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:s.value,disabled:Object(o["unref"])(i),required:"",onKeydown:[t[0]||(t[0]=Object(o["withKeys"])((function(e){return E(Object(o["unref"])(a))}),["esc"])),Object(o["withKeys"])(b,["enter"])],onInput:p},null,40,rr),l.value?(Object(o["openBlock"])(),Object(o["createElementBlock"])("ul",{key:0,class:"tz-dropdown-list",ref:function(e,t){t["tzList"]=e,u.value=e}},[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(tr).filter((function(e){return d(e)})),(function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("li",{key:e,class:Object(o["normalizeClass"])(["tz-dropdown-item",{focus:t===O.value}]),onClick:function(t){return E(e)},onMouseover:function(e){return m(t)},autofocus:t===O.value},Object(o["toDisplayString"])(e),43,cr)})),128))],512)):Object(o["createCommentVNode"])("",!0)])}}});n("dfd6");const ar=b()(or,[["__scopeId","data-v-d1c5cf04"]]);var ir=ar,sr={id:"user-preferences-edition"},lr={class:"profile-form form-box"},ur=["onSubmit"],Or={class:"form-items"},dr=["disabled"],mr=["value"],Er={class:"form-items"},br={class:"form-items"},pr=["disabled"],Tr=["value"],fr={class:"form-buttons"},Ar={class:"confirm",type:"submit"},Sr=Object(o["defineComponent"])({props:{user:null},setup:function(e){var t=e,n=Object(j["a"])(),r=Object(o["reactive"])({language:"",timezone:"Europe/Paris",weekm:!1}),c=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],a=Object(o["computed"])((function(){return n.getters[S["a"].GETTERS.USER_LOADING]})),i=Object(o["computed"])((function(){return n.getters[S["b"].GETTERS.ERROR_MESSAGES]}));function s(e){r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.weekm=!!e.weekm&&e.weekm}function l(){n.dispatch(S["a"].ACTIONS.UPDATE_USER_PREFERENCES,r)}function u(e){r.timezone=e}return Object(o["onMounted"])((function(){t.user&&s(t.user)})),function(e,t){var n=Object(o["resolveComponent"])("ErrorMessage");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",sr,[Object(o["createElementVNode"])("div",lr,[Object(o["unref"])(i)?(Object(o["openBlock"])(),Object(o["createBlock"])(n,{key:0,message:Object(o["unref"])(i)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("form",{onSubmit:Object(o["withModifiers"])(l,["prevent"])},[Object(o["createElementVNode"])("label",Or,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.LANGUAGE"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=function(e){return Object(o["unref"])(r).language=e}),disabled:Object(o["unref"])(a)},[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(h),(function(e){return Object(o["openBlock"])(),Object(o["createElementBlock"])("option",{value:e.value,key:e.value},Object(o["toDisplayString"])(e.label),9,mr)})),128))],8,dr),[[o["vModelSelect"],Object(o["unref"])(r).language]])]),Object(o["createElementVNode"])("label",Er,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.TIMEZONE"))+" ",1),Object(o["createVNode"])(ir,{input:Object(o["unref"])(r).timezone,disabled:Object(o["unref"])(a),onUpdateTimezone:u},null,8,["input","disabled"])]),Object(o["createElementVNode"])("label",br,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),Object(o["withDirectives"])(Object(o["createElementVNode"])("select",{id:"weekm","onUpdate:modelValue":t[1]||(t[1]=function(e){return Object(o["unref"])(r).weekm=e}),disabled:Object(o["unref"])(a)},[(Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(c,(function(t){return Object(o["createElementVNode"])("option",{value:t.value,key:t.value},Object(o["toDisplayString"])(e.$t("user.PROFILE.".concat(t.label))),9,Tr)})),64))],8,pr),[[o["vModelSelect"],Object(o["unref"])(r).weekm]])]),Object(o["createElementVNode"])("div",fr,[Object(o["createElementVNode"])("button",Ar,Object(o["toDisplayString"])(e.$t("buttons.SUBMIT")),1),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[2]||(t[2]=Object(o["withModifiers"])((function(t){return e.$router.push("/profile/preferences")}),["prevent"]))},Object(o["toDisplayString"])(e.$t("buttons.CANCEL")),1)])],40,ur)])])}}});const jr=Sr;var _r=jr,Nr=n("5502"),Rr=n("ade3"),gr=n("bc3a"),Ir=n.n(gr),vr=n("d257"),Ur=Ir.a.create({baseURL:Object(vr["a"])()});Ur.interceptors.request.use((function(e){var t=Mc.getters[S["a"].GETTERS.AUTH_TOKEN];if(t){var n="Bearer ".concat(t);e.headers&&e.headers.Authorization!==n&&(e.headers.Authorization="Bearer ".concat(t))}return e}),(function(e){return Promise.reject(e)}));var hr,kr,Dr,Cr,Pr,Mr,Lr,zr,yr,wr,Vr,Br,Gr,xr,Kr=Ur,Fr=Ir.a.create({baseURL:Object(vr["a"])()}),Wr=Fr,Hr=g.global.locale,$r=function(e){localStorage.removeItem("authToken"),e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["d"].MUTATIONS.EMPTY_USER_STATS),e.commit(S["a"].MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(S["e"].MUTATIONS.UPDATE_USERS,[]),e.commit(S["f"].MUTATIONS.EMPTY_WORKOUTS),e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),Vc.push("/login")},Yr=(hr={},Object(Rr["a"])(hr,S["a"].ACTIONS.CHECK_AUTH_USER,(function(e){window.localStorage.authToken&&!e.getters[S["a"].GETTERS.IS_AUTHENTICATED]&&(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE))})),Object(Rr["a"])(hr,S["a"].ACTIONS.GET_USER_PROFILE,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("auth/profile").then((function(t){"success"===t.data.status?(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&(e.commit(S["b"].MUTATIONS.UPDATE_LANG,t.data.data.language),Hr.value=t.data.data.language),e.dispatch(S["c"].ACTIONS.GET_SPORTS)):(Object(vr["b"])(e,null),$r(e))})).catch((function(t){Object(vr["b"])(e,t),$r(e)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.LOGIN_OR_REGISTER,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Wr.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(S["a"].MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE).then((function(){return Vc.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")}))}else Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.LOGOUT,(function(e){$r(e)})),Object(Rr["a"])(hr,S["a"].ACTIONS.UPDATE_USER_PROFILE,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),Kr.post("auth/profile/edit",t).then((function(t){"success"===t.data.status?(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),Vc.push("/profile")):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.UPDATE_USER_PREFERENCES,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),Kr.post("auth/profile/edit/preferences",t).then((function(t){"success"===t.data.status?(e.commit(S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(S["b"].MUTATIONS.UPDATE_LANG,t.data.data.language),Hr.value=t.data.data.language,Vc.push("/profile/preferences")):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.UPDATE_USER_PICTURE,(function(e,t){if(e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");var n=new FormData;n.append("file",t.picture),Kr.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){"success"===t.data.status?e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE).then((function(){return Vc.push("/profile")})):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.DELETE_ACCOUNT,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.delete("users/".concat(t.username)).then((function(t){204===t.status?e.dispatch(S["a"].ACTIONS.LOGOUT).then((function(){return Vc.push("/")})):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.DELETE_PICTURE,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!0),Kr.delete("auth/picture").then((function(t){204===t.status?e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE).then((function(){return Vc.push("/profile")})):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["a"].MUTATIONS.UPDATE_USER_LOADING,!1)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.SEND_PASSWORD_RESET_REQUEST,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Wr.post("auth/password/reset-request",t).then((function(t){"success"===t.data.status?Vc.push("/password-reset/sent"):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(hr,S["a"].ACTIONS.RESET_USER_PASSWORD,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Wr.post("auth/password/update",t).then((function(t){"success"===t.data.status?Vc.push("/password-reset/password-updated"):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),hr),qr=(kr={},Object(Rr["a"])(kr,S["a"].GETTERS.AUTH_TOKEN,(function(e){return e.authToken})),Object(Rr["a"])(kr,S["a"].GETTERS.AUTH_USER_PROFILE,(function(e){return e.authUserProfile})),Object(Rr["a"])(kr,S["a"].GETTERS.IS_AUTHENTICATED,(function(e){return null!==e.authToken})),Object(Rr["a"])(kr,S["a"].GETTERS.IS_ADMIN,(function(e){return e.authUserProfile&&e.authUserProfile.admin})),Object(Rr["a"])(kr,S["a"].GETTERS.USER_LOADING,(function(e){return e.loading})),kr),Xr=(Dr={},Object(Rr["a"])(Dr,S["a"].MUTATIONS.CLEAR_AUTH_USER_TOKEN,(function(e){e.authToken=null,e.authUserProfile={}})),Object(Rr["a"])(Dr,S["a"].MUTATIONS.UPDATE_AUTH_TOKEN,(function(e,t){e.authToken=t})),Object(Rr["a"])(Dr,S["a"].MUTATIONS.UPDATE_AUTH_USER_PROFILE,(function(e,t){e.authUserProfile=t})),Object(Rr["a"])(Dr,S["a"].MUTATIONS.UPDATE_USER_LOADING,(function(e,t){e.loading=t})),Dr),Zr={authToken:null,authUserProfile:{},loading:!1},Jr={state:Zr,actions:Yr,getters:qr,mutations:Xr},Qr=Jr,ec=(Cr={},Object(Rr["a"])(Cr,S["b"].ACTIONS.GET_APPLICATION_CONFIG,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_LOADING,!0),Kr.get("config").then((function(t){"success"===t.data.status?e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_LOADING,!1)}))})),Object(Rr["a"])(Cr,S["b"].ACTIONS.GET_APPLICATION_STATS,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("stats/all").then((function(t){"success"===t.data.status?e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(Cr,S["b"].ACTIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.patch("config",t).then((function(t){"success"===t.data.status?(e.commit(S["b"].MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),Vc.push("/admin/application")):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Cr),tc=(Pr={},Object(Rr["a"])(Pr,S["b"].GETTERS.APP_CONFIG,(function(e){return e.application.config})),Object(Rr["a"])(Pr,S["b"].GETTERS.APP_LOADING,(function(e){return e.appLoading})),Object(Rr["a"])(Pr,S["b"].GETTERS.APP_STATS,(function(e){return e.application.statistics})),Object(Rr["a"])(Pr,S["b"].GETTERS.ERROR_MESSAGES,(function(e){return e.errorMessages})),Object(Rr["a"])(Pr,S["b"].GETTERS.LANGUAGE,(function(e){return e.language})),Object(Rr["a"])(Pr,S["b"].GETTERS.LOCALE,(function(e){return e.locale})),Pr),nc=(Mr={},Object(Rr["a"])(Mr,S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES,(function(e){e.errorMessages=null})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.SET_ERROR_MESSAGES,(function(e,t){e.errorMessages=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_APPLICATION_CONFIG,(function(e,t){e.application.config=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_APPLICATION_LOADING,(function(e,t){e.appLoading=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_APPLICATION_STATS,(function(e,t){e.application.statistics=t})),Object(Rr["a"])(Mr,S["b"].MUTATIONS.UPDATE_LANG,(function(e,t){e.language=t,e.locale=I[t]})),Mr),rc={root:!0,language:"en",locale:_["a"],errorMessages:null,application:{},appLoading:!1},cc=(Lr={},Object(Rr["a"])(Lr,S["c"].ACTIONS.GET_SPORTS,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("sports").then((function(t){"success"===t.data.status?e.commit(S["c"].MUTATIONS.SET_SPORTS,t.data.data.sports):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Object(Rr["a"])(Lr,S["c"].ACTIONS.UPDATE_SPORTS,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.patch("sports/".concat(t.id),{is_active:t.isActive}).then((function(t){"success"===t.data.status?e.dispatch(S["c"].ACTIONS.GET_SPORTS):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))})),Lr),oc=Object(Rr["a"])({},S["c"].GETTERS.SPORTS,(function(e){return e.sports})),ac=Object(Rr["a"])({},S["c"].MUTATIONS.SET_SPORTS,(function(e,t){e.sports=t})),ic={sports:[]},sc={state:ic,actions:cc,getters:oc,mutations:ac},lc=sc,uc=(n("99af"),Object(Rr["a"])({},S["d"].ACTIONS.GET_USER_STATS,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("stats/".concat(t.username,"/").concat(t.filterType),{params:t.params}).then((function(t){"success"===t.data.status?e.commit(S["d"].MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))}))),Oc=Object(Rr["a"])({},S["d"].GETTERS.USER_STATS,(function(e){return e.statistics})),dc=(zr={},Object(Rr["a"])(zr,S["d"].MUTATIONS.UPDATE_USER_STATS,(function(e,t){e.statistics=t})),Object(Rr["a"])(zr,S["d"].MUTATIONS.EMPTY_USER_STATS,(function(e){e.statistics={}})),zr),mc={statistics:{}},Ec={state:mc,actions:uc,getters:Oc,mutations:dc},bc=Ec,pc=(yr={},Object(Rr["a"])(yr,S["e"].ACTIONS.EMPTY_USER,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USER,{})})),Object(Rr["a"])(yr,S["e"].ACTIONS.EMPTY_USERS,(function(e){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USERS,[]),e.commit(S["e"].MUTATIONS.UPDATE_USERS_PAGINATION,{})})),Object(Rr["a"])(yr,S["e"].ACTIONS.GET_USER,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!0),Kr.get("users/".concat(t)).then((function(t){"success"===t.data.status?e.commit(S["e"].MUTATIONS.UPDATE_USER,t.data.data.users[0]):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(Rr["a"])(yr,S["e"].ACTIONS.GET_USERS,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!0),Kr.get("users",{params:t}).then((function(t){"success"===t.data.status?(e.commit(S["e"].MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(S["e"].MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),Object(Rr["a"])(yr,S["e"].ACTIONS.UPDATE_USER,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.patch("users/".concat(t.username),{admin:t.admin}).then((function(t){"success"===t.data.status?e.commit(S["e"].MUTATIONS.UPDATE_USER_IN_USERS,t.data.data.users[0]):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["e"].MUTATIONS.UPDATE_USERS_LOADING,!1)}))})),yr),Tc=(wr={},Object(Rr["a"])(wr,S["e"].GETTERS.USER,(function(e){return e.user})),Object(Rr["a"])(wr,S["e"].GETTERS.USERS,(function(e){return e.users})),Object(Rr["a"])(wr,S["e"].GETTERS.USERS_LOADING,(function(e){return e.loading})),Object(Rr["a"])(wr,S["e"].GETTERS.USERS_PAGINATION,(function(e){return e.pagination})),wr),fc=(Vr={},Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USER,(function(e,t){e.user=t})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USER_IN_USERS,(function(e,t){e.users=e.users.map((function(e){return e.username===t.username?t:e}))})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USERS,(function(e,t){e.users=t})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USERS_LOADING,(function(e,t){e.loading=t})),Object(Rr["a"])(Vr,S["e"].MUTATIONS.UPDATE_USERS_PAGINATION,(function(e,t){e.pagination=t})),Vr),Ac={user:{},users:[],loading:!1,pagination:{}},Sc={state:Ac,actions:pc,getters:Tc,mutations:fc},jc=Sc,_c=n("4870"),Nc=function(e,t,n){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),Kr.get("workouts",{params:t}).then((function(t){"success"===t.data.status?(e.commit(S["f"].MUTATIONS[n],t.data.data.workouts),n===_c["c"]["SET_USER_WORKOUTS"]&&e.commit(S["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):Object(vr["b"])(e,null)})).catch((function(t){return Object(vr["b"])(e,t)}))},Rc=(Br={},Object(Rr["a"])(Br,S["f"].ACTIONS.GET_CALENDAR_WORKOUTS,(function(e,t){e.commit(S["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Nc(e,t,_c["c"]["SET_CALENDAR_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_USER_WORKOUTS,(function(e,t){Nc(e,t,_c["c"]["SET_USER_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_TIMELINE_WORKOUTS,(function(e,t){Nc(e,t,_c["c"]["SET_TIMELINE_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_MORE_TIMELINE_WORKOUTS,(function(e,t){Nc(e,t,_c["c"]["ADD_TIMELINE_WORKOUTS"])})),Object(Rr["a"])(Br,S["f"].ACTIONS.GET_WORKOUT_DATA,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0);var n=t.segmentId?"/segment/".concat(t.segmentId):"";Kr.get("workouts/".concat(t.workoutId)).then((function(r){var c=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===c.segments.length||!c.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(S["f"].MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(Kr.get("workouts/".concat(t.workoutId,"/chart_data").concat(n)).then((function(t){"success"===t.data.status&&e.commit(S["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),Kr.get("workouts/".concat(t.workoutId,"/gpx").concat(n)).then((function(t){"success"===t.data.status&&e.commit(S["f"].MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),Object(vr["b"])(e,null)})).catch((function(t){e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.DELETE_WORKOUT,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),Kr.delete("workouts/".concat(t.workoutId)).then((function(){e.commit(S["f"].MUTATIONS.EMPTY_WORKOUT),e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE),Vc.push("/")})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.EDIT_WORKOUT,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),Kr.patch("workouts/".concat(t.workoutId),t.data).then((function(){e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE),e.dispatch(S["f"].ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((function(){Vc.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.ADD_WORKOUT,(function(e,t){if(e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["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,'"}')),Kr.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((function(t){if("created"===t.data.status){e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];Vc.push(1===t.data.data.workouts.length?"/workouts/".concat(n.id):"/")}})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Object(Rr["a"])(Br,S["f"].ACTIONS.ADD_WORKOUT_WITHOUT_GPX,(function(e,t){e.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!0),Kr.post("workouts/no_gpx",t).then((function(t){if("created"===t.data.status){e.dispatch(S["a"].ACTIONS.GET_USER_PROFILE);var n=t.data.data.workouts[0];Vc.push("/workouts/".concat(n.id))}})).catch((function(t){Object(vr["b"])(e,t)})).finally((function(){return e.commit(S["f"].MUTATIONS.SET_WORKOUT_LOADING,!1)}))})),Br),gc=(Gr={},Object(Rr["a"])(Gr,S["f"].GETTERS.CALENDAR_WORKOUTS,(function(e){return e.calendar_workouts})),Object(Rr["a"])(Gr,S["f"].GETTERS.TIMELINE_WORKOUTS,(function(e){return e.timeline_workouts})),Object(Rr["a"])(Gr,S["f"].GETTERS.USER_WORKOUTS,(function(e){return e.user_workouts})),Object(Rr["a"])(Gr,S["f"].GETTERS.WORKOUT_DATA,(function(e){return e.workoutData})),Object(Rr["a"])(Gr,S["f"].GETTERS.WORKOUTS_PAGINATION,(function(e){return e.pagination})),Gr),Ic=(xr={},Object(Rr["a"])(xr,S["f"].MUTATIONS.ADD_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=e.timeline_workouts.concat(t)})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_CALENDAR_WORKOUTS,(function(e,t){e.calendar_workouts=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_TIMELINE_WORKOUTS,(function(e,t){e.timeline_workouts=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_USER_WORKOUTS,(function(e,t){e.user_workouts=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUTS_PAGINATION,(function(e,t){e.pagination=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT,(function(e,t){e.workoutData.workout=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT_CHART_DATA,(function(e,t){e.workoutData.chartData=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT_GPX,(function(e,t){e.workoutData.gpx=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.SET_WORKOUT_LOADING,(function(e,t){e.workoutData.loading=t})),Object(Rr["a"])(xr,S["f"].MUTATIONS.EMPTY_CALENDAR_WORKOUTS,(function(e){e.calendar_workouts=[]})),Object(Rr["a"])(xr,S["f"].MUTATIONS.EMPTY_WORKOUTS,(function(e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]})),Object(Rr["a"])(xr,S["f"].MUTATIONS.EMPTY_WORKOUT,(function(e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}})),xr),vc={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},Uc={state:vc,actions:Rc,getters:gc,mutations:Ic},hc=Uc,kc={authUserModule:Qr,sportsModule:lc,statsModule:bc,usersModule:jc,workoutsModule:hc},Dc={state:rc,actions:ec,getters:tc,mutations:nc,modules:kc},Cc=Dc,Pc=Object(Nr["a"])(Cc),Mc=Pc,Lc=function(e){var t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},zc=[{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:an,props:function(e){return{tab:Lc(e.path)}},children:[{path:"",name:"UserInfos",component:sn["a"]},{path:"preferences",name:"UserPreferences",component:mn}]},{path:"edit",name:"UserProfileEdition",component:Tn,props:function(e){return{tab:Lc(e.path)}},children:[{path:"",name:"UserInfosEdition",component:xn},{path:"picture",name:"UserPictureEdition",component:er},{path:"preferences",name:"UserPreferencesEdition",component:_r}]}]},{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:Je},{path:"application",name:"ApplicationAdministration",component:Ce},{path:"application/edit",name:"ApplicationAdministrationEdition",component:Ce,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:_t},{path:"users",name:"UsersAdministration",component:Yt}]},{path:"/:pathMatch(.*)*",name:"not-found",component:function(){return Promise.all([n.e("main~workouts"),n.e("main")]).then(n.bind(null,"e19f"))}}],yc=Object(ue["a"])({history:Object(ue["b"])("/"),routes:zc}),wc=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register"];yc.beforeEach((function(e,t,n){Mc.dispatch(S["a"].ACTIONS.CHECK_AUTH_USER).then((function(){if(Mc.getters[S["a"].GETTERS.IS_AUTHENTICATED]&&wc.includes(e.path))return n("/");if(Mc.getters[S["a"].GETTERS.IS_AUTHENTICATED]||wc.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 Vc=yc,Bc={class:"alert-message"},Gc=["innerHTML"],xc=Object(o["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.message;return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Bc,[Object(o["createElementVNode"])("div",{innerHTML:e.$t(Object(o["unref"])(r))},null,8,Gc)])}}});n("b9a4");const Kc=b()(xc,[["__scopeId","data-v-1c7b89ce"]]);var Fc=Kc,Wc={class:"custom-textarea"},Hc=["id","name","maxLenght","disabled"],$c={class:"remaining-chars"},Yc=Object(o["defineComponent"])({props:{name:null,charLimit:{default:500},disabled:{default:!1},input:{default:""}},emits:["updateValue"],setup:function(e,t){var n=t.emit,r=e,c=Object(o["ref"])("");function a(e){n("updateValue",e.target.value)}return Object(o["watch"])((function(){return r.input}),(function(e){c.value=e})),function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Wc,[Object(o["withDirectives"])(Object(o["createElementVNode"])("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=function(e){return Object(o["isRef"])(c)?c.value=e:c=e}),onInput:a},null,40,Hc),[[o["vModelText"],Object(o["unref"])(c)]]),Object(o["createElementVNode"])("div",$c,Object(o["toDisplayString"])(t.$t("workouts.REMAINING_CHARS"))+": "+Object(o["toDisplayString"])(Object(o["unref"])(c).length)+"/"+Object(o["toDisplayString"])(e.charLimit),1)])}}});n("f41d");const qc=b()(Yc,[["__scopeId","data-v-129e44c0"]]);var Xc=qc,Zc={class:"dropdown-wrapper"},Jc={key:0,class:"dropdown-list"},Qc=["onClick"],eo=Object(o["defineComponent"])({props:{options:null,selected:null},emits:{selected:function(e){return e}},setup:function(e,t){var n=t.emit,r=e,c=Object(ue["c"])(),a=Object(o["ref"])(!1),i=r.options.map((function(e){return e}));function s(){a.value=!a.value}function l(e){n("selected",e),a.value=!1}return Object(o["watch"])((function(){return c.path}),(function(){return a.value=!1})),function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Zc,[Object(o["createElementVNode"])("div",{class:"dropdown-selected",onClick:s},[Object(o["renderSlot"])(t.$slots,"default")]),Object(o["unref"])(a)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("ul",Jc,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(i),(function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("li",{class:Object(o["normalizeClass"])(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:function(e){return l(t)}},Object(o["toDisplayString"])(t.label),11,Qc)})),128))])):Object(o["createCommentVNode"])("",!0)])}}});n("55a6");const to=b()(eo,[["__scopeId","data-v-ca61364c"]]);var no=to,ro={class:"error-message"},co={key:0},oo={key:1},ao=Object(o["defineComponent"])({props:{message:null},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.message;return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ro,[Array.isArray(Object(o["unref"])(r))?(Object(o["openBlock"])(),Object(o["createElementBlock"])("ul",co,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(r),(function(t,n){return Object(o["openBlock"])(),Object(o["createElementBlock"])("li",{key:n},Object(o["toDisplayString"])(e.$t(t)),1)})),128))])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",oo,Object(o["toDisplayString"])(e.$t(Object(o["unref"])(r))),1))])}}});n("cf98");const io=b()(ao,[["__scopeId","data-v-4366d0e7"]]);var so=io,lo={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"},uo=Object(o["createElementVNode"])("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Oo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),Object(o["createElementVNode"])("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),mo=[uo,Oo];function Eo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",lo,mo)}var bo={name:"CyclingSport"};const po=b()(bo,[["render",Eo]]);var To=po,fo={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"},Ao=Object(o["createElementVNode"])("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),So=Object(o["createElementVNode"])("g",{id:"g147"},[Object(o["createElementVNode"])("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),Object(o["createElementVNode"])("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),jo=[Ao,So];function _o(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",fo,jo)}var No={name:"CyclingTransport"};const Ro=b()(No,[["render",_o]]);var go=Ro,Io={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"},vo=Object(o["createElementVNode"])("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Uo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),Object(o["createElementVNode"])("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),ho=[vo,Uo];function ko(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Io,ho)}var Do={name:"Hiking"};const Co=b()(Do,[["render",ko]]);var Po=Co,Mo={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"},Lo=Object(o["createElementVNode"])("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),zo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),Object(o["createElementVNode"])("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),Object(o["createElementVNode"])("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),yo=[Lo,zo];function wo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Mo,yo)}var Vo={name:"MountainBiking"};const Bo=b()(Vo,[["render",wo]]);var Go=Bo,xo={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},Ko=Object(o["createStaticVNode"])(' silhouette of a person riding an electric mountain bike ',18),Fo=[Ko];function Wo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",xo,Fo)}var Ho={name:"MountainBikingElectric"};const $o=b()(Ho,[["render",Wo]]);var Yo=$o,qo={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 534.51 534.51",style:{"enable-background":"new 0 0 534.51 534.51"},"xml:space":"preserve"},Xo=Object(o["createElementVNode"])("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),Zo=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),Object(o["createElementVNode"])("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Jo=[Xo,Zo];function Qo(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",qo,Jo)}var ea={name:"Rowing"};const ta=b()(ea,[["render",Qo]]);var na=ta,ra={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"},ca=Object(o["createElementVNode"])("desc",{id:"runningDescription"},"silhouette of a running person",-1),oa=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),Object(o["createElementVNode"])("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),aa=[ca,oa];function ia(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",ra,aa)}var sa={name:"Running"};const la=b()(sa,[["render",ia]]);var ua=la,Oa={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},da=Object(o["createElementVNode"])("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),ma=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),Object(o["createElementVNode"])("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),Ea=[da,ma];function ba(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Oa,Ea)}var pa={name:"SkiingAlpine"};const Ta=b()(pa,[["render",ba]]);var fa=Ta,Aa={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},Sa=Object(o["createElementVNode"])("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),ja=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),_a=[Sa,ja];function Na(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",Aa,_a)}var Ra={name:"SkiingCrossCountry"};const ga=b()(Ra,[["render",Na]]);var Ia=ga,va={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Ua=Object(o["createElementVNode"])("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),ha=Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("g",null,[Object(o["createElementVNode"])("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),Object(o["createElementVNode"])("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),ka=[Ua,ha];function Da(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",va,ka)}var Ca={name:"Trail"};const Pa=b()(Ca,[["render",Da]]);var Ma=Pa,La={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"},za=Object(o["createStaticVNode"])('silhouette of a walking person',3),ya=[za];function wa(e,t,n,r,c,a){return Object(o["openBlock"])(),Object(o["createElementBlock"])("svg",La,ya)}var Va={name:"Walking"};const Ba=b()(Va,[["render",wa]]);var Ga=Ba,xa=["title"],Ka=Object(o["defineComponent"])({props:{sportLabel:null,title:{default:""}},setup:function(e){var t=e,n=Object(o["toRefs"])(t),r=n.sportLabel,c=n.title,a=Object(o["inject"])("sportColors");return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"sport-img",style:Object(o["normalizeStyle"])({fill:Object(o["unref"])(a)[Object(o["unref"])(r)]}),title:Object(o["unref"])(c)?Object(o["unref"])(c):e.$t("sports.".concat(Object(o["unref"])(r),".LABEL"))},["Cycling (Sport)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(To,{key:0})):Object(o["createCommentVNode"])("",!0),"Cycling (Transport)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(go,{key:1})):Object(o["createCommentVNode"])("",!0),"Hiking"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Po,{key:2})):Object(o["createCommentVNode"])("",!0),"Mountain Biking"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Go,{key:3})):Object(o["createCommentVNode"])("",!0),"Mountain Biking (Electric)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Yo,{key:4})):Object(o["createCommentVNode"])("",!0),"Rowing"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(na,{key:5})):Object(o["createCommentVNode"])("",!0),"Running"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(ua,{key:6})):Object(o["createCommentVNode"])("",!0),"Skiing (Alpine)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(fa,{key:7})):Object(o["createCommentVNode"])("",!0),"Skiing (Cross Country)"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Ia,{key:8})):Object(o["createCommentVNode"])("",!0),"Trail"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Ma,{key:9})):Object(o["createCommentVNode"])("",!0),"Walking"===Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(Ga,{key:10})):Object(o["createCommentVNode"])("",!0)],12,xa)}}});const Fa=Ka;var Wa=Fa,Ha={class:"loader"};function $a(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Ha)}n("922d");const Ya={},qa=b()(Ya,[["render",$a],["__scopeId","data-v-436637e0"]]);var Xa=qa,Za={id:"modal"},Ja={class:"custom-modal"},Qa={key:0,class:"modal-message"},ei={key:1,class:"modal-message"},ti={class:"modal-buttons"},ni=Object(o["defineComponent"])({props:{title:null,message:null,strongMessage:{default:function(){return null}}},emits:["cancelAction","confirmAction"],setup:function(e,t){var n=t.emit,r=e,c=Object(j["a"])(),a=Object(o["toRefs"])(r),i=a.title,s=a.message,l=a.strongMessage,u=Object(o["computed"])((function(){return c.getters[S["b"].GETTERS.ERROR_MESSAGES]}));return Object(o["onUnmounted"])((function(){return c.commit(S["b"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),function(e,t){var r=Object(o["resolveComponent"])("i18n-t"),c=Object(o["resolveComponent"])("ErrorMessage"),a=Object(o["resolveComponent"])("Card");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Za,[Object(o["createElementVNode"])("div",Ja,[Object(o["createVNode"])(a,null,{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["unref"])(i)),1)]})),content:Object(o["withCtx"])((function(){return[Object(o["unref"])(l)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Qa,[Object(o["createVNode"])(r,{keypath:Object(o["unref"])(s)},{default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(Object(o["unref"])(l)),1)]})),_:1},8,["keypath"])])):(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ei,Object(o["toDisplayString"])(Object(o["unref"])(s)),1)),Object(o["unref"])(u)?(Object(o["openBlock"])(),Object(o["createBlock"])(c,{key:2,message:Object(o["unref"])(u)},null,8,["message"])):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("div",ti,[Object(o["unref"])(u)?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])("button",{key:0,class:"confirm",onClick:t[0]||(t[0]=function(e){return n("confirmAction")})},Object(o["toDisplayString"])(e.$t("buttons.YES")),1)),Object(o["createElementVNode"])("button",{class:"cancel",onClick:t[1]||(t[1]=function(e){return n("cancelAction")})},Object(o["toDisplayString"])(e.$t("buttons.".concat(Object(o["unref"])(u)?"CANCEL":"NO"))),1)])]})),_:1})])])}}});n("7489");const ri=b()(ni,[["__scopeId","data-v-20a846ac"]]);var ci=ri,oi=[{target:Fc,name:"AlertMessage"},{target:Fe,name:"Card"},{target:Xc,name:"CustomTextArea"},{target:no,name:"Dropdown"},{target:so,name:"ErrorMessage"},{target:Xa,name:"Loader"},{target:ci,name:"Modal"},{target:Wa,name:"SportImage"}],ai={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"],c["a"]);var ii=Object(o["createApp"])(le).provide("sportColors",Qe["b"]).use(g).use(Mc).use(Vc).directive("click-outside",ai);oi.forEach((function(e){ii.component(e.name,e.target)})),ii.mount("#app")},cf98:function(e,t,n){"use strict";n("c7cd")},d257:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return o}));n("caad"),n("2532"),n("d81d"),n("4de4"),n("d3b7"),n("ac1f"),n("1276");var r=n("dad5"),c=function(){return"/api/"},o=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"UNKNOWN",c=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(r["b"].MUTATIONS.SET_ERROR_MESSAGES,c.includes("\n")?c.split("\n").filter((function(e){return""!==e})).map((function(e){return"api.ERROR.".concat(e)})):"api.ERROR.".concat(c))}},d2bc:function(e,t,n){},d508:function(e,t,n){},d9b8:function(e,t,n){},dad5:function(e,t,n){"use strict";var r,c,o,a,i,s,l,u,O,d,m,E,b,p,T;n.d(t,"b",(function(){return A})),n.d(t,"c",(function(){return S})),n.d(t,"d",(function(){return j})),n.d(t,"a",(function(){return _})),n.d(t,"e",(function(){return N})),n.d(t,"f",(function(){return R})),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["USER_LOADING"]="USER_LOADING"}(c||(c={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(a||(a={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(i||(i={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(s||(s={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(l||(l={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(O||(O={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(d||(d={})),function(e){e["USER_STATS"]="USER_STATS"}(m||(m={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(E||(E={})),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"}(p||(p={})),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"}(T||(T={}));var f=n("4870"),A={ACTIONS:a,GETTERS:i,MUTATIONS:s},S={ACTIONS:l,GETTERS:u,MUTATIONS:O},j={ACTIONS:d,GETTERS:m,MUTATIONS:E},_={ACTIONS:r,GETTERS:c,MUTATIONS:o},N={ACTIONS:b,GETTERS:p,MUTATIONS:T},R={ACTIONS:f["a"],GETTERS:f["b"],MUTATIONS:f["c"]}},dbef:function(e,t,n){},dbf1:function(e,t,n){},dfd6:function(e,t,n){"use strict";n("2679")},e3305:function(e,t,n){},e456:function(e,t,n){"use strict";n("e7f1")},e591:function(e,t,n){"use strict";n("f977")},e669:function(e,t,n){"use strict";n("b0e9")},e7b6:function(e,t,n){var r={"./en/en.ts":"c142","./fr/fr.ts":"663e"};function c(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}c.keys=function(){return Object.keys(r)},c.resolve=o,e.exports=c,c.id="e7b6"},e7f1:function(e,t,n){},e9c9:function(e,t,n){},ecd3:function(e,t,n){},ef54:function(e,t,n){},f41d:function(e,t,n){"use strict";n("a0eb")},f977:function(e,t,n){}}); +//# sourceMappingURL=app.cb19dec0.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.cb19dec0.js.map b/fittrackee/dist/static/js/app.cb19dec0.js.map new file mode 100644 index 00000000..bdf678e5 --- /dev/null +++ b/fittrackee/dist/static/js/app.cb19dec0.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Common/StatCard.vue","webpack:///./src/components/Common/StatCard.vue?7652","webpack:///./src/components/Administration/AdminMenu.vue?95c1","webpack:///./src/components/Common/StatCard.vue?785a","webpack:///./src/utils/sports.ts","webpack:///./src/App.vue?5d1b","webpack:///./src/use/useStore.ts","webpack:///./src/components/Common/Pagination.vue?42b0","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?24df","webpack:///./src/components/Footer.vue?1c0e","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?3ebe","webpack:///./src/store/modules/workouts/enums.ts","webpack:///./src/components/Common/Dropdown.vue?9d33","webpack:///./src/utils/dates.ts","webpack:///./src/components/Administration/AdminApplication.vue?1c1a","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?573e","webpack:///./src/components/Administration/AdminUsers.vue?82aa","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?9546","webpack:///./src/components/Common/Modal.vue?2baf","webpack:///./src/components/Common/Card.vue?ee24","webpack:///./src/components/User/ProfileDisplay/index.vue?0f0b","webpack:///./src/components/Common/FilterSelects.vue","webpack:///./src/components/Common/FilterSelects.vue?2f0a","webpack:///./src/components/Common/Loader.vue?458e","webpack:///./src/components/Common/FilterSelects.vue?bcc8","webpack:///./src/utils/api.ts","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?2f25","webpack:///./src/components/User/ProfileDisplay/UserInfos.vue?7ccd","webpack:///./src/components/User/UserPicture.vue?3c5d","webpack:///./src/components/Common/AlertMessage.vue?cde4","webpack:///./src/components/NoConfig.vue?d170","webpack:///./src/components/NavBar.vue?6217","webpack:///./src/components/User/UserProfileTabs.vue?97d8","webpack:///./src/locales/en/administration.json","webpack:///./src/locales/en/api.json","webpack:///./src/locales/en/buttons.json","webpack:///./src/locales/en/common.json","webpack:///./src/locales/en/dashboard.json","webpack:///./src/locales/en/error.json","webpack:///./src/locales/en/sports.json","webpack:///./src/locales/en/statistics.json","webpack:///./src/locales/en/user.json","webpack:///./src/locales/en/workouts.json","webpack:///./src/locales/en/en.ts","webpack:///./src/utils/files.ts","webpack:///./src/components/User/UserPicture.vue","webpack:///./src/components/User/UserPicture.vue?dc88","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?1e3d","webpack:///./src/registerServiceWorker.ts","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?14b8","webpack:///./src/i18n.ts","webpack:///./src/utils/locales.ts","webpack:///./src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?5ec4","webpack:///./src/components/NoConfig.vue","webpack:///./src/components/NoConfig.vue?0078","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/components/Administration/AdminApplication.vue","webpack:///./src/components/Administration/AdminApplication.vue?9c66","webpack:///./src/components/Administration/AppStatsCards.vue","webpack:///./src/components/Administration/AppStatsCards.vue?5d3b","webpack:///./src/components/Common/Card.vue","webpack:///./src/components/Common/Card.vue?ecbc","webpack:///./src/components/Administration/AdminMenu.vue","webpack:///./src/components/Administration/AdminMenu.vue?572b","webpack:///./src/components/Administration/AdminSports.vue","webpack:///./src/components/Administration/AdminSports.vue?8d91","webpack:///./src/components/Administration/AdminUsers.vue","webpack:///./src/components/Administration/AdminUsers.vue?9006","webpack:///./src/components/User/UserProfileTabs.vue","webpack:///./src/components/User/UserProfileTabs.vue?68f5","webpack:///./src/components/User/ProfileDisplay/index.vue","webpack:///./src/components/User/ProfileDisplay/index.vue?d237","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue","webpack:///./src/components/User/ProfileDisplay/UserPreferences.vue?e51f","webpack:///./src/components/User/ProfileEdition/index.vue","webpack:///./src/components/User/ProfileEdition/index.vue?27de","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack:///./src/components/User/ProfileEdition/UserInfosEdition.vue?a314","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPictureEdition.vue?6a32","webpack:///./src/utils/timezone.ts","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?2dc4","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack:///./src/components/User/ProfileEdition/UserPreferencesEdition.vue?a05c","webpack:///./src/api/authApi.ts","webpack:///./src/api/defaultApi.ts","webpack:///./src/store/modules/authUser/actions.ts","webpack:///./src/store/modules/authUser/getters.ts","webpack:///./src/store/modules/authUser/mutations.ts","webpack:///./src/store/modules/authUser/state.ts","webpack:///./src/store/modules/authUser/index.ts","webpack:///./src/store/modules/root/actions.ts","webpack:///./src/store/modules/root/getters.ts","webpack:///./src/store/modules/root/mutations.ts","webpack:///./src/store/modules/root/state.ts","webpack:///./src/store/modules/sports/actions.ts","webpack:///./src/store/modules/sports/getters.ts","webpack:///./src/store/modules/sports/mutations.ts","webpack:///./src/store/modules/sports/state.ts","webpack:///./src/store/modules/sports/index.ts","webpack:///./src/store/modules/statistics/actions.ts","webpack:///./src/store/modules/statistics/getters.ts","webpack:///./src/store/modules/statistics/mutations.ts","webpack:///./src/store/modules/statistics/state.ts","webpack:///./src/store/modules/statistics/index.ts","webpack:///./src/store/modules/users/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?7dca","webpack:///./src/components/Common/CustomTextArea.vue","webpack:///./src/components/Common/CustomTextArea.vue?933e","webpack:///./src/components/Common/Dropdown.vue","webpack:///./src/components/Common/Dropdown.vue?56da","webpack:///./src/components/Common/ErrorMessage.vue","webpack:///./src/components/Common/ErrorMessage.vue?31ca","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingSport.vue?1dcc","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack:///./src/components/Common/Images/SportImage/CyclingTransport.vue?667c","webpack:///./src/components/Common/Images/SportImage/Hiking.vue","webpack:///./src/components/Common/Images/SportImage/Hiking.vue?75de","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue","webpack:///./src/components/Common/Images/SportImage/MountainBiking.vue?9b14","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue","webpack:///./src/components/Common/Images/SportImage/MountainBikingElectric.vue?adb2","webpack:///./src/components/Common/Images/SportImage/Rowing.vue","webpack:///./src/components/Common/Images/SportImage/Rowing.vue?a825","webpack:///./src/components/Common/Images/SportImage/Running.vue","webpack:///./src/components/Common/Images/SportImage/Running.vue?275d","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue","webpack:///./src/components/Common/Images/SportImage/SkiingAlpine.vue?8028","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue","webpack:///./src/components/Common/Images/SportImage/SkiingCrossCountry.vue?a0cc","webpack:///./src/components/Common/Images/SportImage/Trail.vue","webpack:///./src/components/Common/Images/SportImage/Trail.vue?43e1","webpack:///./src/components/Common/Images/SportImage/Walking.vue","webpack:///./src/components/Common/Images/SportImage/Walking.vue?ecc5","webpack:///./src/components/Common/Images/SportImage/index.vue","webpack:///./src/components/Common/Images/SportImage/index.vue?1dbe","webpack:///./src/components/Common/Loader.vue","webpack:///./src/components/Common/Loader.vue?bdb0","webpack:///./src/components/Common/Modal.vue","webpack:///./src/components/Common/Modal.vue?1686","webpack:///./src/custom-components.ts","webpack:///./src/directives.ts","webpack:///./src/main.ts","webpack:///./src/components/Common/ErrorMessage.vue?172e","webpack:///./src/utils/index.ts","webpack:///./src/store/modules/authUser/enums.ts","webpack:///./src/store/modules/root/enums.ts","webpack:///./src/store/modules/sports/enums.ts","webpack:///./src/store/modules/statistics/enums.ts","webpack:///./src/store/modules/users/enums.ts","webpack:///./src/store/constants.ts","webpack:///./src/components/User/ProfileEdition/TimezoneDropdown.vue?25ee","webpack:///./src/components/User/ProfileDisplay/UserHeader.vue?ecda","webpack:///./src/components/Administration/AppStatsCards.vue?6843","webpack:///./src/components/Administration/AdminSports.vue?dcaf","webpack:///./src/locales sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack:///./src/components/Common/CustomTextArea.vue?7df9"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","props","icon","text","setup","__props","_ctx","_cache","__exports__","sportColors","Hiking","Rowing","Running","Trail","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","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","user","UserPicture","username","nb_workouts","$t","Number","total_distance","toFixed","nb_sports","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","getStartDate","duration","day","weekStartingMonday","weekStartsOn","incrementDate","getDateWithTZ","dateInUTC","tz","Date","getCalendarStartAndEnd","date","monthStart","monthEnd","start","end","formatWorkoutDate","dateTime","dateFormat","timeFormat","workout_date","workout_time","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","admin","api","buttons","common","dashboard","statistics","workouts","pagination","path","query","getQuery","page","cursor","newQuery","assign","_component_router_link","disabled","has_prev","to","default","_","pages","active","has_next","fromAdmin","store","authUser","getters","GETTERS","AUTH_USER_PROFILE","registrationDate","created_at","format","birthDate","birth_date","displayModal","updateDisplayModal","deleteUserAccount","dispatch","ACTIONS","DELETE_ACCOUNT","_component_Modal","title","strongMessage","onConfirmAction","$event","onCancelAction","first_name","last_name","location","bio","onClick","$router","go","order_by","emits","emit","perPage","onSelectUpdate","onChange","order","toUpperCase","per_page","nb","sortList","defaultPage","defaultPerPage","getNumberQueryValue","queryValue","defaultValue","getStringQueryValue","availableValues","includes","locationQuery","orderByList","defaultOrderBy","options","queryOptions","defaultSort","workoutsPayloadKeys","getRange","stop","Array","from","rangePagination","currentPage","concat","suffixes","getReadableFileSize","fileSize","asText","Math","floor","log","size","suffix","pow","getFileSizeInMB","authUserPictureUrl","picture","alt","ready","registered","cached","updatefound","updated","offline","version","loadLocaleMessages","locales","messages","keys","forEach","matched","match","locale","legacy","fallbackLocale","globalInjection","localeFromLanguage","en","fr","languageLabels","availableLocales","global","availableLanguages","isAuthenticated","IS_AUTHENTICATED","language","LANGUAGE","isMenuOpen","openMenu","closeMenu","updateLanguage","option","toString","commit","MUTATIONS","UPDATE_LANG","logout","LOGOUT","_component_Dropdown","selected","onSelected","render","appConfig","APP_CONFIG","appLoading","APP_LOADING","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","innerHeight","bottom","scroll","onscroll","querySelector","scrollToTop","scrollTo","behavior","GET_APPLICATION_CONFIG","_component_Loader","_component_router_view","NavBar","onMenuInteraction","NoConfig","Footer","for","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","edition","router","appData","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","errorMessages","ERROR_MESSAGES","updateForm","onCancel","EMPTY_ERROR_MESSAGES","onSubmit","formData","UPDATE_APPLICATION_CONFIG","_component_ErrorMessage","_component_Card","content","min","step","appStatistics","uploadDirSize","uploads_dir_size","usersCount","users","sportsCount","workoutCount","StatCard","Card","AppStatsCards","is_registration_enabled","_hoisted_18","_hoisted_19","translatedSports","SPORTS","updateSportStatus","isActive","UPDATE_SPORTS","_component_SportImage","danger","has_workouts","route","USERS","USERS_PAGINATION","loadUsers","queryParams","GET_USERS","updateUser","UPDATE_USER","reloadUsers","queryParam","EMPTY_USERS","FilterSelects","onUpdateSelect","email","timezone","Pagination","tabs","selectedTab","getPath","tab","checked","onInput","UserHeader","UserProfileTabs","fistDayOfWeek","weekm","loading","USER_LOADING","_hoisted_20","_hoisted_21","_hoisted_22","userForm","password","password_conf","updateUserForm","updateBio","updateProfile","UPDATE_USER_PROFILE","deleteAccount","_component_CustomTextArea","charLimit","input","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","DELETE_PICTURE","updatePictureFile","files","updateUserPicture","UPDATE_USER_PICTURE","accept","timeZones","isOpen","tzList","focusItemIndex","matchTimezone","onMouseOver","index","onUpdateTimezone","onEnter","preventDefault","firstElementChild","innerHTML","openDropdown","trim","required","onKeydown","ref","_value","_refs","focus","onMouseover","autofocus","weekStart","UPDATE_USER_PREFERENCES","updateTZ","lang","TimezoneDropdown","authApi","baseURL","interceptors","use","config","authToken","AUTH_TOKEN","auth","headers","Authorization","context","localStorage","removeItem","EMPTY_USER_STATS","CLEAR_AUTH_USER_TOKEN","UPDATE_USERS","EMPTY_WORKOUTS","EMPTY_WORKOUT","actions","CHECK_AUTH_USER","UPDATE_AUTH_TOKEN","GET_USER_PROFILE","res","status","UPDATE_AUTH_USER_PROFILE","GET_SPORTS","catch","LOGIN_OR_REGISTER","post","actionType","token","auth_token","setItem","redirectUrl","payload","UPDATE_USER_LOADING","finally","form","FormData","append","delete","SEND_PASSWORD_RESET_REQUEST","RESET_USER_PASSWORD","state","authUserProfile","IS_ADMIN","mutations","authUserState","UPDATE_APPLICATION_LOADING","GET_APPLICATION_STATS","UPDATE_APPLICATION_STATS","patch","application","APP_STATS","LOCALE","SET_ERROR_MESSAGES","root","SET_SPORTS","sportsState","GET_USER_STATS","filterType","params","UPDATE_USER_STATS","USER_STATS","statisticsState","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","segments","SET_WORKOUT","with_gpx","SET_WORKOUT_CHART_DATA","chart_data","SET_WORKOUT_GPX","gpx","DELETE_WORKOUT","EDIT_WORKOUT","ADD_WORKOUT","file","notes","ADD_WORKOUT_WITHOUT_GPX","CALENDAR_WORKOUTS","calendar_workouts","TIMELINE_WORKOUTS","timeline_workouts","USER_WORKOUTS","user_workouts","WORKOUT_DATA","workoutData","WORKOUTS_PAGINATION","ADD_TIMELINE_WORKOUTS","SET_CALENDAR_WORKOUTS","SET_TIMELINE_WORKOUTS","SET_USER_WORKOUTS","chartData","workoutsState","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","getTabFromPath","regex","replace","routes","component","action","children","UserInfos","UserPreferences","ProfileEdition","UserInfosEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","AdminUsers","history","pathsWithoutAuthentication","beforeEach","next","fullPath","updateText","maxLenght","dropdownOptions","toggleDropdown","updateSelected","$slots","isArray","subMessage","xmlns","xmlns:xlink","x","y","viewBox","style","xml:space","xmlns:svg","cx","cy","sportLabel","fill","CyclingSport","CyclingTransport","MountainBiking","MountainBikingElectric","SkiingAlpine","SkiingCrossCountry","_component_i18n_t","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","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ROOT_STORE","SPORTS_STORE","STATS_STORE","AUTH_USER_STORE","USERS_STORE","WORKOUTS_STORE","webpackContext","req","webpackContextResolve"],"mappings":"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A,8BACA,8BACA,iBACA,eACA,sBACA,iBACA,kBACA,iBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,mBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,cACA,aACA,cACA,aACA,cACA,gBACA,cACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,aACA,eACA,gBACA,cACA,eACA,oBACA,mBACA,YACA,YACA,iBACA,iBACA,aACA,gBACA,iBACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,aACA,mBACA,cACA,gBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,kBACA,gBACA,kBACA,mBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,gBACA,gBACA,oBACA,gBACA,eACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,cACA,cACA,gBACA,iBACA,oBACA,eACA,mBACA,iBACA,gBACA,mBACA,kBACA,g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","file":"static/js/app.cb19dec0.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\":\"2f1d393d\",\"main~workouts\":\"a74990d7\",\"main\":\"e5da50b8\",\"workouts\":\"1c22fd12\",\"profile\":\"6a786c1d\",\"reset\":\"518e646f\",\"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\":\"04e24276\",\"main~workouts\":\"66c5ef05\",\"main\":\"c790adb1\",\"workouts\":\"d0767062\",\"profile\":\"b52bc193\",\"reset\":\"bd9657a8\",\"chunk-2d0c9189\":\"31d6cfe0\",\"chunk-2d0cf391\":\"31d6cfe0\",\"chunk-2d0da8f3\":\"31d6cfe0\",\"chunk-2d2248b6\":\"31d6cfe0\",\"chunk-2d22523a\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n }\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=9e52fc98&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminMenu.vue?vue&type=style&index=0&id=7dad7915&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StatCard.vue?vue&type=style&index=0&id=9e52fc98&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 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Trail: '#09a98a',\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--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=6c3336ff&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--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Pagination.vue?vue&type=style&index=0&id=de4b01da&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f8a631e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-number\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"stat-label\" }, \"km\", -1))\nconst _hoisted_11 = { class: \"user-stat hide-small\" }\nconst _hoisted_12 = { class: \"stat-number\" }\nconst _hoisted_13 = { class: \"stat-label\" }\n\nimport { toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const { user } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(Number(_unref(user).total_distance).toFixed(0)), 1),\n _hoisted_10\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=f8a631e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f8a631e2\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Footer.vue?vue&type=style&index=0&id=e60d9c5e&scoped=true&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfosEdition.vue?vue&type=style&index=0&id=15042edb&lang=scss\"","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Dropdown.vue?vue&type=style&index=0&id=ca61364c&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--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminApplication.vue?vue&type=style&index=0&id=03002a18&lang=scss&scoped=true\"","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer le compte de \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les drois d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les drois d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email : une adresse email valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur Réseau.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : 8 caractères minimum.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, cet utilisateur existe déjà.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur : 3 à 12 caractères requis.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de Bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n }\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Electrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veullez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation du mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"KM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"km\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Axe pour l'altitude démarrant à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-de4b01da\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination } from '@/types/api'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload\n }\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(page: number, cursor?: number): TWorkoutsPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n event: _unref(pagination).has_prev ? 'click' : '',\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(() => [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')), 1)\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n event: _unref(pagination).has_next ? 'click' : '',\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"to\", \"event\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=de4b01da&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-de4b01da\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminUsers.vue?vue&type=style&index=0&id=4b4e6923&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d5946ea6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"user-bio\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_4 = {\n key: 2,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, Ref, computed, ref, toRefs, withDefaults } from 'vue'\n\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n fromAdmin: { default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean }\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(new Date(props.user.birth_date), 'dd/MM/yyyy')\n : ''\n )\n let displayModal: Ref = ref(false)\n\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteUserAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \"admin.CONFIRM_USER_ACCOUNT_DELETION\",\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteUserAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_2, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=d5946ea6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-d5946ea6\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Modal.vue?vue&type=style&index=0&id=20a846ac&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Card.vue?vue&type=style&index=0&id=66f9fd1d&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=b211d1ec&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a5d764a4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=a5d764a4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a5d764a4\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loader.vue?vue&type=style&index=0&id=436637e0&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FilterSelects.vue?vue&type=style&index=0&id=a5d764a4&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 = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPictureEdition.vue?vue&type=style&index=0&id=239b9d46&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserInfos.vue?vue&type=style&index=0&id=d5946ea6&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPicture.vue?vue&type=style&index=0&id=3c1d51f0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AlertMessage.vue?vue&type=style&index=0&id=1c7b89ce&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NoConfig.vue?vue&type=style&index=0&id=c1193208&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NavBar.vue?vue&type=style&index=0&id=53493688&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserProfileTabs.vue?vue&type=style&index=0&id=76da3258&lang=scss\"","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"password: 8 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: 8 characters required.\"])},\n \"sorry, that user already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that user already exists.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"username: 3 to 12 characters required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username: 3 to 12 characters required.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems encounter some issues.
Please try later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n }\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"ENTER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter an email address\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"ENTER_PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm the password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_CONFIRM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm Password\"])},\n \"PASSWORD_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"KM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"km\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farest distance\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elevation axis beginning at 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=3c1d51f0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserPreferences.vue?vue&type=style&index=0&id=5eb5bd11&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","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e60d9c5e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/_createStaticVNode(\"
\", 4)\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n version: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n }\n\n \n\n const { version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=e60d9c5e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e60d9c5e\"]])\n\nexport default __exports__","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","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-53493688\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const { locale } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n let isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n locale.value = option.value.toString()\n store.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, option.value)\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': _unref(isMenuOpen) }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': _unref(isMenuOpen) }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !_unref(isMenuOpen) }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=53493688&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-53493688\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./NoConfig.vue?vue&type=template&id=c1193208&scoped=true\"\nconst script = {}\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=c1193208&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c1193208\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6c3336ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1))\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG))\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n let bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : ''\n }, null, 8, [\"version\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=6c3336ff&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c3336ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-03002a18\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"max_users\" }\nconst _hoisted_4 = [\"disabled\"]\nconst _hoisted_5 = { class: \"user-limit-help\" }\nconst _hoisted_6 = { class: \"info-box\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = { for: \"max_single_file_size\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = { for: \"max_zip_file_size\" }\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = { for: \"gpx_limit_import\" }\nconst _hoisted_13 = [\"disabled\"]\nconst _hoisted_14 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_16 = [\"onClick\"]\nconst _hoisted_17 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n appConfig: null,\n edition: { default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean }\n\n \n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ;['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(appData).max_users) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_4), [\n [_vModelText, _unref(appData).max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(appData).max_single_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(appData).max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(appData).max_zip_file_size) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(appData).max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(appData).gpx_limit_import) = $event)),\n disabled: !__props.edition\n }, null, 8, _hoisted_13), [\n [_vModelText, _unref(appData).gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (__props.edition)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_16)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=03002a18&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-03002a18\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, withDefaults } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appStatistics: IAppStatistics }\n\n \n\n const uploadDirSize = computed(() =>\n props.appStatistics.uploads_dir_size\n ? getReadableFileSize(props.appStatistics.uploads_dir_size, false)\n : { size: 0, suffix: 'bytes' }\n )\n const usersCount = computed(() =>\n props.appStatistics.users ? props.appStatistics.users : 0\n )\n const sportsCount = computed(() =>\n props.appStatistics.sports ? props.appStatistics.sports : 0\n )\n const workoutCount = computed(() =>\n props.appStatistics.workouts ? props.appStatistics.workouts : 0\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(usersCount),\n text: _ctx.$t('admin.USER', _unref(usersCount))\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(sportsCount),\n text: _ctx.$t('workouts.SPORT', _unref(sportsCount))\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(workoutCount),\n text: _ctx.$t('workouts.WORKOUT', _unref(workoutCount))\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=2a71abbb&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=66f9fd1d\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=66f9fd1d&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7dad7915\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_4 = { class: \"registration-status\" }\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics }\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_3,\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=7dad7915&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7dad7915\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8e49af46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"center-text\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"center-text\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label\n }, null, 8, [\"title\", \"sport-label\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=8e49af46&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8e49af46\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4b4e6923\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"left-text\" }\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"cell-heading\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"center-text\" }\nconst _hoisted_12 = { class: \"cell-heading\" }\nconst _hoisted_13 = { class: \"center-text\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"center-text\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"disabled\", \"onClick\"]\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { getDateWithTZ } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(format)(\n _unref(getDateWithTZ)(user.created_at, _unref(authUser).timezone),\n 'dd/MM/yyyy HH:mm'\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_17)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=4b4e6923&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4b4e6923\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n tabs: null,\n selectedTab: null,\n edition: null,\n disabled: { default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean }\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'PICTURE':\n return '/profile/edit/picture'\n case 'PREFERENCES':\n return `/profile${props.edition ? '/edit' : ''}/preferences`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab) === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=76da3258&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b211d1ec\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n }\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=b211d1ec&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b211d1ec\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5eb5bd11\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const language = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(language)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferences.vue?vue&type=style&index=0&id=5eb5bd11&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5eb5bd11\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n }\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PICTURE', 'PREFERENCES']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_7 = [\"value\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"password\"\n}\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = {\n class: \"form-items\",\n for: \"passwordConfirmation\"\n}\nconst _hoisted_11 = [\"disabled\"]\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"hr\", null, null, -1)\nconst _hoisted_13 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_16 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_17 = [\"disabled\"]\nconst _hoisted_18 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_19 = [\"disabled\"]\nconst _hoisted_20 = { class: \"form-items\" }\nconst _hoisted_21 = { class: \"form-buttons\" }\nconst _hoisted_22 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const userForm: IUserPayload = reactive({\n password: '',\n password_conf: '',\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n let displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"email\",\n value: _unref(user).email,\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_7)\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"password\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(userForm).password) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_9), [\n [_vModelText, _unref(userForm).password]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_10, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_CONFIRMATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"passwordConfirmation\",\n type: \"password\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(userForm).password_conf) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_11), [\n [_vModelText, _unref(userForm).password_conf]\n ])\n ]),\n _hoisted_12,\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(userForm).first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_14), [\n [_vModelText, _unref(userForm).first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(userForm).last_name) = $event))\n }, null, 512), [\n [_vModelText, _unref(userForm).last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_16, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(userForm).birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_17), [\n [_vModelText, _unref(userForm).birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_18, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(userForm).location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_19), [\n [_vModelText, _unref(userForm).location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_20, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: _unref(userForm).bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"button\", _hoisted_22, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[8] || (_cache[8] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[9] || (_cache[9] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=15042edb&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-239b9d46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n let pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !_unref(pictureFile)\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=239b9d46&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-239b9d46\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d1c5cf04\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n input: null,\n disabled: { default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean }\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref: (_value, _refs) => {\n _refs['tzList'] = _value\n tzList.value = _value\n }\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=d1c5cf04&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-d1c5cf04\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-buttons\" }\nconst _hoisted_12 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n 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[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(userForm).language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, _unref(userForm).language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: _unref(userForm).timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"weekm\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(userForm).weekm) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"option\", {\n value: start.value,\n key: start.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 9, _hoisted_10)\n }), 64))\n ], 8, _hoisted_9), [\n [_vModelSelect, _unref(userForm).weekm]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"button\", _hoisted_12, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import axios from 'axios'\n\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport { getApiUrl } from '@/utils'\n\nconst authApi = axios.create({\n baseURL: getApiUrl(),\n})\n\nauthApi.interceptors.request.use(\n (config) => {\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default authApi\n","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 AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\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 removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeAuthUserData(context)\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n router.push('/profile/preferences')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n 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(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserPasswordPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {},\n 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 { 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, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","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 { AUTH_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(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n } else if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1c7b89ce\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n }\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=1c7b89ce&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1c7b89ce\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, isRef as _isRef, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-129e44c0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string }\n\n \n\n \n\n let text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(text) ? (text).value = $event : text = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, _unref(text)]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(_unref(text).length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=129e44c0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-129e44c0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ca61364c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n }\n\n \n\n \n\n const route = useRoute()\n let isOpen = ref(false)\n let dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (_unref(isOpen))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=ca61364c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ca61364c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4366d0e7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n }\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=4366d0e7&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4366d0e7\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n sportLabel: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, title: string }\n\n \n\n const { sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 10 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=436637e0&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=436637e0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-436637e0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20a846ac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null }\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=20a846ac&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20a846ac\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ErrorMessage.vue?vue&type=style&index=0&id=4366d0e7&scoped=true&lang=scss\"","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TimezoneDropdown.vue?vue&type=style&index=0&id=d1c5cf04&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./UserHeader.vue?vue&type=style&index=0&id=f8a631e2&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppStatsCards.vue?vue&type=style&index=0&id=2a71abbb&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AdminSports.vue?vue&type=style&index=0&id=8e49af46&lang=scss&scoped=true\"","var map = {\n\t\"./en/en.ts\": \"c142\",\n\t\"./fr/fr.ts\": \"663e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"e7b6\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CustomTextArea.vue?vue&type=style&index=0&id=129e44c0&lang=scss&scoped=true\""],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.16e33b8b.js b/fittrackee/dist/static/js/workouts.16e33b8b.js deleted file mode 100644 index 326f29c6..00000000 --- a/fittrackee/dist/static/js/workouts.16e33b8b.js +++ /dev/null @@ -1,2 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["workouts"],{"0385":function(e,t,n){"use strict";n.r(t);var o=n("7a23"),r=n("47e2"),c=(n("b0c0"),n("4de4"),n("d3b7"),n("caad"),n("2532"),n("6c02")),a=n("1119"),l=function(e){return Object(o["pushScopeId"])("data-v-a842653a"),e=e(),Object(o["popScopeId"])(),e},u={class:"workouts-filters"},i={class:"box"},s={class:"form"},d={class:"form-items-group"},b={class:"form-item"},O=["value"],p={class:"form-item"},m=["value"],j={class:"form-items-group"},f={class:"form-item"},g=["value"],k=l((function(){return Object(o["createElementVNode"])("option",{value:""},null,-1)})),y=["value"],v={class:"form-items-group"},E={class:"form-item"},h={class:"form-inputs-group"},w=["value"],N=["value"],S={class:"form-items-group"},T={class:"form-item"},V={class:"form-inputs-group"},D=["value"],_=["value"],x={class:"form-items-group"},C={class:"form-item"},A={class:"form-inputs-group"},B=["value"],R=["value"],I={class:"form-items-group"},L={class:"form-item"},U={class:"form-inputs-group"},$=["value"],M=["value"],P={class:"form-button"},G=Object(o["defineComponent"])({props:{authUser:null,sports:null},emits:["filter"],setup:function(e,t){var n=t.emit,l=e,G=Object(r["b"])(),F=G.t,W=Object(c["c"])(),z=Object(c["d"])(),H=Object(o["toRefs"])(l),q=H.authUser,K=Object(o["computed"])((function(){return Object(a["d"])(l.sports,F)})),Z=Object.assign({},W.query);function X(e){""===e.target.value?delete Z[e.target.name]:Z[e.target.name]=e.target.value}function J(){n("filter"),"page"in Z&&(Z["page"]="1"),z.push({path:"/workouts",query:Z})}function Y(){n("filter"),z.push({path:"/workouts",query:{}})}return Object(o["watch"])((function(){return W.query}),(function(e){Z=Object.assign({},e)})),function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",u,[Object(o["createElementVNode"])("div",i,[Object(o["createElementVNode"])("div",s,[Object(o["createElementVNode"])("div",d,[Object(o["createElementVNode"])("div",b,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.FROM"))+": ",1),Object(o["createElementVNode"])("input",{name:"from",type:"date",value:e.$route.query.from,onChange:X},null,40,O)]),Object(o["createElementVNode"])("div",p,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.TO"))+": ",1),Object(o["createElementVNode"])("input",{name:"to",type:"date",value:e.$route.query.to,onChange:X},null,40,m)])]),Object(o["createElementVNode"])("div",j,[Object(o["createElementVNode"])("div",f,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.SPORT",1))+":",1),Object(o["createElementVNode"])("select",{name:"sport_id",value:e.$route.query.sport_id,onChange:X},[k,(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(K).filter((function(e){return Object(o["unref"])(q).sports_list.includes(e.id)})),(function(e){return Object(o["openBlock"])(),Object(o["createElementBlock"])("option",{value:e.id,key:e.id},Object(o["toDisplayString"])(e.translatedLabel),9,y)})),128))],40,g)])]),Object(o["createElementVNode"])("div",v,[Object(o["createElementVNode"])("div",E,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.DISTANCE"))+" (km): ",1),Object(o["createElementVNode"])("div",h,[Object(o["createElementVNode"])("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:e.$route.query.distance_from,onChange:X},null,40,w),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("workouts.TO")),1),Object(o["createElementVNode"])("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:e.$route.query.distance_to,onChange:X},null,40,N)])])]),Object(o["createElementVNode"])("div",S,[Object(o["createElementVNode"])("div",T,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.DURATION"))+" (km): ",1),Object(o["createElementVNode"])("div",V,[Object(o["createElementVNode"])("input",{name:"duration_from",value:e.$route.query.duration_from,onChange:X,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,D),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("workouts.TO")),1),Object(o["createElementVNode"])("input",{name:"duration_to",value:e.$route.query.duration_to,onChange:X,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,_)])])]),Object(o["createElementVNode"])("div",x,[Object(o["createElementVNode"])("div",C,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.AVE_SPEED"))+" (km): ",1),Object(o["createElementVNode"])("div",A,[Object(o["createElementVNode"])("input",{min:"0",name:"ave_speed_from",value:e.$route.query.ave_speed_from,onChange:X,step:"0.1",type:"number"},null,40,B),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("workouts.TO")),1),Object(o["createElementVNode"])("input",{min:"0",name:"ave_speed_to",value:e.$route.query.ave_speed_to,onChange:X,step:"0.1",type:"number"},null,40,R)])])]),Object(o["createElementVNode"])("div",I,[Object(o["createElementVNode"])("div",L,[Object(o["createElementVNode"])("label",null,Object(o["toDisplayString"])(e.$t("workouts.MAX_SPEED"))+" (km): ",1),Object(o["createElementVNode"])("div",U,[Object(o["createElementVNode"])("input",{min:"0",name:"max_speed_from",value:e.$route.query.max_speed_from,onChange:X,step:"0.1",type:"number"},null,40,$),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("workouts.TO")),1),Object(o["createElementVNode"])("input",{min:"0",name:"max_speed_to",value:e.$route.query.max_speed_to,onChange:X,step:"0.1",type:"number"},null,40,M)])])])]),Object(o["createElementVNode"])("div",P,[Object(o["createElementVNode"])("button",{class:"confirm",onClick:J},Object(o["toDisplayString"])(e.$t("buttons.FILTER")),1),Object(o["createElementVNode"])("button",{class:"confirm",onClick:Y},Object(o["toDisplayString"])(e.$t("buttons.CLEAR_FILTER")),1)])])])}}}),F=(n("1a5f"),n("6b0d")),W=n.n(F);const z=W()(G,[["__scopeId","data-v-a842653a"]]);var H=z,q=n("1da1"),K=(n("96cf"),n("d81d"),n("b64b"),n("b680"),n("a9e3"),n("b166")),Z=n("9176"),X=n("6d7d"),J=n("68c6"),Y=n("1724"),Q=n("dad5"),ee=n("2906"),te=n("97e5"),ne=n("5e65"),oe=n("9230"),re=function(e){return Object(o["pushScopeId"])("data-v-432ef8ce"),e=e(),Object(o["popScopeId"])(),e},ce={class:"workouts-list"},ae={class:"total"},le={class:"total-label"},ue={key:0},ie={key:0,class:"workouts-table responsive-table"},se=re((function(){return Object(o["createElementVNode"])("th",{class:"sport-col"},null,-1)})),de={class:"sport-col"},be={class:"cell-heading"},Oe=["onMouseover"],pe={class:"cell-heading"},me={key:0,class:"fa fa-map-o","aria-hidden":"true"},je={class:"cell-heading"},fe={class:"text-right"},ge={class:"cell-heading"},ke={class:"text-right"},ye={class:"cell-heading"},ve={class:"text-right"},Ee={class:"cell-heading"},he={class:"text-right"},we={class:"cell-heading"},Ne={class:"text-right"},Se={class:"cell-heading"},Te={key:0},Ve={class:"text-right"},De={class:"cell-heading"},_e={key:0},xe=re((function(){return Object(o["createElementVNode"])("div",{id:"bottom"},null,-1)})),Ce=Object(o["defineComponent"])({props:{user:null,sports:null},setup:function(e){var t=e,n=Object(ee["a"])(),r=Object(c["c"])(),a=Object(c["d"])(),l=Object(o["toRefs"])(t),u=l.user,i=l.sports,s=["ave_speed","distance","duration","workout_date"],d=Object(o["computed"])((function(){return n.getters[Q["f"].GETTERS.USER_WORKOUTS]})),b=Object(o["computed"])((function(){return n.getters[Q["f"].GETTERS.WORKOUTS_PAGINATION]})),O=f(r.query),p=Object(o["ref"])(null);function m(e){n.dispatch(Q["f"].ACTIONS.GET_USER_WORKOUTS,e)}function j(e,t){var n=Object.assign({},r.query);n[e]=t,"per_page"===e&&(n["page"]="1"),O=f(n),a.push({path:"/workouts",query:O})}function f(e){return O=Object(te["a"])(e,s,oe["a"].order_by,{defaultSort:oe["a"].order}),Object.keys(e).filter((function(e){return te["d"].includes(e)})).map((function(t){"string"===typeof e[t]&&(O[t]=e[t])})),O}function g(e){p.value=e}return Object(o["onBeforeMount"])((function(){m(O)})),Object(o["watch"])((function(){return r.query}),function(){var e=Object(q["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:O=f(t),m(O);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),function(e,t){var n=Object(o["resolveComponent"])("SportImage"),r=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ce,[Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["box",{"empty-table":0===Object(o["unref"])(d).length}])},[Object(o["createElementVNode"])("div",ae,[Object(o["createElementVNode"])("span",le,Object(o["toDisplayString"])(e.$t("common.TOTAL").toLowerCase())+": ",1),null!==Object(o["unref"])(b).total?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",ue,Object(o["toDisplayString"])(Object(o["unref"])(b).total)+" "+Object(o["toDisplayString"])(e.$t("workouts.WORKOUT",Object(o["unref"])(b).total)),1)):Object(o["createCommentVNode"])("",!0)]),Object(o["createVNode"])(Z["a"],{sort:Object(o["unref"])(te["c"]),order_by:s,query:Object(o["unref"])(O),message:"workouts",onUpdateSelect:j},null,8,["sort","query"]),Object(o["unref"])(d).length>0?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ie,[Object(o["createVNode"])(X["a"],{class:"top-pagination",pagination:Object(o["unref"])(b),path:"/workouts",query:Object(o["unref"])(O)},null,8,["pagination","query"]),Object(o["createElementVNode"])("table",null,[Object(o["createElementVNode"])("thead",null,[Object(o["createElementVNode"])("tr",null,[se,Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",1))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DATE"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DISTANCE"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DURATION"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.AVE_SPEED"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.MAX_SPEED"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.ASCENT"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DESCENT"))),1)])]),Object(o["createElementVNode"])("tbody",null,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(d),(function(c){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{key:c.id},[Object(o["createElementVNode"])("td",de,[Object(o["createElementVNode"])("span",be,Object(o["toDisplayString"])(e.$t("workouts.SPORT",1)),1),Object(o["createVNode"])(n,{title:Object(o["unref"])(i).filter((function(e){return e.id===c.sport_id}))[0].translatedLabel,"sport-label":Object(o["unref"])(i).filter((function(e){return e.id===c.sport_id}))[0].label},null,8,["title","sport-label"])]),Object(o["createElementVNode"])("td",{class:"workout-title",onMouseover:function(e){return g(c.id)},onMouseleave:t[0]||(t[0]=function(e){return g(null)})},[Object(o["createElementVNode"])("span",pe,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",1))),1),Object(o["createVNode"])(r,{class:"nav-item",to:{name:"Workout",params:{workoutId:c.id}}},{default:Object(o["withCtx"])((function(){return[c.with_gpx?(Object(o["openBlock"])(),Object(o["createElementBlock"])("i",me)):Object(o["createCommentVNode"])("",!0),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.title),1)]})),_:2},1032,["to"]),c.with_gpx&&p.value===c.id?(Object(o["openBlock"])(),Object(o["createBlock"])(J["a"],{key:0,workout:c,"display-hover":!0},null,8,["workout"])):Object(o["createCommentVNode"])("",!0)],40,Oe),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",je,Object(o["toDisplayString"])(e.$t("workouts.DATE")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(Object(o["unref"])(K["a"])(Object(o["unref"])(ne["c"])(c.workout_date,Object(o["unref"])(u).timezone),"dd/MM/yyyy HH:mm")),1)]),Object(o["createElementVNode"])("td",fe,[Object(o["createElementVNode"])("span",ge,Object(o["toDisplayString"])(e.$t("workouts.DISTANCE")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(Number(c.distance).toFixed(2))+" km ",1)]),Object(o["createElementVNode"])("td",ke,[Object(o["createElementVNode"])("span",ye,Object(o["toDisplayString"])(e.$t("workouts.DURATION")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.moving),1)]),Object(o["createElementVNode"])("td",ve,[Object(o["createElementVNode"])("span",Ee,Object(o["toDisplayString"])(e.$t("workouts.AVE_SPEED")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.ave_speed)+" km/h ",1)]),Object(o["createElementVNode"])("td",he,[Object(o["createElementVNode"])("span",we,Object(o["toDisplayString"])(e.$t("workouts.MAX_SPEED")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.max_speed)+" km/h ",1)]),Object(o["createElementVNode"])("td",Ne,[Object(o["createElementVNode"])("span",Se,Object(o["toDisplayString"])(e.$t("workouts.ASCENT")),1),c.with_gpx?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",Te,Object(o["toDisplayString"])(c.ascent)+" m",1)):Object(o["createCommentVNode"])("",!0)]),Object(o["createElementVNode"])("td",Ve,[Object(o["createElementVNode"])("span",De,Object(o["toDisplayString"])(e.$t("workouts.DESCENT")),1),c.with_gpx?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",_e,Object(o["toDisplayString"])(c.descent)+" m",1)):Object(o["createCommentVNode"])("",!0)])])})),128))])]),Object(o["createVNode"])(X["a"],{pagination:Object(o["unref"])(b),path:"/workouts",query:Object(o["unref"])(O)},null,8,["pagination","query"])])):Object(o["createCommentVNode"])("",!0)],2),0===Object(o["unref"])(d).length?(Object(o["openBlock"])(),Object(o["createBlock"])(Y["a"],{key:0})):Object(o["createCommentVNode"])("",!0),xe])}}});n("368b");const Ae=W()(Ce,[["__scopeId","data-v-432ef8ce"]]);var Be=Ae,Re={key:0,id:"workouts",class:"view"},Ie={class:"container workouts-container"},Le={class:"display-filters"},Ue={class:"list-container"},$e=Object(o["defineComponent"])({setup:function(e){var t=Object(r["b"])(),n=t.t,c=Object(ee["a"])(),l=Object(o["computed"])((function(){return c.getters[Q["a"].GETTERS.AUTH_USER_PROFILE]})),u=Object(o["computed"])((function(){return c.getters[Q["c"].GETTERS.SPORTS]})),i=Object(o["computed"])((function(){return Object(a["d"])(u.value,n)})),s=Object(o["ref"])(!0);function d(){s.value=!s.value}return function(e,t){return Object(o["unref"])(l).username?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Re,[Object(o["createElementVNode"])("div",Ie,[Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["filters-container",{hidden:s.value}])},[Object(o["createVNode"])(H,{sports:Object(o["unref"])(i),authUser:Object(o["unref"])(l),onFilter:d},null,8,["sports","authUser"])],2),Object(o["createElementVNode"])("div",Le,[Object(o["createElementVNode"])("div",{onClick:d},[Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])("fa fa-caret-".concat(s.value?"down":"up")),"aria-hidden":"true"},null,2),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("workouts.".concat(s.value?"DISPLAY":"HIDE","_FILTERS"))),1)])]),Object(o["createElementVNode"])("div",Ue,[Object(o["createVNode"])(Be,{user:Object(o["unref"])(l),sports:Object(o["unref"])(i)},null,8,["user","sports"])])])])):Object(o["createCommentVNode"])("",!0)}}});n("0d8e");const Me=W()($e,[["__scopeId","data-v-ed6df5ba"]]);t["default"]=Me},"05f5":function(e,t,n){},"077d":function(e,t,n){"use strict";n("17e2")},"0b59":function(e,t,n){"use strict";n("8a7e")},"0d8e":function(e,t,n){"use strict";n("8f45")},"17e2":function(e,t,n){},"1a5f":function(e,t,n){"use strict";n("46cf")},"1aeb":function(e,t,n){"use strict";n("a659")},"2e0f":function(e,t,n){},"304a":function(e,t,n){"use strict";n.r(t);var o=n("1da1"),r=(n("96cf"),n("7a23")),c=n("6c02"),a=n("f7f9"),l=n("ade3"),u=(n("e9c4"),n("b680"),n("a9e3"),n("99af"),n("ac1f"),n("5319"),n("b48c")),i=n("47e2"),s=n("9230"),d={id:"workout-chart"},b={class:"chart-radio"},O=["checked"],p=["checked"],m={class:"no-data-cleaning"},j=Object(r["defineComponent"])({props:{authUser:null,workoutData:null},emits:["getCoordinates"],setup:function(e,t){var n=t.emit,o=e,c=Object(i["b"])(),a=c.t,j=Object(r["ref"])(!0),f=Object(r["computed"])((function(){return Object(s["b"])(o.workoutData.chartData,a)})),g=Object(r["computed"])((function(){return{labels:j.value?f.value.distance_labels:f.value.duration_labels,datasets:JSON.parse(JSON.stringify([f.value.datasets.speed,f.value.datasets.elevation]))}})),k=Object(r["computed"])((function(){return f.value.coordinates})),y=Object(r["computed"])((function(){var e;return{responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:22}},scales:(e={},Object(l["a"])(e,j.value?"xDistance":"xDuration",{grid:{drawOnChartArea:!1},ticks:{count:10,callback:function(e){return j.value?Number(e).toFixed(2):w(e)}},type:"linear",bounds:"data",title:{display:!0,text:j.value?a("workouts.DISTANCE")+" (km)":a("workouts.DURATION")}}),Object(l["a"])(e,"ySpeed",{grid:{drawOnChartArea:!1},position:"left",title:{display:!0,text:a("workouts.SPEED")+" (km/h)"}}),Object(l["a"])(e,"yElevation",{beginAtZero:!0,grid:{drawOnChartArea:!1},position:"right",title:{display:!0,text:a("workouts.ELEVATION")+" (m)"}}),e),elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function(e){var t=" ".concat(e.dataset.label,": ").concat(e.formattedValue);return"yElevation"===e.dataset.yAxisID?t+" m":t+" km/h"},title:function(e){return e.length>0&&N(k.value[e[0].dataIndex]),0===e.length?"":j.value?"".concat(a("workouts.DISTANCE"),": ").concat(e[0].label," km"):"".concat(a("workouts.DURATION"),": ").concat(w(e[0].label.replace(",","")))}}}}}})),v=Object(u["useLineChart"])({chartData:g,options:y}),E=v.lineChartProps;function h(){j.value=!j.value}function w(e){return new Date(1e3*+e).toISOString().substr(11,8)}function N(e){n("getCoordinates",e)}function S(){N({latitude:null,longitude:null})}return function(e,t){var n=Object(r["resolveComponent"])("Card");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",d,[Object(r["createVNode"])(n,null,{title:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.ANALYSIS")),1)]})),content:Object(r["withCtx"])((function(){return[Object(r["createElementVNode"])("div",b,[Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"distance",checked:Object(r["unref"])(j),onClick:h},null,8,O),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DISTANCE")),1)]),Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"duration",checked:!Object(r["unref"])(j),onClick:h},null,8,p),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DURATION")),1)])]),Object(r["createVNode"])(Object(r["unref"])(u["LineChart"]),Object(r["mergeProps"])(Object(r["unref"])(E),{class:"line-chart",onMouseleave:S}),null,16),Object(r["createElementVNode"])("div",m,Object(r["toDisplayString"])(e.$t("workouts.NO_DATA_CLEANING")),1)]})),_:1})])}}}),f=(n("34ea"),n("6b0d")),g=n.n(f);const k=g()(j,[["__scopeId","data-v-09b68bcb"]]);var y=k,v=(n("7db0"),n("d3b7"),function(e){return Object(r["pushScopeId"])("data-v-ae31b8b2"),e=e(),Object(r["popScopeId"])(),e}),E={id:"workout-card-title"},h=["title"],w=v((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)})),N=[w],S={class:"workout-card-title"},T={class:"workout-title-date"},V={key:0,class:"workout-title"},D={key:1,class:"workout-title"},_={class:"workout-segment"},x=Object(r["createTextVNode"])(" — "),C=v((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1)})),A={class:"workout-date"},B={class:"workout-link"},R=["title"],I=v((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)})),L=[I],U=Object(r["defineComponent"])({props:{sport:null,workoutObject:null},emits:["displayModal"],setup:function(e,t){var n=t.emit,o=e,c=Object(r["toRefs"])(o),a=c.sport,l=c.workoutObject;return function(e,t){var o=Object(r["resolveComponent"])("SportImage"),c=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",E,[Object(r["createElementVNode"])("div",{class:Object(r["normalizeClass"])(["workout-previous workout-arrow",{inactive:!Object(r["unref"])(l).previousUrl}]),title:Object(r["unref"])(l).previousUrl?e.$t("workouts.PREVIOUS_".concat(Object(r["unref"])(l).type)):e.$t("workouts.NO_PREVIOUS_".concat(Object(r["unref"])(l).type)),onClick:t[0]||(t[0]=function(t){return Object(r["unref"])(l).previousUrl?e.$router.push(Object(r["unref"])(l).previousUrl):null})},N,10,h),Object(r["createElementVNode"])("div",S,[Object(r["createVNode"])(o,{"sport-label":Object(r["unref"])(a).label},null,8,["sport-label"]),Object(r["createElementVNode"])("div",T,["WORKOUT"===Object(r["unref"])(l).type?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",V,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(Object(r["unref"])(l).title)+" ",1),Object(r["createElementVNode"])("i",{class:"fa fa-edit","aria-hidden":"true",onClick:t[1]||(t[1]=function(t){return e.$router.push({name:"EditWorkout",params:{workoutId:Object(r["unref"])(l).workoutId}})})}),Object(r["createElementVNode"])("i",{class:"fa fa-trash","aria-hidden":"true",onClick:t[2]||(t[2]=function(e){return n("displayModal",!0)})})])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",D,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(Object(r["unref"])(l).title)+" ",1),Object(r["createElementVNode"])("span",_,[x,C,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.SEGMENT"))+" "+Object(r["toDisplayString"])(Object(r["unref"])(l).segmentId+1),1)])])),Object(r["createElementVNode"])("div",A,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(Object(r["unref"])(l).workoutDate)+" - "+Object(r["toDisplayString"])(Object(r["unref"])(l).workoutTime)+" ",1),Object(r["createElementVNode"])("span",B,["SEGMENT"===Object(r["unref"])(l).type?(Object(r["openBlock"])(),Object(r["createBlock"])(c,{key:0,to:{name:"Workout",params:{workoutId:Object(r["unref"])(l).workoutId}}},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(" > "+Object(r["toDisplayString"])(e.$t("workouts.BACK_TO_WORKOUT")),1)]})),_:1},8,["to"])):Object(r["createCommentVNode"])("",!0)])])])]),Object(r["createElementVNode"])("div",{class:Object(r["normalizeClass"])(["workout-next workout-arrow",{inactive:!Object(r["unref"])(l).nextUrl}]),title:Object(r["unref"])(l).nextUrl?e.$t("workouts.NEXT_".concat(Object(r["unref"])(l).type)):e.$t("workouts.NO_NEXT_".concat(Object(r["unref"])(l).type)),onClick:t[3]||(t[3]=function(t){return Object(r["unref"])(l).nextUrl?e.$router.push(Object(r["unref"])(l).nextUrl):null})},L,10,R)])}}});n("0b59");const $=g()(U,[["__scopeId","data-v-ae31b8b2"]]);var M=$,P=function(e){return Object(r["pushScopeId"])("data-v-2e8c6844"),e=e(),Object(r["popScopeId"])(),e},G={key:0,class:"workout-record"},F=P((function(){return Object(r["createElementVNode"])("sup",null,[Object(r["createElementVNode"])("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1)})),W=[F],z=Object(r["defineComponent"])({props:{recordType:null,workoutObject:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.recordType,c=n.workoutObject;return function(e,t){return Object(r["unref"])(c).records&&Object(r["unref"])(c).records.find((function(e){return e.record_type===Object(r["unref"])(o)}))?(Object(r["openBlock"])(),Object(r["createElementBlock"])("span",G,W)):Object(r["createCommentVNode"])("",!0)}}});n("4168");const H=g()(z,[["__scopeId","data-v-2e8c6844"]]);var q=H,K=function(e){return Object(r["pushScopeId"])("data-v-599592bf"),e=e(),Object(r["popScopeId"])(),e},Z={key:0,id:"workout-weather"},X={class:"weather-table"},J=K((function(){return Object(r["createElementVNode"])("th",null,null,-1)})),Y={class:"weather-th"},Q=["src","alt","title"],ee={class:"weather-th"},te=["src","alt","title"],ne=["alt","title"],oe=["alt","title"],re=["alt","title"],ce=Object(r["defineComponent"])({props:{workoutObject:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.workoutObject;return function(e,t){return Object(r["unref"])(o).weatherStart&&Object(r["unref"])(o).weatherEnd?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Z,[Object(r["createElementVNode"])("table",X,[Object(r["createElementVNode"])("thead",null,[Object(r["createElementVNode"])("tr",null,[J,Object(r["createElementVNode"])("th",null,[Object(r["createElementVNode"])("div",Y,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.START"))+" ",1),Object(r["createElementVNode"])("img",{class:"weather-img",src:"/img/weather/".concat(Object(r["unref"])(o).weatherStart.icon,".svg"),alt:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherStart.icon)),title:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherStart.icon))},null,8,Q)])]),Object(r["createElementVNode"])("th",null,[Object(r["createElementVNode"])("div",ee,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.END"))+" ",1),Object(r["createElementVNode"])("img",{class:"weather-img",src:"/img/weather/".concat(Object(r["unref"])(o).weatherEnd.icon,".svg"),alt:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherEnd.icon)),title:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherEnd.icon))},null,8,te)])])])]),Object(r["createElementVNode"])("tbody",null,[Object(r["createElementVNode"])("tr",null,[Object(r["createElementVNode"])("td",null,[Object(r["createElementVNode"])("img",{class:"weather-img weather-img-small",src:"/img/weather/temperature.svg",alt:e.$t("workouts.WEATHER.TEMPERATURE"),title:e.$t("workouts.WEATHER.TEMPERATURE")},null,8,ne)]),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherStart.temperature).toFixed(1))+"°C ",1),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherEnd.temperature).toFixed(1))+"°C ",1)]),Object(r["createElementVNode"])("tr",null,[Object(r["createElementVNode"])("td",null,[Object(r["createElementVNode"])("img",{class:"weather-img weather-img-small",src:"/img/weather/pour-rain.svg",alt:e.$t("workouts.WEATHER.HUMIDITY"),title:e.$t("workouts.WEATHER.HUMIDITY")},null,8,oe)]),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(100*Object(r["unref"])(o).weatherStart.humidity).toFixed(1))+"% ",1),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(100*Object(r["unref"])(o).weatherEnd.humidity).toFixed(1))+"% ",1)]),Object(r["createElementVNode"])("tr",null,[Object(r["createElementVNode"])("td",null,[Object(r["createElementVNode"])("img",{class:"weather-img weather-img-small",src:"/img/weather/breeze.svg",alt:e.$t("workouts.WEATHER.WIND"),title:e.$t("workouts.WEATHER.WIND")},null,8,re)]),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherStart.wind).toFixed(1))+"m/s",1),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherEnd.wind).toFixed(1))+"m/s",1)])])])])):Object(r["createCommentVNode"])("",!0)}}});n("077d");const ae=g()(ce,[["__scopeId","data-v-599592bf"]]);var le=ae,ue=function(e){return Object(r["pushScopeId"])("data-v-47565031"),e=e(),Object(r["popScopeId"])(),e},ie={id:"workout-info"},se={class:"workout-data"},de=ue((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)})),be={key:0},Oe={class:"workout-data"},pe=ue((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)})),me={class:"workout-data"},je=ue((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1)})),fe=ue((function(){return Object(r["createElementVNode"])("br",null,null,-1)})),ge={key:0,class:"workout-data"},ke=["alt"],ye=ue((function(){return Object(r["createElementVNode"])("br",null,null,-1)})),ve={key:1,class:"workout-data"},Ee=ue((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)})),he=ue((function(){return Object(r["createElementVNode"])("br",null,null,-1)})),we=Object(r["defineComponent"])({props:{workoutObject:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.workoutObject,c=Object(r["computed"])((function(){return"0:00:00"!==t.workoutObject.pauses&&null!==t.workoutObject.pauses}));return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ie,[Object(r["createElementVNode"])("div",se,[de,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DURATION"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).moving),1),Object(r["createVNode"])(q,{workoutObject:Object(r["unref"])(o),recordType:"LD"},null,8,["workoutObject"]),Object(r["unref"])(c)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",be,[Object(r["createTextVNode"])(" ("+Object(r["toDisplayString"])(e.$t("workouts.PAUSES"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).pauses),1),Object(r["createTextVNode"])(" - "+Object(r["toDisplayString"])(e.$t("workouts.TOTAL_DURATION"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).duration)+")",1)])):Object(r["createCommentVNode"])("",!0)]),Object(r["createElementVNode"])("div",Oe,[pe,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DISTANCE"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).distance)+" km",1),Object(r["createVNode"])(q,{workoutObject:Object(r["unref"])(o),recordType:"FD"},null,8,["workoutObject"])]),Object(r["createElementVNode"])("div",me,[je,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.AVERAGE_SPEED"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).aveSpeed)+" km/h",1),Object(r["createVNode"])(q,{workoutObject:Object(r["unref"])(o),recordType:"AS"},null,8,["workoutObject"]),fe,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.MAX_SPEED"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).maxSpeed)+" km/h",1),Object(r["createVNode"])(q,{workoutObject:Object(r["unref"])(o),recordType:"MS"},null,8,["workoutObject"])]),null!==Object(r["unref"])(o).maxAlt&&null!==Object(r["unref"])(o).minAlt?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ge,[Object(r["createElementVNode"])("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,ke),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.MIN_ALTITUDE"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).minAlt)+" m",1),ye,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.MAX_ALTITUDE"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).maxAlt)+" m",1)])):Object(r["createCommentVNode"])("",!0),null!==Object(r["unref"])(o).ascent&&null!==Object(r["unref"])(o).descent?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ve,[Ee,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.ASCENT"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).ascent)+" m",1),he,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DESCENT"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).descent)+" m",1)])):Object(r["createCommentVNode"])("",!0),Object(r["createVNode"])(le,{workoutObject:Object(r["unref"])(o)},null,8,["workoutObject"])])}}});n("efb4");const Ne=g()(we,[["__scopeId","data-v-47565031"]]);var Se=Ne,Te=n("e94f"),Ve=n("5afd"),De=n("dad5"),_e=n("2906"),xe=n("d257"),Ce={id:"workout-map"},Ae={key:0,class:"leaflet-container"},Be={key:1},Re={key:0,class:"leaflet-container"},Ie={key:1,class:"no-map"},Le=Object(r["defineComponent"])({props:{workoutData:null,markerCoordinates:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(_e["a"])(),o=Object(r["toRefs"])(t),c=o.workoutData,a=o.markerCoordinates,l=Object(r["ref"])(null),u=Object(r["computed"])((function(){return t.workoutData?[[t.workoutData.workout.bounds[0],t.workoutData.workout.bounds[1]],[t.workoutData.workout.bounds[2],t.workoutData.workout.bounds[3]]]:[]})),i=Object(r["computed"])((function(){return n.getters[De["b"].GETTERS.APP_CONFIG]})),s=Object(r["computed"])((function(){return O(u)})),d=Object(r["computed"])((function(){return t.workoutData&&t.workoutData.gpx?b(t.workoutData.gpx):{}}));function b(e){if(!e||""!==e)try{var t=Object(Te["gpx"])((new DOMParser).parseFromString(e,"text/xml"));return{jsonData:t}}catch(n){return console.error("Invalid gpx content"),{}}return{}}function O(e){return[(e.value[0][0]+e.value[1][0])/2,(e.value[0][1]+e.value[1][1])/2]}function p(e){var t,n;null!==(t=l.value)&&void 0!==t&&t.leafletObject&&(null===(n=l.value)||void 0===n||n.leafletObject.fitBounds(e))}return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Ce,[Object(r["unref"])(c).loading?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Ae)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Be,[Object(r["unref"])(c).workout.with_gpx?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Re,[Object(r["unref"])(d).jsonData&&Object(r["unref"])(s)&&2===Object(r["unref"])(u).length?(Object(r["openBlock"])(),Object(r["createBlock"])(Object(r["unref"])(Ve["b"]),{key:0,zoom:13,center:Object(r["unref"])(s),bounds:Object(r["unref"])(u),ref:function(e,t){t["workoutMap"]=e,l.value=e},onReady:t[0]||(t[0]=function(e){return p(Object(r["unref"])(u))})},{default:Object(r["withCtx"])((function(){return[Object(r["createVNode"])(Object(r["unref"])(Ve["d"]),{url:"".concat(Object(r["unref"])(xe["a"])(),"workouts/map_tile/{s}/{z}/{x}/{y}.png"),attribution:Object(r["unref"])(i).map_attribution,bounds:Object(r["unref"])(u)},null,8,["url","attribution","bounds"]),Object(r["createVNode"])(Object(r["unref"])(Ve["a"]),{geojson:Object(r["unref"])(d).jsonData},null,8,["geojson"]),Object(r["unref"])(a).latitude?(Object(r["openBlock"])(),Object(r["createBlock"])(Object(r["unref"])(Ve["c"]),{key:0,"lat-lng":[Object(r["unref"])(a).latitude,Object(r["unref"])(a).longitude]},null,8,["lat-lng"])):Object(r["createCommentVNode"])("",!0)]})),_:1},8,["center","bounds"])):Object(r["createCommentVNode"])("",!0)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Ie,Object(r["toDisplayString"])(e.$t("workouts.NO_MAP")),1))]))])}}});n("ac79");const Ue=g()(Le,[["__scopeId","data-v-b4b3006a"]]);var $e=Ue,Me=n("5e65"),Pe={class:"workout-detail"},Ge=Object(r["defineComponent"])({props:{authUser:null,displaySegment:null,sports:null,workoutData:null,markerCoordinates:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(c["c"])(),a=Object(_e["a"])(),l=Object(r["toRefs"])(t),u=l.markerCoordinates,i=l.workoutData,s=Object(r["computed"])((function(){return t.workoutData.workout})),d=Object(r["ref"])(n.params.workoutId?+n.params.segmentId:null),b=Object(r["computed"])((function(){return s.value.segments.length>0&&d.value?s.value.segments[+d.value-1]:null})),O=Object(r["ref"])(!1),p=Object(r["computed"])((function(){return t.sports?t.sports.find((function(e){return e.id===t.workoutData.workout.sport_id})):{}})),m=Object(r["computed"])((function(){return f(s.value,b.value)}));function j(e,t,n){var o=t&&n&&1!==n?"/workouts/".concat(e.id,"/segment/").concat(n-1):!t&&e.previous_workout?"/workouts/".concat(e.previous_workout):null,r=t&&n&&n0?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",nt,[Object(r["unref"])(s).workout.id?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ot,[Object(r["createVNode"])(We,{workoutData:Object(r["unref"])(s),sports:Object(r["unref"])(b),authUser:Object(r["unref"])(d),markerCoordinates:Object(r["unref"])(O),displaySegment:Object(r["unref"])(i)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),Object(r["unref"])(s).workout.with_gpx&&Object(r["unref"])(s).chartData.length>0?(Object(r["openBlock"])(),Object(r["createBlock"])(y,{key:0,workoutData:Object(r["unref"])(s),authUser:Object(r["unref"])(d),displaySegment:Object(r["unref"])(i),onGetCoordinates:p},null,8,["workoutData","authUser","displaySegment"])):Object(r["createCommentVNode"])("",!0),!Object(r["unref"])(i)&&Object(r["unref"])(s).workout.segments.length>1?(Object(r["openBlock"])(),Object(r["createBlock"])(Ye,{key:1,segments:Object(r["unref"])(s).workout.segments},null,8,["segments"])):Object(r["createCommentVNode"])("",!0),Object(r["unref"])(i)?Object(r["createCommentVNode"])("",!0):(Object(r["openBlock"])(),Object(r["createBlock"])(Ke,{key:2,notes:Object(r["unref"])(s).workout.notes},null,8,["notes"])),rt])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ct,[Object(r["unref"])(s).loading?Object(r["createCommentVNode"])("",!0):(Object(r["openBlock"])(),Object(r["createBlock"])(a["a"],{key:0,target:"WORKOUT"}))]))])):Object(r["createCommentVNode"])("",!0)])])}}});n("4041");const lt=g()(at,[["__scopeId","data-v-87defaa4"]]);t["default"]=lt},3311:function(e,t,n){},"34ea":function(e,t,n){"use strict";n("2e0f")},"368b":function(e,t,n){"use strict";n("fd40")},4041:function(e,t,n){"use strict";n("8956")},4168:function(e,t,n){"use strict";n("696e")},"46cf":function(e,t,n){},"5afd":function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return V})),n.d(t,"b",(function(){return C})),n.d(t,"c",(function(){return R})),n.d(t,"d",(function(){return P}));var o=n("7a23");const r=(e,t)=>{let n;return function(...o){const r=this;n&&clearTimeout(n),n=setTimeout(()=>{e.apply(r,o),n=null},t)}},c=e=>e&&"function"===typeof e.charAt?e.charAt(0).toUpperCase()+e.slice(1):e,a=(e,t,n)=>{for(const r in n){const a="set"+c(r);e[a]?Object(o["watch"])(()=>n[r],(t,n)=>{e[a](t,n)}):t[a]&&Object(o["watch"])(()=>n[r],e=>{t[a](e)})}},l=e=>{const t={};for(const n in e)if(n.startsWith("on")&&!n.startsWith("onUpdate")&&"onReady"!==n){const o=n.slice(2).toLocaleLowerCase();t[o]=e[n]}return t},u=async e=>{const t=await Promise.all([n.e("chunk-2d0c9189").then(n.t.bind(null,"584d",7)),n.e("chunk-2d0cf391").then(n.t.bind(null,"6397",7)),n.e("chunk-2d22523a").then(n.t.bind(null,"e2b9",7))]);delete e.Default.prototype._getIconUrl,e.Default.mergeOptions({iconRetinaUrl:t[0].default,iconUrl:t[1].default,shadowUrl:t[2].default})},i=e=>{const t=Object(o["ref"])(()=>console.warn(`Method ${e} has been invoked without being replaced`)),n=(...e)=>t.value(...e);return n.wrapped=t,Object(o["provide"])(e,n),n},s=(e,t)=>e.wrapped.value=t,d="object"===typeof self&&self.self===self&&self||"object"===typeof e&&e.global===e&&e||void 0,b="useGlobalLeaflet",O={options:{type:Object,default:()=>({})}},p=e=>({options:e.options,methods:{}}),m={...O,pane:{type:String,default:"overlayPane"},attribution:{type:String,default:null},name:{type:String,custom:!0,default:void 0},layerType:{type:String,custom:!0,default:void 0},visible:{type:Boolean,custom:!0,default:!0}},j=(e,t,n)=>{const r=Object(o["inject"])("addLayer"),c=Object(o["inject"])("removeLayer"),{options:a,methods:l}=p(e),u={...a,attribution:e.attribution,pane:e.pane},i=()=>r({leafletObject:t.value}),s=()=>c({leafletObject:t.value}),d={...l,setAttribution(e,t){const n=this.$parent.leafletObject.attributionControl;n.removeAttribution(t).addAttribution(e)},setName(){s(),e.visible&&i()},setLayerType(){s(),e.visible&&i()},setVisible(e){t.value&&(e?i():s())},bindPopup({leafletObject:e}){t.value.bindPopup(e)},bindTooltip({leafletObject:e}){t.value.bindTooltip(e)},unbindTooltip(){const e=t.value?t.value.getTooltip():null;e&&e.unbindTooltip()},unbindPopup(){const e=t.value?t.value.getPopup():null;e&&e.unbindPopup()},updateVisibleProp(e){n.emit("update:visible",e)}};return Object(o["provide"])("bindPopup",d.bindPopup),Object(o["provide"])("bindTooltip",d.bindTooltip),Object(o["provide"])("unbindTooltip",d.unbindTooltip),Object(o["provide"])("unbindPopup",d.unbindPopup),Object(o["onUnmounted"])(()=>{d.unbindPopup(),d.unbindTooltip(),s()}),{options:u,methods:d}},f=(e,t)=>{if(e&&t.default)return Object(o["h"])("div",{style:{display:"none"}},t.default())},g={...O,interactive:{type:Boolean,default:!0},bubblingMouseEvents:{type:Boolean,default:!0}},k={...m,...g,stroke:{type:Boolean,custom:!0,default:!0},color:{type:String,custom:!0,default:"#3388ff"},weight:{type:Number,custom:!0,default:3},opacity:{type:Number,custom:!0,default:1},lineCap:{type:String,custom:!0,default:"round"},lineJoin:{type:String,custom:!0,default:"round"},dashArray:{type:String,custom:!0,default:null},dashOffset:{type:String,custom:!0,default:null},fill:{type:Boolean,custom:!0,default:!1},fillColor:{type:String,custom:!0,default:"#3388ff"},fillOpacity:{type:Number,custom:!0,default:.2},fillRule:{type:String,custom:!0,default:"evenodd"},className:{type:String,custom:!0,default:null}},y={...k,latLng:{type:[Object,Array],custom:!0,default:null},radius:{type:Number,default:null}};const v={...O,position:{type:String,default:"topright"}},E=(e,t)=>{const{options:n,methods:r}=p(e),c={...n,position:e.position},a={...r,setPosition(e){t.value&&t.value.setPosition(e)}};return Object(o["onUnmounted"])(()=>{t.value&&t.value.remove()}),{options:c,methods:a}},h=e=>e.default?Object(o["h"])("div",{ref:"root"},e.default()):null;Boolean,Boolean;Boolean,Boolean,Boolean,Boolean;Boolean,Boolean,Boolean;const w={...m},N=(e,t,n)=>{const{options:r,methods:c}=j(e,t,n),a={...r},l={...c,addLayer(e){t.value.addLayer(e.leafletObject)},removeLayer(e){t.value.removeLayer(e.leafletObject)}};return Object(o["provide"])("addLayer",l.addLayer),Object(o["provide"])("removeLayer",l.removeLayer),{options:a,methods:l}};const S={...w,geojson:{type:[Object,Array],default:()=>({})}},T=(e,t)=>{const{options:n,methods:o}=N(e,t),r={...n,...e},c={...o,setGeojson(e){t.value.clearLayers(),t.value.addData(e)},getGeoJSONData(){return t.value.toGeoJSON()},getBounds(){return t.value.getBounds()}};return{options:r,methods:c}};var V={props:S,setup(e,t){const r=Object(o["ref"])({}),c=Object(o["ref"])(!1),u=Object(o["inject"])(b),i=Object(o["inject"])("addLayer"),{methods:s,options:O}=T(e,r);return Object(o["onMounted"])(async()=>{const{geoJSON:b,DomEvent:p}=u?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));r.value=b(e.geojson,O);const m=l(t.attrs);p.on(r.value,m),a(s,r.value,e),i({...e,...s,leafletObject:r.value}),c.value=!0,Object(o["nextTick"])(()=>t.emit("ready",r.value))}),{ready:c,leafletObject:r}},render(){return f(this.ready,this.$slots)},__file:"src/components/LGeoJson.vue"};const D={...m,pane:{type:String,default:"tilePane"},opacity:{type:Number,custom:!1,default:1},zIndex:{type:Number,default:1},tileSize:{type:Number,default:256},noWrap:{type:Boolean,default:!1},minZoom:{type:Number,default:0},maxZoom:{type:Number,default:void 0}},_=(e,t,n)=>{const{options:o,methods:r}=j(e,t,n),c={...o,pane:e.pane,opacity:e.opacity,zIndex:e.zIndex,tileSize:e.tileSize,noWrap:e.noWrap,minZoom:e.minZoom,maxZoom:e.maxZoom};return{options:c,methods:{...r}}};const x={iconUrl:{type:String,custom:!0,default:null},iconRetinaUrl:{type:String,custom:!0,default:null},iconSize:{type:[Object,Array],custom:!0,default:null},iconAnchor:{type:[Object,Array],custom:!0,default:null},popupAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},tooltipAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},shadowUrl:{type:String,custom:!0,default:null},shadowRetinaUrl:{type:String,custom:!0,default:null},shadowSize:{type:[Object,Array],custom:!0,default:null},shadowAnchor:{type:[Object,Array],custom:!0,default:null},bgPos:{type:[Object,Array],custom:!0,default:()=>[0,0]},className:{type:String,custom:!0,default:""},options:{type:Object,custom:!0,default:()=>({})}};Boolean,Boolean;var C={emits:["ready","update:zoom","update:center","update:bounds"],props:{...O,center:{type:[Object,Array],default:()=>[0,0]},bounds:{type:[Array,Object],default:void 0},maxBounds:{type:[Array,Object],default:void 0},zoom:{type:Number,default:0},minZoom:{type:Number,default:void 0},maxZoom:{type:Number,default:void 0},paddingBottomRight:{type:Array,default:void 0},paddingTopLeft:{type:Array,default:void 0},padding:{type:Array,default:void 0},worldCopyJump:{type:Boolean,default:!1},crs:{type:[String,Object],default:"EPSG3857"},maxBoundsViscosity:{type:Number,default:void 0},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number,default:void 0},inertiaMaxSpeed:{type:Number,default:void 0},easeLinearity:{type:Number,default:void 0},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number,default:void 0},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:!1},useGlobalLeaflet:{type:Boolean,default:!1}},setup(e,t){const c=Object(o["ref"])(null),O=Object(o["reactive"])({ready:!1,leafletRef:{},layersToAdd:[],layersInControl:[]}),{options:m}=p(e),j={...m,minZoom:e.minZoom,maxZoom:e.maxZoom,maxBounds:e.maxBounds,maxBoundsViscosity:e.maxBoundsViscosity,worldCopyJump:e.worldCopyJump,crs:e.crs,center:e.center,zoom:e.zoom,inertia:e.inertia,inertiaDeceleration:e.inertiaDeceleration,inertiaMaxSpeed:e.inertiaMaxSpeed,easeLinearity:e.easeLinearity,zoomAnimation:e.zoomAnimation,zoomAnimationThreshold:e.zoomAnimationThreshold,fadeAnimation:e.fadeAnimation,markerZoomAnimation:e.markerZoomAnimation},f=i("addLayer"),g=i("removeLayer"),k=i("registerControl"),y=i("registerLayerControl");Object(o["provide"])(b,e.useGlobalLeaflet);const v={moveEndHandler(){t.emit("update:zoom",O.leafletRef.getZoom()),t.emit("update:center",O.leafletRef.getCenter()),t.emit("update:bounds",O.leafletRef.getBounds())},overlayAddHandler(e){const t=O.layersInControl.find(t=>t.name===e.name);t&&t.updateVisibleProp(!0)},overlayRemoveHandler(e){const t=O.layersInControl.find(t=>t.name===e.name);t&&t.updateVisibleProp(!1)}};Object(o["onMounted"])(async()=>{e.useGlobalLeaflet&&(d.L=d.L||await n.e("chunk-2d2248b6").then(n.t.bind(null,"e11e",7)));const{map:i,CRS:b,Icon:p,latLngBounds:m,latLng:E,DomEvent:h}=e.useGlobalLeaflet?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));try{j.beforeMapMount&&await j.beforeMapMount()}catch(T){console.error("The following error occurred running the provided beforeMapMount hook "+T.message)}await u(p);const w="string"==typeof j.crs?b[j.crs]:j.crs;j.crs=w||b.EPSG3857;const N={addLayer(e){if(void 0!==e.layerType)if(void 0===O.layerControl)O.layersToAdd.push(e);else{const t=O.layersInControl.find(t=>t.leafletObject._leaflet_id===e.leafletObject._leaflet_id);t||(O.layerControl.addLayer(e),O.layersInControl.push(e))}!1!==e.visible&&O.leafletRef.addLayer(e.leafletObject)},removeLayer(e){void 0!==e.layerType&&(void 0===O.layerControl?O.layersToAdd=O.layersToAdd.filter(t=>t.name!==e.name):(O.layerControl.removeLayer(e.leafletObject),O.layersInControl=O.layersInControl.filter(t=>t.leafletObject._leaflet_id!==e.leafletObject._leaflet_id))),O.leafletRef.removeLayer(e.leafletObject)},registerLayerControl(e){O.layerControl=e,O.layersToAdd.forEach(e=>{O.layerControl.addLayer(e)}),O.layersToAdd=[],k(e)},registerControl(e){O.leafletRef.addControl(e.leafletObject)},setZoom(t){const n=O.leafletRef.getZoom();t!==n&&O.leafletRef.setZoom(t,{animate:!e.noBlockingAnimations&&null})},setPaddingBottomRight(e){O.paddingBottomRight=e},setPaddingTopLeft(e){O.paddingTopLeft=e},setPadding(e){O.padding=e},setCrs(e){const t=O.leafletRef.getBounds();O.leafletRef.options.crs=e,O.leafletRef.fitBounds(t,{animate:!1,padding:[0,0]})},fitBounds(e){O.leafletRef.fitBounds(e,{animate:!this.noBlockingAnimations&&null})},setBounds(e){if(!e)return;const t=m(e);if(!t.isValid())return;const n=O.lastSetBounds||O.leafletRef.getBounds(),o=!n.equals(t,0);o&&(O.lastSetBounds=t,O.leafletRef.fitBounds(t,this.fitBoundsOptions))},setCenter(e){if(null==e)return;const t=E(e),n=O.lastSetCenter||O.leafletRef.getCenter();n.lat===t.lat&&n.lng===t.lng||(O.lastSetCenter=t,O.leafletRef.panTo(t,{animate:!this.noBlockingAnimations&&null}))}};s(f,N.addLayer),s(g,N.removeLayer),s(k,N.registerControl),s(y,N.registerLayerControl),O.leafletRef=i(c.value,j),a(N,O.leafletRef,e);const S=l(t.attrs);O.leafletRef.on("moveend",r(v.moveEndHandler,100)),O.leafletRef.on("overlayadd",v.overlayAddHandler),O.leafletRef.on("overlayremove",v.overlayRemoveHandler),h.on(O.leafletRef,S),O.ready=!0,Object(o["nextTick"])(()=>t.emit("ready",O.leafletRef))}),Object(o["onBeforeUnmount"])(()=>{O.leafletRef&&O.leafletRef.remove()});const E=Object(o["computed"])(()=>O.leafletRef),h=Object(o["computed"])(()=>O.ready);return{root:c,ready:h,leafletObject:E}},render(){return Object(o["h"])("div",{style:{width:"100%",height:"100%"},ref:"root"},this.ready?this.$slots.default():{})},__file:"src/components/LMap.vue"};const A={...m,pane:{type:String,default:"markerPane"},draggable:{type:Boolean,custom:!0,default:!1},latLng:{type:[Object,Array],custom:!0,default:null},icon:{type:[Object],default:()=>{},custom:!1},zIndexOffset:{type:Number,custom:!1,default:null}},B=(e,t,n)=>{const{options:o,methods:r}=j(e,t,n),c={...o,...e},a={...r,setDraggable(e){t.value.dragging&&(e?t.value.dragging.enable():t.value.dragging.disable())},latLngSync(e){n.emit("update:latLng",e.latlng),n.emit("update:lat-lng",e.latlng)},setLatLng(e){if(null!=e&&t.value){const n=t.value.getLatLng();n&&n.equals(e)||t.value.setLatLng(e)}}};return{options:c,methods:a}};var R={name:"LMarker",props:A,setup(e,t){const c=Object(o["ref"])({}),u=Object(o["ref"])(!1),i=Object(o["inject"])(b),s=Object(o["inject"])("addLayer");Object(o["provide"])("canSetParentHtml",()=>!!c.value.getElement()),Object(o["provide"])("setParentHtml",e=>c.value.getElement().innerHTML=e),Object(o["provide"])("setIcon",e=>c.value.setIcon&&c.value.setIcon(e));const{options:O,methods:p}=B(e,c,t);return void 0===O.icon&&delete O.icon,Object(o["onMounted"])(async()=>{const{marker:b,DomEvent:m}=i?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));c.value=b(e.latLng,O);const j=l(t.attrs);m.on(c.value,j),c.value.on("move",r(p.latLngSync,100)),a(p,c.value,e),s({...e,...p,leafletObject:c.value}),u.value=!0,Object(o["nextTick"])(()=>t.emit("ready",c.value))}),{ready:u,leafletObject:c}},render(){return f(this.ready,this.$slots)},__file:"src/components/LMarker.vue"};const I={...k,latLngs:{type:Array,default:()=>[]},smoothFactor:{type:Number,custom:!0,default:1},noClip:{type:Boolean,custom:!0,default:!1}},L={...I};const U={...O,content:{type:String,default:null}};const $={...D,tms:{type:Boolean,default:!1},subdomains:{type:String,default:"abc"},detectRetina:{type:Boolean,default:!1},url:{type:String,default:null}},M=(e,t)=>{const{options:n,methods:o}=_(e,t),r={...n,tms:e.tms,subdomains:e.subdomains,detectRetina:e.detectRetina};return{options:r,methods:{...o}}};var P={props:$,setup(e,t){const r=Object(o["ref"])({}),c=Object(o["inject"])(b),u=Object(o["inject"])("addLayer"),{options:i,methods:s}=M(e,r);return Object(o["onMounted"])(async()=>{const{tileLayer:b,DomEvent:O}=c?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));r.value=b(e.url,i);const p=l(t.attrs);O.on(r.value,p),a(s,r.value,e),u({...e,...s,leafletObject:r.value}),Object(o["nextTick"])(()=>t.emit("ready",r.value))}),{leafletObject:r}},render(){return null},__file:"src/components/LTileLayer.vue"};Boolean,Boolean}).call(this,n("c8ba"))},"5c76":function(e,t,n){"use strict";var o=n("1da1"),r=(n("96cf"),n("ac1f"),n("1276"),n("99af"),n("4de4"),n("d3b7"),n("7a23")),c=n("47e2"),a=n("6c02"),l=n("dad5"),u=n("2906"),i=n("5e65"),s=n("c364"),d=n("1119"),b={id:"workout-form"},O=["onSubmit"],p={class:"form-items"},m={key:0,class:"form-item-radio"},j=["checked","disabled"],f={for:"withGpx"},g=["checked","disabled"],k={for:"withoutGpx"},y={class:"form-item"},v=["disabled"],E=["value"],h={key:1,class:"form-item"},w={for:"gpxFile"},N=["disabled"],S={class:"files-help info-box"},T={key:2,class:"form-item"},V={for:"title"},D=["required","disabled"],_={key:3},x={class:"workout-date-duration"},C={class:"form-item"},A={class:"workout-date-time"},B=["disabled"],R=["disabled"],I={class:"form-item"},L=["disabled"],U=Object(r["createTextVNode"])(" : "),$=["disabled"],M=Object(r["createTextVNode"])(" : "),P=["disabled"],G={class:"form-item"},F=["disabled"],W={class:"form-item"},z={key:1},H={key:2,class:"form-buttons"},q=["disabled"],K=["onClick"],Z=Object(r["defineComponent"])({props:{authUser:null,sports:null,isCreation:{default:!1},loading:{default:!1},workout:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(c["b"])(),Z=n.t,X=Object(u["a"])(),J=Object(a["d"])(),Y=Object(r["toRefs"])(t),Q=Y.workout,ee=Y.isCreation,te=Y.loading,ne=Object(r["computed"])((function(){return Object(d["d"])(t.sports,Z)})),oe=Object(r["computed"])((function(){return X.getters[l["b"].GETTERS.APP_CONFIG]})),re=oe.value.max_single_file_size?Object(s["b"])(oe.value.max_single_file_size):"",ce=oe.value.gpx_limit_import,ae=oe.value.max_zip_file_size?Object(s["b"])(oe.value.max_zip_file_size):"",le=Object(r["computed"])((function(){return X.getters[l["b"].GETTERS.ERROR_MESSAGES]})),ue=Object(r["reactive"])({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:""}),ie=Object(r["ref"])(t.workout.id?t.workout.with_gpx:t.isCreation),se=null,de=Object(r["ref"])(!1);function be(e){ue.notes=e}function Oe(){ie.value=!ie.value,de.value=!1}function pe(e){e.target.files&&(se=e.target.files[0])}function me(e){if(ue.sport_id="".concat(e.sport_id),ue.title=e.title,ue.notes=e.notes,!e.with_gpx){var n=Object(i["a"])(Object(i["c"])(e.workout_date,t.authUser.timezone),"yyyy-MM-dd"),o=e.duration.split(":");ue.workoutDistance="".concat(e.distance),ue.workoutDate=n.workout_date,ue.workoutTime=n.workout_time,ue.workoutDurationHour=o[0],ue.workoutDurationMinutes=o[1],ue.workoutDurationSeconds=o[2]}}function je(e){e.title=ue.title,e.distance=+ue.workoutDistance,e.duration=3600*+ue.workoutDurationHour+60*+ue.workoutDurationMinutes+ +ue.workoutDurationSeconds,e.workout_date="".concat(ue.workoutDate," ").concat(ue.workoutTime)}function fe(){var e={sport_id:+ue.sport_id,notes:ue.notes};if(t.workout.id)t.workout.with_gpx?e.title=ue.title:je(e),X.dispatch(l["f"].ACTIONS.EDIT_WORKOUT,{workoutId:t.workout.id,data:e});else if(ie.value){if(!se){var n="workouts.NO_FILE_PROVIDED";return void X.commit(l["b"].MUTATIONS.SET_ERROR_MESSAGES,n)}e.file=se,X.dispatch(l["f"].ACTIONS.ADD_WORKOUT,e)}else je(e),X.dispatch(l["f"].ACTIONS.ADD_WORKOUT_WITHOUT_GPX,e)}function ge(){t.workout.id?J.push({name:"Workout",params:{workoutId:t.workout.id}}):J.go(-1)}function ke(){de.value=!0}return Object(r["onMounted"])((function(){t.workout.id&&me(t.workout)})),Object(r["onUnmounted"])((function(){return X.commit(l["b"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),Object(r["watch"])((function(){return t.workout}),function(){var e=Object(o["a"])(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:t!==n&&t&&t.id&&me(t);case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),function(e,t){var n=Object(r["resolveComponent"])("CustomTextArea"),o=Object(r["resolveComponent"])("ErrorMessage"),c=Object(r["resolveComponent"])("Loader"),a=Object(r["resolveComponent"])("Card");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",{id:"workout-edition",class:Object(r["normalizeClass"])(["center-card center-card with-margin",{"center-form":Object(r["unref"])(Q)&&Object(r["unref"])(Q).with_gpx}])},[Object(r["createVNode"])(a,null,{title:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.".concat(Object(r["unref"])(ee)?"ADD":"EDIT","_WORKOUT"))),1)]})),content:Object(r["withCtx"])((function(){return[Object(r["createElementVNode"])("div",b,[Object(r["createElementVNode"])("form",{class:Object(r["normalizeClass"])({errors:de.value}),onSubmit:Object(r["withModifiers"])(fe,["prevent"])},[Object(r["createElementVNode"])("div",p,[Object(r["unref"])(ee)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",m,[Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("input",{id:"withGpx",type:"radio",checked:Object(r["unref"])(ie),disabled:Object(r["unref"])(te),onClick:Oe},null,8,j),Object(r["createElementVNode"])("label",f,Object(r["toDisplayString"])(e.$t("workouts.WITH_GPX")),1)]),Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("input",{id:"withoutGpx",type:"radio",checked:!Object(r["unref"])(ie),disabled:Object(r["unref"])(te),onClick:Oe},null,8,g),Object(r["createElementVNode"])("label",k,Object(r["toDisplayString"])(e.$t("workouts.WITHOUT_GPX")),1)])])):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("div",y,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.SPORT",1))+": ",1),Object(r["withDirectives"])(Object(r["createElementVNode"])("select",{id:"sport",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[0]||(t[0]=function(e){return Object(r["unref"])(ue).sport_id=e})},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(ne).filter((function(e){return e.is_active})),(function(e){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:e.id,key:e.id},Object(r["toDisplayString"])(e.translatedLabel),9,E)})),128))],40,v),[[r["vModelSelect"],Object(r["unref"])(ue).sport_id]])]),Object(r["unref"])(ee)&&Object(r["unref"])(ie)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",h,[Object(r["createElementVNode"])("label",w,Object(r["toDisplayString"])(e.$t("workouts.GPX_FILE"))+" "+Object(r["toDisplayString"])(e.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+": ",1),Object(r["createElementVNode"])("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:Object(r["unref"])(te),required:"",onInvalid:ke,onInput:pe},null,40,N),Object(r["createElementVNode"])("div",S,[Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("strong",null,Object(r["toDisplayString"])(e.$t("workouts.GPX_FILE"))+":",1),Object(r["createElementVNode"])("ul",null,[Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(r["toDisplayString"])(Object(r["unref"])(re)),1)])]),Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("strong",null,Object(r["toDisplayString"])(e.$t("workouts.ZIP_ARCHIVE"))+":",1),Object(r["createElementVNode"])("ul",null,[Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.NO_FOLDER")),1),Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.MAX_FILES"))+": "+Object(r["toDisplayString"])(Object(r["unref"])(ce)),1),Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(r["toDisplayString"])(Object(r["unref"])(ae)),1)])])])])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",T,[Object(r["createElementVNode"])("label",V,Object(r["toDisplayString"])(e.$t("workouts.TITLE"))+": ",1),Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"title",name:"title",type:"text",required:!Object(r["unref"])(ee),onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[1]||(t[1]=function(e){return Object(r["unref"])(ue).title=e})},null,40,D),[[r["vModelText"],Object(r["unref"])(ue).title]])])),Object(r["unref"])(ie)?Object(r["createCommentVNode"])("",!0):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",_,[Object(r["createElementVNode"])("div",x,[Object(r["createElementVNode"])("div",C,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT_DATE"))+":",1),Object(r["createElementVNode"])("div",A,[Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[2]||(t[2]=function(e){return Object(r["unref"])(ue).workoutDate=e})},null,40,B),[[r["vModelText"],Object(r["unref"])(ue).workoutDate]]),Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[3]||(t[3]=function(e){return Object(r["unref"])(ue).workoutTime=e})},null,40,R),[[r["vModelText"],Object(r["unref"])(ue).workoutTime]])])]),Object(r["createElementVNode"])("div",I,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.DURATION"))+":",1),Object(r["createElementVNode"])("div",null,[Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:"workout-duration",type:"text",placeholder:"HH",pattern:"^([0-9]*[0-9])$",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[4]||(t[4]=function(e){return Object(r["unref"])(ue).workoutDurationHour=e})},null,40,L),[[r["vModelText"],Object(r["unref"])(ue).workoutDurationHour]]),U,Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:"workout-duration",type:"text",pattern:"^([0-5][0-9])$",placeholder:"MM",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[5]||(t[5]=function(e){return Object(r["unref"])(ue).workoutDurationMinutes=e})},null,40,$),[[r["vModelText"],Object(r["unref"])(ue).workoutDurationMinutes]]),M,Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:"workout-duration",type:"text",pattern:"^([0-5][0-9])$",placeholder:"SS",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[6]||(t[6]=function(e){return Object(r["unref"])(ue).workoutDurationSeconds=e})},null,40,P),[[r["vModelText"],Object(r["unref"])(ue).workoutDurationSeconds]])])])]),Object(r["createElementVNode"])("div",G,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.DISTANCE"))+" (km):",1),Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{name:"workout-distance",type:"number",min:"0",step:"0.01",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[7]||(t[7]=function(e){return Object(r["unref"])(ue).workoutDistance=e})},null,40,F),[[r["vModelText"],Object(r["unref"])(ue).workoutDistance]])])])),Object(r["createElementVNode"])("div",W,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.NOTES"))+": ",1),Object(r["createVNode"])(n,{name:"notes",input:Object(r["unref"])(ue).notes,disabled:Object(r["unref"])(te),onUpdateValue:be},null,8,["input","disabled"])])]),Object(r["unref"])(le)?(Object(r["openBlock"])(),Object(r["createBlock"])(o,{key:0,message:Object(r["unref"])(le)},null,8,["message"])):Object(r["createCommentVNode"])("",!0),Object(r["unref"])(te)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",z,[Object(r["createVNode"])(c)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",H,[Object(r["createElementVNode"])("button",{class:"confirm",type:"submit",disabled:Object(r["unref"])(te)},Object(r["toDisplayString"])(e.$t("buttons.SUBMIT")),9,q),Object(r["createElementVNode"])("button",{class:"cancel",onClick:Object(r["withModifiers"])(ge,["prevent"])},Object(r["toDisplayString"])(e.$t("buttons.CANCEL")),9,K)]))],42,O)])]})),_:1})],2)}}}),X=(n("e5b5"),n("6b0d")),J=n.n(X);const Y=J()(Z,[["__scopeId","data-v-20a704bc"]]);t["a"]=Y},"692d":function(e,t,n){"use strict";n.r(t);var o=n("7a23"),r=n("5c76"),c=n("dad5"),a=n("2906"),l={id:"add-workout",class:"view"},u={class:"container"},i=Object(o["defineComponent"])({setup:function(e){var t=Object(a["a"])(),n=Object(o["computed"])((function(){return t.getters[c["c"].GETTERS.SPORTS]})),i=Object(o["computed"])((function(){return t.getters[c["a"].GETTERS.AUTH_USER_PROFILE]})),s=Object(o["computed"])((function(){return t.getters[c["f"].GETTERS.WORKOUT_DATA]}));return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",l,[Object(o["createElementVNode"])("div",u,[Object(o["createVNode"])(r["a"],{authUser:Object(o["unref"])(i),sports:Object(o["unref"])(n),isCreation:!0,loading:Object(o["unref"])(s).loading},null,8,["authUser","sports","loading"])])])}}});const s=i;t["default"]=s},"696e":function(e,t,n){},"6f37":function(e,t,n){},7253:function(e,t,n){},8956:function(e,t,n){},"8a7e":function(e,t,n){},"8ce4":function(e,t,n){},"8d44":function(e,t,n){"use strict";n("6f37")},"8ee9":function(e,t,n){"use strict";n.r(t);var o=n("1da1"),r=(n("96cf"),n("7a23")),c=n("6c02"),a=n("5c76"),l=n("dad5"),u=n("2906"),i={id:"edit-workout",class:"view"},s={class:"container"},d=Object(r["defineComponent"])({setup:function(e){var t=Object(c["c"])(),n=Object(u["a"])(),d=Object(r["computed"])((function(){return n.getters[l["a"].GETTERS.AUTH_USER_PROFILE]})),b=Object(r["computed"])((function(){return n.getters[l["c"].GETTERS.SPORTS]})),O=Object(r["computed"])((function(){return n.getters[l["f"].GETTERS.WORKOUT_DATA]}));return Object(r["onBeforeMount"])((function(){n.dispatch(l["f"].ACTIONS.GET_WORKOUT_DATA,{workoutId:t.params.workoutId})})),Object(r["watch"])((function(){return t.params.workoutId}),function(){var e=Object(o["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:t||n.commit(l["f"].MUTATIONS.EMPTY_WORKOUT);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,[Object(r["createElementVNode"])("div",s,[Object(r["createVNode"])(a["a"],{authUser:Object(r["unref"])(d),sports:Object(r["unref"])(b),workout:Object(r["unref"])(O).workout,loading:Object(r["unref"])(O).loading},null,8,["authUser","sports","workout","loading"])])])}}});const b=d;t["default"]=b},"8f45":function(e,t,n){},a659:function(e,t,n){},ac79:function(e,t,n){"use strict";n("8ce4")},c66b:function(e,t,n){"use strict";n("7253")},e5b5:function(e,t,n){"use strict";n("05f5")},e94f:function(e,t,n){!function(e,n){n(t)}(0,(function(e){"use strict";function t(e){return e&&e.normalize&&e.normalize(),e&&e.textContent||""}function n(e,t){const n=e.getElementsByTagName(t);return n.length?n[0]:null}function o(e){const o={};if(e){const r=n(e,"line");if(r){const e=t(n(r,"color")),c=parseFloat(t(n(r,"opacity"))),a=parseFloat(t(n(r,"width")));e&&(o.stroke=e),isNaN(c)||(o["stroke-opacity"]=c),isNaN(a)||(o["stroke-width"]=96*a/25.4)}}return o}function r(e,o){const r={};let c,a;for(a=0;a1,s=Object.assign(c(e),o(n(e,"extensions")),{_gpxType:"trk"},a.length?{coordinateProperties:{times:i?a:a[0]}}:{});for(let n=0;nnew Array(e.line.length).fill(null))),e[t][n]=o):e[t]=o}}return{type:"Feature",properties:s,geometry:i?{type:"MultiLineString",coordinates:r}:{type:"LineString",coordinates:r[0]}}}function*s(e){const t=e.getElementsByTagName("trk"),n=e.getElementsByTagName("rte"),o=e.getElementsByTagName("wpt");for(let r=0;rArray(e.length).fill(null))),i[n][t]=e[n])}if(0!==r.length)return(c.length||a.length)&&(i.coordinateProperties=Object.assign(c.length?{times:1===r.length?c[0]:c}:{},a.length?{heart:1===r.length?a[0]:a}:{})),{type:"Feature",properties:i,geometry:{type:1===r.length?"LineString":"MultiLineString",coordinates:1===r.length?r[0]:r}}}function*f(e){const t=e.getElementsByTagName("Lap");for(let o=0;o (_pushScopeId(\"data-v-a842653a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-filters\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"form\" }\nconst _hoisted_4 = { class: \"form-items-group\" }\nconst _hoisted_5 = { class: \"form-item\" }\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-item\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"form-items-group\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, null, -1))\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-items-group\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = { class: \"form-inputs-group\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = [\"value\"]\nconst _hoisted_19 = { class: \"form-items-group\" }\nconst _hoisted_20 = { class: \"form-item\" }\nconst _hoisted_21 = { class: \"form-inputs-group\" }\nconst _hoisted_22 = [\"value\"]\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"form-items-group\" }\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = { class: \"form-inputs-group\" }\nconst _hoisted_27 = [\"value\"]\nconst _hoisted_28 = [\"value\"]\nconst _hoisted_29 = { class: \"form-items-group\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = { class: \"form-inputs-group\" }\nconst _hoisted_32 = [\"value\"]\nconst _hoisted_33 = [\"value\"]\nconst _hoisted_34 = { class: \"form-button\" }\n\nimport { ComputedRef, computed, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n authUser: IUserProfile\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n sports: null\n },\n emits: ['filter'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IUserProfile\n sports: ISport[]\n }\n\n \n\n \n\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n\n const { authUser } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n let params: LocationQuery = Object.assign({}, route.query)\n\n function handleFilterChange(event: Event & { target: HTMLInputElement }) {\n if (event.target.value === '') {\n delete params[event.target.name]\n } else {\n params[event.target.name] = event.target.value\n }\n }\n function onFilter() {\n emit('filter')\n if ('page' in params) {\n params['page'] = '1'\n }\n router.push({ path: '/workouts', query: params })\n }\n function onClearFilter() {\n emit('filter')\n router.push({ path: '/workouts', query: {} })\n }\n\n watch(\n () => route.query,\n (newQuery) => {\n params = Object.assign({}, newQuery)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.FROM')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"from\",\n type: \"date\",\n value: _ctx.$route.query.from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.TO')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"to\",\n type: \"date\",\n value: _ctx.$route.query.to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \":\", 1),\n _createElementVNode(\"select\", {\n name: \"sport_id\",\n value: _ctx.$route.query.sport_id,\n onChange: handleFilterChange\n }, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) =>\n _unref(authUser).sports_list.includes(s.id)\n ), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_13))\n }), 128))\n ], 40, _hoisted_11)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"input\", {\n name: \"distance_from\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_17),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"distance_to\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_18)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"input\", {\n name: \"duration_from\",\n value: _ctx.$route.query.duration_from,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_22),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"duration_to\",\n value: _ctx.$route.query.duration_to,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_23)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_from\",\n value: _ctx.$route.query.ave_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_27),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_to\",\n value: _ctx.$route.query.ave_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_28)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_from\",\n value: _ctx.$route.query.max_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_32),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_to\",\n value: _ctx.$route.query.max_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_33)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onFilter\n }, _toDisplayString(_ctx.$t('buttons.FILTER')), 1),\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onClearFilter\n }, _toDisplayString(_ctx.$t('buttons.CLEAR_FILTER')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=a842653a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a842653a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-432ef8ce\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-list\" }\nconst _hoisted_2 = { class: \"total\" }\nconst _hoisted_3 = { class: \"total-label\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"workouts-table responsive-table\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", { class: \"sport-col\" }, null, -1))\nconst _hoisted_7 = { class: \"sport-col\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"onMouseover\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"cell-heading\" }\nconst _hoisted_13 = { class: \"text-right\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-right\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = { class: \"text-right\" }\nconst _hoisted_18 = { class: \"cell-heading\" }\nconst _hoisted_19 = { class: \"text-right\" }\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = { class: \"text-right\" }\nconst _hoisted_22 = { class: \"cell-heading\" }\nconst _hoisted_23 = { key: 0 }\nconst _hoisted_24 = { class: \"text-right\" }\nconst _hoisted_25 = { class: \"cell-heading\" }\nconst _hoisted_26 = { key: 0 }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n capitalize,\n onBeforeMount,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import StaticMap from '@/components/Common/StaticMap.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { ITranslatedSport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'\n import { getDateWithTZ } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n user: IUserProfile\n sports: ITranslatedSport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n sports: ITranslatedSport[]\n }\n\n \n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const { user, sports } = toRefs(props)\n const orderByList: string[] = [\n 'ave_speed',\n 'distance',\n 'duration',\n 'workout_date',\n ]\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]\n )\n let query: TWorkoutsPayload = getWorkoutsQuery(route.query)\n const hoverWorkoutId: Ref = ref(null)\n\n onBeforeMount(() => {\n loadWorkouts(query)\n })\n\n function loadWorkouts(payload: TWorkoutsPayload) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS, payload)\n }\n function reloadWorkouts(queryParam: string, queryValue: string) {\n const newQuery: LocationQuery = Object.assign({}, route.query)\n newQuery[queryParam] = queryValue\n if (queryParam === 'per_page') {\n newQuery['page'] = '1'\n }\n query = getWorkoutsQuery(newQuery)\n router.push({ path: '/workouts', query })\n }\n\n function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {\n query = getQuery(newQuery, orderByList, defaultOrder.order_by, {\n defaultSort: defaultOrder.order,\n })\n Object.keys(newQuery)\n .filter((k) => workoutsPayloadKeys.includes(k))\n .map((k) => {\n if (typeof newQuery[k] === 'string') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n query[k] = newQuery[k]\n }\n })\n return query\n }\n\n function onHover(workoutId: string | null) {\n hoverWorkoutId.value = workoutId\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getWorkoutsQuery(newQuery)\n loadWorkouts(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { 'empty-table': _unref(workouts).length === 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('common.TOTAL').toLowerCase()) + \": \", 1),\n (_unref(pagination).total !== null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(pagination).total) + \" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(pagination).total)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"workouts\",\n onUpdateSelect: reloadWorkouts\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(Pagination, {\n class: \"top-pagination\",\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_6,\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DATE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DISTANCE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DURATION'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.AVE_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.MAX_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.ASCENT'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DESCENT'))), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: workout.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.SPORT', 1)), 1),\n _createVNode(_component_SportImage, {\n title: \n _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n .translatedLabel\n ,\n \"sport-label\": \n _unref(sports).filter((s) => s.id === workout.sport_id)[0].label\n \n }, null, 8, [\"title\", \"sport-label\"])\n ]),\n _createElementVNode(\"td\", {\n class: \"workout-title\",\n onMouseover: ($event: any) => (onHover(workout.id)),\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (onHover(null)))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: { name: 'Workout', params: { workoutId: workout.id } }\n }, {\n default: _withCtx(() => [\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(workout.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (workout.with_gpx && hoverWorkoutId.value === workout.id)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: workout,\n \"display-hover\": true\n }, null, 8, [\"workout\"]))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_9),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(format)(\n _unref(getDateWithTZ)(workout.workout_date, _unref(user).timezone),\n 'dd/MM/yyyy HH:mm'\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createTextVNode(\" \" + _toDisplayString(Number(workout.distance).toFixed(2)) + \" km \", 1)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.moving), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.ave_speed) + \" km/h \", 1)\n ]),\n _createElementVNode(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.max_speed) + \" km/h \", 1)\n ]),\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_23, _toDisplayString(workout.ascent) + \" m\", 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_24, [\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_26, _toDisplayString(workout.descent) + \" m\", 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(Pagination, {\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _hoisted_27\n ]))\n}\n}\n\n})","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=432ef8ce&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-432ef8ce\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ed6df5ba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workouts\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container workouts-container\" }\nconst _hoisted_3 = { class: \"display-filters\" }\nconst _hoisted_4 = { class: \"list-container\" }\n\nimport { ComputedRef, computed, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import WorkoutsFilters from '@/components/Workouts/WorkoutsFilters.vue'\n import WorkoutsList from '@/components/Workouts/WorkoutsList.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t)\n )\n const hiddenFilters = ref(true)\n\n function toggleFilters() {\n hiddenFilters.value = !hiddenFilters.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"filters-container\", { hidden: hiddenFilters.value }])\n }, [\n _createVNode(WorkoutsFilters, {\n sports: _unref(translatedSports),\n authUser: _unref(authUser),\n onFilter: toggleFilters\n }, null, 8, [\"sports\", \"authUser\"])\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", { onClick: toggleFilters }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-caret-${hiddenFilters.value ? 'down' : 'up'}`),\n \"aria-hidden\": \"true\"\n }, null, 2),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`workouts.${hiddenFilters.value ? 'DISPLAY' : 'HIDE'}_FILTERS`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(WorkoutsList, {\n user: _unref(authUser),\n sports: _unref(translatedSports)\n }, null, 8, [\"user\", \"sports\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=ed6df5ba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ed6df5ba\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutWeather.vue?vue&type=style&index=0&id=599592bf&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutCardTitle.vue?vue&type=style&index=0&id=ae31b8b2&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutsView.vue?vue&type=style&index=0&id=ed6df5ba&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutsFilters.vue?vue&type=style&index=0&id=a842653a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutSegments.vue?vue&type=style&index=0&id=2a948bcb&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createElementVNode as _createElementVNode, mergeProps as _mergeProps, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-09b68bcb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-chart\" }\nconst _hoisted_2 = { class: \"chart-radio\" }\nconst _hoisted_3 = [\"checked\"]\nconst _hoisted_4 = [\"checked\"]\nconst _hoisted_5 = { class: \"no-data-cleaning\" }\n\nimport { ChartData, ChartOptions } from 'chart.js'\n import { ComputedRef, computed, ref } from 'vue'\n import { LineChart, useLineChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IUserProfile } from '@/types/user'\n import {\n IWorkoutChartData,\n IWorkoutData,\n TCoordinates,\n } from '@/types/workouts'\n import { getDatasets } from '@/utils/workouts'\n\n interface Props {\n authUser: IUserProfile\n workoutData: IWorkoutData\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n workoutData: null\n },\n emits: ['getCoordinates'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IUserProfile\n workoutData: IWorkoutData\n }\n\n \n\n \n\n const { t } = useI18n()\n\n let displayDistance = ref(true)\n const datasets: ComputedRef = computed(() =>\n getDatasets(props.workoutData.chartData, t)\n )\n let chartData: ComputedRef> = computed(() => ({\n labels: displayDistance.value\n ? datasets.value.distance_labels\n : datasets.value.duration_labels,\n datasets: JSON.parse(\n JSON.stringify([\n datasets.value.datasets.speed,\n datasets.value.datasets.elevation,\n ])\n ),\n }))\n const coordinates: ComputedRef = computed(\n () => datasets.value.coordinates\n )\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: 22,\n },\n },\n scales: {\n [displayDistance.value ? 'xDistance' : 'xDuration']: {\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n count: 10,\n callback: function (value) {\n return displayDistance.value\n ? Number(value).toFixed(2)\n : formatDuration(value)\n },\n },\n type: 'linear',\n bounds: 'data',\n title: {\n display: true,\n text: displayDistance.value\n ? t('workouts.DISTANCE') + ' (km)'\n : t('workouts.DURATION'),\n },\n },\n ySpeed: {\n grid: {\n drawOnChartArea: false,\n },\n position: 'left',\n title: {\n display: true,\n text: t('workouts.SPEED') + ' (km/h)',\n },\n },\n yElevation: {\n beginAtZero: true,\n grid: {\n drawOnChartArea: false,\n },\n position: 'right',\n title: {\n display: true,\n text: t('workouts.ELEVATION') + ' (m)',\n },\n },\n },\n elements: {\n point: {\n pointStyle: 'circle',\n pointRadius: 0,\n },\n },\n plugins: {\n datalabels: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n callbacks: {\n label: function (context) {\n const label = ` ${context.dataset.label}: ${context.formattedValue}`\n return context.dataset.yAxisID === 'yElevation'\n ? label + ' m'\n : label + ' km/h'\n },\n title: function (tooltipItems) {\n if (tooltipItems.length > 0) {\n emitCoordinates(coordinates.value[tooltipItems[0].dataIndex])\n }\n return tooltipItems.length === 0\n ? ''\n : displayDistance.value\n ? `${t('workouts.DISTANCE')}: ${tooltipItems[0].label} km`\n : `${t('workouts.DURATION')}: ${formatDuration(\n tooltipItems[0].label.replace(',', '')\n )}`\n },\n },\n },\n },\n }))\n const { lineChartProps } = useLineChart({\n chartData,\n options,\n })\n\n function updateDisplayDistance() {\n displayDistance.value = !displayDistance.value\n }\n function formatDuration(duration: string | number): string {\n return new Date(+duration * 1000).toISOString().substr(11, 8)\n }\n function emitCoordinates(coordinates: TCoordinates) {\n emit('getCoordinates', coordinates)\n }\n function emitEmptyCoordinates() {\n emitCoordinates({ latitude: null, longitude: null })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ANALYSIS')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"distance\",\n checked: _unref(displayDistance),\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_3),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"duration\",\n checked: !_unref(displayDistance),\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_4),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ])\n ]),\n _createVNode(_unref(LineChart), _mergeProps(_unref(lineChartProps), {\n class: \"line-chart\",\n onMouseleave: emitEmptyCoordinates\n }), null, 16),\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_DATA_CLEANING')), 1)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutChart.vue?vue&type=style&index=0&id=09b68bcb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-09b68bcb\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ae31b8b2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-card-title\" }\nconst _hoisted_2 = [\"title\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { class: \"workout-card-title\" }\nconst _hoisted_6 = { class: \"workout-title-date\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"workout-title\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"workout-title\"\n}\nconst _hoisted_9 = { class: \"workout-segment\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" — \")\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-marker\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_12 = { class: \"workout-date\" }\nconst _hoisted_13 = { class: \"workout-link\" }\nconst _hoisted_14 = [\"title\"]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_16 = [\n _hoisted_15\n]\n\nimport { toRefs } from 'vue'\n\n import { ISport } from '@/types/sports'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n sport: ISport\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n sport: null,\n workoutObject: null\n },\n emits: ['displayModal'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n sport: ISport\n workoutObject: IWorkoutObject\n }\n\n \n\n \n\n const { sport, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-previous workout-arrow\", { inactive: !_unref(workoutObject).previousUrl }]),\n title: \n _unref(workoutObject).previousUrl\n ? _ctx.$t(`workouts.PREVIOUS_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_PREVIOUS_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workoutObject).previousUrl\n ? _ctx.$router.push(_unref(workoutObject).previousUrl)\n : null\n ))\n }, _hoisted_4, 10, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sport).label\n }, null, 8, [\"sport-label\"]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_unref(workoutObject).type === 'WORKOUT')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).title) + \" \", 1),\n _createElementVNode(\"i\", {\n class: \"fa fa-edit\",\n \"aria-hidden\": \"true\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _ctx.$router.push({\n name: 'EditWorkout',\n params: { workoutId: _unref(workoutObject).workoutId },\n })\n ))\n }),\n _createElementVNode(\"i\", {\n class: \"fa fa-trash\",\n \"aria-hidden\": \"true\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (emit('displayModal', true)))\n })\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).title) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _hoisted_11,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.SEGMENT')) + \" \" + _toDisplayString(_unref(workoutObject).segmentId + 1), 1)\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).workoutDate) + \" - \" + _toDisplayString(_unref(workoutObject).workoutTime) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_13, [\n (_unref(workoutObject).type === 'SEGMENT')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workoutObject).workoutId },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" > \" + _toDisplayString(_ctx.$t('workouts.BACK_TO_WORKOUT')), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-next workout-arrow\", { inactive: !_unref(workoutObject).nextUrl }]),\n title: \n _unref(workoutObject).nextUrl\n ? _ctx.$t(`workouts.NEXT_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_NEXT_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (\n _unref(workoutObject).nextUrl ? _ctx.$router.push(_unref(workoutObject).nextUrl) : null\n ))\n }, _hoisted_16, 10, _hoisted_14)\n ]))\n}\n}\n\n})","import script from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCardTitle.vue?vue&type=style&index=0&id=ae31b8b2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae31b8b2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2e8c6844\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"workout-record\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"sup\", null, [\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n recordType: string\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n recordType: null,\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n recordType: string\n workoutObject: IWorkoutObject\n }\n\n \n\n const { recordType, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (\n _unref(workoutObject).records &&\n _unref(workoutObject).records.find((record) => record.record_type === _unref(recordType))\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutRecord.vue?vue&type=style&index=0&id=2e8c6844&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2e8c6844\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-599592bf\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workout-weather\"\n}\nconst _hoisted_2 = { class: \"weather-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_4 = { class: \"weather-th\" }\nconst _hoisted_5 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_6 = { class: \"weather-th\" }\nconst _hoisted_7 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_8 = [\"alt\", \"title\"]\nconst _hoisted_9 = [\"alt\", \"title\"]\nconst _hoisted_10 = [\"alt\", \"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n }\n\n \n\n const { workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(workoutObject).weatherStart && _unref(workoutObject).weatherEnd)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"table\", _hoisted_2, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.START')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherStart.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n \n }, null, 8, _hoisted_5)\n ])\n ]),\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.END')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherEnd.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n \n }, null, 8, _hoisted_7)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/temperature.svg\",\n alt: _ctx.$t(`workouts.WEATHER.TEMPERATURE`),\n title: _ctx.$t(`workouts.WEATHER.TEMPERATURE`)\n }, null, 8, _hoisted_8)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.temperature).toFixed(1)) + \"°C \", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.temperature).toFixed(1)) + \"°C \", 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/pour-rain.svg\",\n alt: _ctx.$t(`workouts.WEATHER.HUMIDITY`),\n title: _ctx.$t(`workouts.WEATHER.HUMIDITY`)\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.humidity * 100).toFixed(1)) + \"% \", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.humidity * 100).toFixed(1)) + \"% \", 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/breeze.svg\",\n alt: _ctx.$t(`workouts.WEATHER.WIND`),\n title: _ctx.$t(`workouts.WEATHER.WIND`)\n }, null, 8, _hoisted_10)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.wind).toFixed(1)) + \"m/s\", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.wind).toFixed(1)) + \"m/s\", 1)\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutWeather.vue?vue&type=style&index=0&id=599592bf&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-599592bf\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47565031\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-info\" }\nconst _hoisted_2 = { class: \"workout-data\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { class: \"workout-data\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"workout-data\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-tachometer\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_10 = {\n key: 0,\n class: \"workout-data\"\n}\nconst _hoisted_11 = [\"alt\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_13 = {\n key: 1,\n class: \"workout-data\"\n}\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nimport { computed, toRefs } from 'vue'\n\n import WorkoutRecord from '@/components/Workout/WorkoutDetail/WorkoutRecord.vue'\n import WorkoutWeather from '@/components/Workout/WorkoutDetail/WorkoutWeather.vue'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n }\n\n \n\n const { workoutObject } = toRefs(props)\n const withPause = computed(\n () =>\n props.workoutObject.pauses !== '0:00:00' &&\n props.workoutObject.pauses !== null\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).moving), 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"LD\"\n }, null, 8, [\"workoutObject\"]),\n (_unref(withPause))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.PAUSES')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).pauses), 1),\n _createTextVNode(\" - \" + _toDisplayString(_ctx.$t('workouts.TOTAL_DURATION')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).duration) + \")\", 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).distance) + \" km\", 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"FD\"\n }, null, 8, [\"workoutObject\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).aveSpeed) + \" km/h\", 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"AS\"\n }, null, 8, [\"workoutObject\"]),\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).maxSpeed) + \" km/h\", 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"MS\"\n }, null, 8, [\"workoutObject\"])\n ]),\n (_unref(workoutObject).maxAlt !== null && _unref(workoutObject).minAlt !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MIN_ALTITUDE')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).minAlt) + \" m\", 1),\n _hoisted_12,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_ALTITUDE')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).maxAlt) + \" m\", 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workoutObject).ascent !== null && _unref(workoutObject).descent !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _hoisted_14,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).ascent) + \" m\", 1),\n _hoisted_15,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).descent) + \" m\", 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(WorkoutWeather, { workoutObject: _unref(workoutObject) }, null, 8, [\"workoutObject\"])\n ]))\n}\n}\n\n})","import script from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutData.vue?vue&type=style&index=0&id=47565031&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47565031\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createBlock as _createBlock, withCtx as _withCtx, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b4b3006a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-map\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"leaflet-container\"\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = {\n key: 0,\n class: \"leaflet-container\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"no-map\"\n}\n\nimport { gpx } from '@tmcw/togeojson'\n import { LGeoJson, LMap, LMarker, LTileLayer } from '@vue-leaflet/vue-leaflet'\n import { ComputedRef, computed, ref, toRefs, withDefaults } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { GeoJSONData } from '@/types/geojson'\n import { IWorkoutData, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { workoutData: IWorkoutData, markerCoordinates: TCoordinates }\n\n \n\n const store = useStore()\n\n const { workoutData, markerCoordinates } = toRefs(props)\n const workoutMap = ref null }\n }>(null)\n const bounds = computed(() =>\n props.workoutData\n ? [\n [\n props.workoutData.workout.bounds[0],\n props.workoutData.workout.bounds[1],\n ],\n [\n props.workoutData.workout.bounds[2],\n props.workoutData.workout.bounds[3],\n ],\n ]\n : []\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const center = computed(() => getCenter(bounds))\n const geoJson = computed(() =>\n props.workoutData && props.workoutData.gpx\n ? getGeoJson(props.workoutData.gpx)\n : {}\n )\n\n function getGeoJson(gpxContent: string): GeoJSONData {\n if (!gpxContent || gpxContent !== '') {\n try {\n const jsonData = gpx(\n new DOMParser().parseFromString(gpxContent, 'text/xml')\n )\n return { jsonData }\n } catch (e) {\n console.error('Invalid gpx content')\n return {}\n }\n }\n return {}\n }\n function getCenter(bounds: ComputedRef): number[] {\n return [\n (bounds.value[0][0] + bounds.value[1][0]) / 2,\n (bounds.value[0][1] + bounds.value[1][1]) / 2,\n ]\n }\n function fitBounds(bounds: number[][]) {\n if (workoutMap.value?.leafletObject) {\n workoutMap.value?.leafletObject.fitBounds(bounds)\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(workoutData).loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_unref(geoJson).jsonData && _unref(center) && _unref(bounds).length === 2)\n ? (_openBlock(), _createBlock(_unref(LMap), {\n key: 0,\n zoom: 13,\n center: _unref(center),\n bounds: _unref(bounds),\n ref: (_value, _refs) => {\n _refs['workoutMap'] = _value\n workoutMap.value = _value\n },\n onReady: _cache[0] || (_cache[0] = ($event: any) => (fitBounds(_unref(bounds))))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(LTileLayer), {\n url: `${_unref(getApiUrl)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,\n attribution: _unref(appConfig).map_attribution,\n bounds: _unref(bounds)\n }, null, 8, [\"url\", \"attribution\", \"bounds\"]),\n _createVNode(_unref(LGeoJson), {\n geojson: _unref(geoJson).jsonData\n }, null, 8, [\"geojson\"]),\n (_unref(markerCoordinates).latitude)\n ? (_openBlock(), _createBlock(_unref(LMarker), {\n key: 0,\n \"lat-lng\": [_unref(markerCoordinates).latitude, _unref(markerCoordinates).longitude]\n }, null, 8, [\"lat-lng\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"center\", \"bounds\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n ]))\n}\n}\n\n})","import script from \"./WorkoutMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutMap.vue?vue&type=style&index=0&id=b4b3006a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b4b3006a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, withCtx as _withCtx, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45d17286\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workout-detail\" }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutCardTitle from '@/components/Workout/WorkoutDetail/WorkoutCardTitle.vue'\n import WorkoutData from '@/components/Workout/WorkoutDetail/WorkoutData.vue'\n import WorkoutMap from '@/components/Workout/WorkoutDetail/WorkoutMap.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import {\n IWorkout,\n IWorkoutData,\n IWorkoutObject,\n IWorkoutSegment,\n TCoordinates,\n } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n authUser: IUserProfile\n displaySegment: boolean\n sports: ISport[]\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n displaySegment: null,\n sports: null,\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IUserProfile, displaySegment: boolean, sports: ISport[], workoutData: IWorkoutData, markerCoordinates: TCoordinates }\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { markerCoordinates, workoutData } = toRefs(props)\n const workout: ComputedRef = computed(\n () => props.workoutData.workout\n )\n let segmentId: Ref = ref(\n route.params.workoutId ? +route.params.segmentId : null\n )\n const segment: ComputedRef = computed(() =>\n workout.value.segments.length > 0 && segmentId.value\n ? workout.value.segments[+segmentId.value - 1]\n : null\n )\n let displayModal: Ref = ref(false)\n const sport = computed(() =>\n props.sports\n ? props.sports.find(\n (sport) => sport.id === props.workoutData.workout.sport_id\n )\n : {}\n )\n const workoutObject = computed(() =>\n getWorkoutObject(workout.value, segment.value)\n )\n\n function getWorkoutObjectUrl(\n workout: IWorkout,\n displaySegment: boolean,\n segmentId: number | null\n ): Record {\n const previousUrl =\n displaySegment && segmentId && segmentId !== 1\n ? `/workouts/${workout.id}/segment/${segmentId - 1}`\n : !displaySegment && workout.previous_workout\n ? `/workouts/${workout.previous_workout}`\n : null\n const nextUrl =\n displaySegment && segmentId && segmentId < workout.segments.length\n ? `/workouts/${workout.id}/segment/${segmentId + 1}`\n : !displaySegment && workout.next_workout\n ? `/workouts/${workout.next_workout}`\n : null\n return {\n previousUrl,\n nextUrl,\n }\n }\n function getWorkoutObject(\n workout: IWorkout,\n segment: IWorkoutSegment | null\n ): IWorkoutObject {\n const urls = getWorkoutObjectUrl(\n workout,\n props.displaySegment,\n segmentId.value ? +segmentId.value : null\n )\n const workoutDate = formatWorkoutDate(\n getDateWithTZ(\n props.workoutData.workout.workout_date,\n props.authUser.timezone\n )\n )\n return {\n ascent: segment ? segment.ascent : workout.ascent,\n aveSpeed: segment ? segment.ave_speed : workout.ave_speed,\n distance: segment ? segment.distance : workout.distance,\n descent: segment ? segment.descent : workout.descent,\n duration: segment ? segment.duration : workout.duration,\n maxAlt: segment ? segment.max_alt : workout.max_alt,\n maxSpeed: segment ? segment.max_speed : workout.max_speed,\n minAlt: segment ? segment.min_alt : workout.min_alt,\n moving: segment ? segment.moving : workout.moving,\n nextUrl: urls.nextUrl,\n pauses: segment ? segment.pauses : workout.pauses,\n previousUrl: urls.previousUrl,\n records: segment ? [] : workout.records,\n segmentId: segment ? segment.segment_id : null,\n title: workout.title,\n type: props.displaySegment ? 'SEGMENT' : 'WORKOUT',\n workoutDate: workoutDate.workout_date,\n weatherEnd: segment ? null : workout.weather_end,\n workoutId: workout.id,\n weatherStart: segment ? null : workout.weather_start,\n workoutTime: workoutDate.workout_time,\n }\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteWorkout(workoutId: string) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT, {\n workoutId: workoutId,\n })\n }\n\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (newSegmentId) {\n segmentId.value = +newSegmentId\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('workouts.WORKOUT_DELETION_CONFIRMATION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteWorkout(_unref(workoutObject).workoutId))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(WorkoutCardTitle, {\n sport: _unref(sport),\n workoutObject: _unref(workoutObject),\n onDisplayModal: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayModal(true)))\n }, null, 8, [\"sport\", \"workoutObject\"])\n ]),\n content: _withCtx(() => [\n _createVNode(WorkoutMap, {\n workoutData: _unref(workoutData),\n markerCoordinates: _unref(markerCoordinates)\n }, null, 8, [\"workoutData\", \"markerCoordinates\"]),\n _createVNode(WorkoutData, { workoutObject: _unref(workoutObject) }, null, 8, [\"workoutObject\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=45d17286&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-45d17286\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64197f7a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-note\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n notes?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n notes: { default: () => null }\n },\n setup(__props: any) {\n\nconst props = __props as { notes: string | null }\n\n \n\n const { notes } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.NOTES')), 1)\n ]),\n content: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(notes) && _unref(notes) !== '' ? _unref(notes) : _ctx.$t('workouts.NO_NOTES')), 1)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=64197f7a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64197f7a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2a948bcb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-segments\" }\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutSegment } from '@/types/workouts'\n\n interface Props {\n segments: IWorkoutSegment[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n segments: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n segments: IWorkoutSegment[]\n }\n\n \n\n const { segments } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 2)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(segments), (segment, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: segment.segment_id\n }, [\n _createVNode(_component_router_link, {\n to: {\n name: 'WorkoutSegment',\n params: {\n workoutId: segment.workout_id,\n segmentId: index + 1,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 1)) + \" \" + _toDisplayString(index + 1), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \" + _toDisplayString(segment.distance) + \" km, \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \" + _toDisplayString(segment.duration) + \") \", 1)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=2a948bcb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2a948bcb\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-87defaa4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workout-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_6 = { key: 1 }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import WorkoutChart from '@/components/Workout/WorkoutChart.vue'\n import WorkoutDetail from '@/components/Workout/WorkoutDetail/index.vue'\n import WorkoutNotes from '@/components/Workout/WorkoutNotes.vue'\n import WorkoutSegments from '@/components/Workout/WorkoutSegments.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkoutData, IWorkoutPayload, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n displaySegment: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n displaySegment: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displaySegment: boolean\n }\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { displaySegment } = toRefs(props)\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n let markerCoordinates: Ref = ref({\n latitude: null,\n longitude: null,\n })\n\n onBeforeMount(() => {\n const payload: IWorkoutPayload = { workoutId: route.params.workoutId }\n if (props.displaySegment) {\n payload.segmentId = route.params.segmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n })\n\n onUnmounted(() => {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n })\n\n function updateCoordinates(coordinates: TCoordinates) {\n markerCoordinates.value = {\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n }\n }\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (newWorkoutId) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: newWorkoutId,\n })\n }\n }\n )\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (route.params.workoutId) {\n const payload: IWorkoutPayload = {\n workoutId: route.params.workoutId,\n }\n if (newSegmentId) {\n payload.segmentId = newSegmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(WorkoutDetail, {\n workoutData: _unref(workoutData),\n sports: _unref(sports),\n authUser: _unref(authUser),\n markerCoordinates: _unref(markerCoordinates),\n displaySegment: _unref(displaySegment)\n }, null, 8, [\"workoutData\", \"sports\", \"authUser\", \"markerCoordinates\", \"displaySegment\"]),\n (\n _unref(workoutData).workout.with_gpx && _unref(workoutData).chartData.length > 0\n )\n ? (_openBlock(), _createBlock(WorkoutChart, {\n key: 0,\n workoutData: _unref(workoutData),\n authUser: _unref(authUser),\n displaySegment: _unref(displaySegment),\n onGetCoordinates: updateCoordinates\n }, null, 8, [\"workoutData\", \"authUser\", \"displaySegment\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment) && _unref(workoutData).workout.segments.length > 1)\n ? (_openBlock(), _createBlock(WorkoutSegments, {\n key: 1,\n segments: _unref(workoutData).workout.segments\n }, null, 8, [\"segments\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment))\n ? (_openBlock(), _createBlock(WorkoutNotes, {\n key: 2,\n notes: _unref(workoutData).workout.notes\n }, null, 8, [\"notes\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_5\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!_unref(workoutData).loading)\n ? (_openBlock(), _createBlock(NotFound, {\n key: 0,\n target: \"WORKOUT\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=87defaa4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-87defaa4\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutChart.vue?vue&type=style&index=0&id=09b68bcb&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutsList.vue?vue&type=style&index=0&id=432ef8ce&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Workout.vue?vue&type=style&index=0&id=87defaa4&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutRecord.vue?vue&type=style&index=0&id=2e8c6844&lang=scss&scoped=true\"","import { watch, ref, provide, h, inject, onUnmounted, onBeforeUnmount, onMounted, nextTick, render as render$3, reactive, computed } from 'vue';\n\nconst debounce = (fn, time) => {\n let timeout;\n\n return function (...args) {\n const context = this;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn.apply(context, args);\n timeout = null;\n }, time);\n };\n};\n\nconst capitalizeFirstLetter = (string) => {\n if (!string || typeof string.charAt !== \"function\") {\n return string;\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst propsBinder = (methods, leafletElement, props) => {\n for (const key in props) {\n const setMethodName = \"set\" + capitalizeFirstLetter(key);\n if (methods[setMethodName]) {\n watch(\n () => props[key],\n (newVal, oldVal) => {\n methods[setMethodName](newVal, oldVal);\n }\n );\n } else if (leafletElement[setMethodName]) {\n watch(\n () => props[key],\n (newVal) => {\n leafletElement[setMethodName](newVal);\n }\n );\n }\n }\n};\n\nconst remapEvents = (contextAttrs) => {\n const result = {};\n for (const attrName in contextAttrs) {\n if (\n attrName.startsWith(\"on\") &&\n !attrName.startsWith(\"onUpdate\") &&\n attrName !== \"onReady\"\n ) {\n const eventName = attrName.slice(2).toLocaleLowerCase();\n result[eventName] = contextAttrs[attrName];\n }\n }\n return result;\n};\n\nconst resetWebpackIcon = async (Icon) => {\n const modules = await Promise.all([\n import('leaflet/dist/images/marker-icon-2x.png'),\n import('leaflet/dist/images/marker-icon.png'),\n import('leaflet/dist/images/marker-shadow.png'),\n ]);\n\n delete Icon.Default.prototype._getIconUrl;\n\n Icon.Default.mergeOptions({\n iconRetinaUrl: modules[0].default,\n iconUrl: modules[1].default,\n shadowUrl: modules[2].default,\n });\n};\n\n/**\n * Wraps a placeholder function and provides it with the given name.\n * The wrapper can later be updated with {@link updateLeafletWrapper}\n * to provide a different function.\n *\n * @param {String} methodName Key used to provide the wrapper function\n */\nconst provideLeafletWrapper = (methodName) => {\n const wrapped = ref(() =>\n console.warn(`Method ${methodName} has been invoked without being replaced`)\n );\n const wrapper = (...args) => wrapped.value(...args);\n // eslint-disable-next-line vue/no-ref-as-operand\n wrapper.wrapped = wrapped;\n provide(methodName, wrapper);\n\n return wrapper;\n};\n\n/**\n * Change the function that will be executed when an injected Leaflet wrapper\n * is invoked.\n *\n * @param {*} wrapper Provided wrapper whose wrapped function is to be updated\n * @param {function} leafletMethod New method to be wrapped by the wrapper\n */\nconst updateLeafletWrapper = (wrapper, leafletMethod) =>\n (wrapper.wrapped.value = leafletMethod);\n\nconst WINDOW_OR_GLOBAL =\n (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global) ||\n undefined;\n\nconst GLOBAL_LEAFLET_OPT = \"useGlobalLeaflet\";\n\nconst props = {\n options: {\n type: Object,\n default: () => ({}),\n },\n};\n\nconst setup = (props) => {\n return { options: props.options, methods: {} };\n};\n\nconst props$1 = {\n ...props,\n pane: {\n type: String,\n default: \"overlayPane\",\n },\n attribution: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n custom: true,\n default: undefined,\n },\n layerType: {\n type: String,\n custom: true,\n default: undefined,\n },\n visible: {\n type: Boolean,\n custom: true,\n default: true,\n },\n};\n\nconst setup$1 = (props, leafletRef, context) => {\n const addLayer = inject(\"addLayer\");\n const removeLayer = inject(\"removeLayer\");\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n\n const options = {\n ...componentOptions,\n attribution: props.attribution,\n pane: props.pane,\n };\n\n const addThisLayer = () => addLayer({ leafletObject: leafletRef.value });\n const removeThisLayer = () =>\n removeLayer({ leafletObject: leafletRef.value });\n\n const methods = {\n ...componentMethods,\n setAttribution(val, old) {\n const attributionControl = this.$parent.leafletObject.attributionControl;\n attributionControl.removeAttribution(old).addAttribution(val);\n },\n setName() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setLayerType() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setVisible(isVisible) {\n if (leafletRef.value) {\n if (isVisible) {\n addThisLayer();\n } else {\n removeThisLayer();\n }\n }\n },\n bindPopup({ leafletObject }) {\n leafletRef.value.bindPopup(leafletObject);\n },\n bindTooltip({ leafletObject }) {\n leafletRef.value.bindTooltip(leafletObject);\n },\n unbindTooltip() {\n const tooltip = leafletRef.value ? leafletRef.value.getTooltip() : null;\n if (tooltip) {\n tooltip.unbindTooltip();\n }\n },\n unbindPopup() {\n const popup = leafletRef.value ? leafletRef.value.getPopup() : null;\n if (popup) {\n popup.unbindPopup();\n }\n },\n updateVisibleProp(value) {\n /**\n * Triggers when the visible prop needs to be updated\n * @type {boolean}\n * @property {boolean} value - value of the visible property\n */\n context.emit(\"update:visible\", value);\n },\n };\n\n provide(\"bindPopup\", methods.bindPopup);\n provide(\"bindTooltip\", methods.bindTooltip);\n provide(\"unbindTooltip\", methods.unbindTooltip);\n provide(\"unbindPopup\", methods.unbindPopup);\n\n onUnmounted(() => {\n methods.unbindPopup();\n methods.unbindTooltip();\n removeThisLayer();\n });\n\n return { options, methods };\n};\n\nconst render = (ready, slots) => {\n if (ready && slots.default) {\n return h(\"div\", { style: { display: \"none\" } }, slots.default());\n }\n};\n\nconst props$2 = {\n ...props,\n interactive: {\n type: Boolean,\n default: true,\n },\n bubblingMouseEvents: {\n type: Boolean,\n default: true,\n },\n};\n\nconst setup$2 = (props) => {\n const { options: componentOptions, methods } = setup(props);\n const options = {\n ...componentOptions,\n interactive: props.interactive,\n bubblingMouseEvents: props.bubblingMouseEvents,\n };\n\n return { options, methods };\n};\n\nconst props$3 = {\n ...props$1,\n ...props$2,\n stroke: {\n type: Boolean,\n custom: true,\n default: true,\n },\n color: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n weight: {\n type: Number,\n custom: true,\n default: 3,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n lineCap: {\n type: String,\n custom: true,\n default: \"round\",\n },\n lineJoin: {\n type: String,\n custom: true,\n default: \"round\",\n },\n dashArray: {\n type: String,\n custom: true,\n default: null,\n },\n dashOffset: {\n type: String,\n custom: true,\n default: null,\n },\n fill: {\n type: Boolean,\n custom: true,\n default: false,\n },\n fillColor: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n fillOpacity: {\n type: Number,\n custom: true,\n default: 0.2,\n },\n fillRule: {\n type: String,\n custom: true,\n default: \"evenodd\",\n },\n className: {\n type: String,\n custom: true,\n default: null,\n },\n};\n\nconst setup$3 = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const {\n options: interactiveLayerOptions,\n methods: interactiveLayerMethods,\n } = setup$2(props);\n\n const removeLayer = inject(\"removeLayer\");\n\n const options = {\n ...layerOptions,\n ...interactiveLayerOptions,\n stroke: props.stroke,\n color: props.color,\n weight: props.weight,\n opacity: props.opacity,\n lineCap: props.lineCap,\n lineJoin: props.lineJoin,\n dashArray: props.dashArray,\n dashOffset: props.dashOffset,\n fill: props.fill,\n fillColor: props.fillColor,\n fillOpacity: props.fillOpacity,\n fillRule: props.fillRule,\n className: props.className,\n };\n const methods = {\n ...layerMethods,\n ...interactiveLayerMethods,\n setStroke(stroke) {\n leafletRef.value.setStyle({ stroke });\n },\n setColor(color) {\n leafletRef.value.setStyle({ color });\n },\n setWeight(weight) {\n leafletRef.value.setStyle({ weight });\n },\n setOpacity(opacity) {\n leafletRef.value.setStyle({ opacity });\n },\n setLineCap(lineCap) {\n leafletRef.value.setStyle({ lineCap });\n },\n setLineJoin(lineJoin) {\n leafletRef.value.setStyle({ lineJoin });\n },\n setDashArray(dashArray) {\n leafletRef.value.setStyle({ dashArray });\n },\n setDashOffset(dashOffset) {\n leafletRef.value.setStyle({ dashOffset });\n },\n setFill(fill) {\n leafletRef.value.setStyle({ fill });\n },\n setFillColor(fillColor) {\n leafletRef.value.setStyle({ fillColor });\n },\n setFillOpacity(fillOpacity) {\n leafletRef.value.setStyle({ fillOpacity });\n },\n setFillRule(fillRule) {\n leafletRef.value.setStyle({ fillRule });\n },\n setClassName(className) {\n leafletRef.value.setStyle({ className });\n },\n };\n\n onBeforeUnmount(() => {\n removeLayer({ leafletObject: leafletRef.value });\n });\n\n return { options, methods };\n};\n\nconst props$4 = {\n ...props$3,\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n /**\n * Radius of the marker in pixels.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$4 = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n const methods = {\n ...pathMethods,\n setRadius(radius) {\n leafletRef.value.setRadius(radius);\n },\n setLatLng(latLng) {\n leafletRef.value.setLatLng(latLng);\n },\n };\n\n return { options, methods };\n};\n\nconst props$5 = {\n ...props$4,\n /**\n * Radius of the circle in meters.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$5 = (props, leafletRef, context) => {\n const {\n options: circleMarkerOptions,\n methods: circleMarkerMethods,\n } = setup$4(props, leafletRef, context);\n\n const options = {\n ...circleMarkerOptions,\n ...props,\n };\n\n const methods = {\n ...circleMarkerMethods,\n };\n\n return { options, methods };\n};\n\n/**\n * Circle component, lets you add and personalize circles on the map\n */\nvar script = {\n name: \"LCircle\",\n props: props$5,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$5(props, leafletRef, context);\n\n onMounted(async () => {\n const { circle, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circle(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript.__file = \"src/components/LCircle.vue\";\n\n/**\n * Circle Marker component, lets you add and personalize circle markers on the map\n */\nvar script$1 = {\n name: \"LCircleMarker\",\n props: props$4,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$4(props, leafletRef, context);\n\n onMounted(async () => {\n const { circleMarker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circleMarker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$1.__file = \"src/components/LCircleMarker.vue\";\n\nconst props$6 = {\n ...props,\n position: {\n type: String,\n default: \"topright\",\n },\n};\n\nconst setup$6 = (props, leafletRef) => {\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n const options = {\n ...componentOptions,\n position: props.position,\n };\n\n const methods = {\n ...componentMethods,\n setPosition(position) {\n if (leafletRef.value) {\n leafletRef.value.setPosition(position);\n }\n },\n };\n\n onUnmounted(() => {\n if (leafletRef.value) {\n leafletRef.value.remove();\n }\n });\n\n return { options, methods };\n};\n\nconst render$1 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nvar script$2 = {\n name: \"LControl\",\n props: {\n ...props$6,\n disableClickPropagation: {\n type: Boolean,\n custom: true,\n default: true,\n },\n disableScrollPropagation: {\n type: Boolean,\n custom: true,\n default: false,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$6(props, leafletRef);\n\n onMounted(async () => {\n const { Control, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const LControl = Control.extend({\n onAdd() {\n return root.value;\n },\n });\n\n leafletRef.value = new LControl(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n\n if (props.disableClickPropagation) {\n DomEvent.disableClickPropagation(root.value);\n }\n if (props.disableScrollPropagation) {\n DomEvent.disableScrollPropagation(root.value);\n }\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$1(this.$slots);\n },\n};\n\nscript$2.__file = \"src/components/LControl.vue\";\n\nconst props$7 = {\n ...props$6,\n prefix: {\n type: String,\n default: \"Vue-Leaflet\",\n custom: true,\n },\n};\n\nconst setup$7 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n prefix: props.prefix,\n };\n\n const methods = {\n ...controlMethods,\n setPrefix(prefix) {\n leafletRef.value.setPrefix(prefix);\n },\n };\n\n return { options, methods };\n};\n\nvar script$3 = {\n name: \"LControlAttribution\",\n props: props$7,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$7(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.attribution(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$3.__file = \"src/components/LControlAttribution.vue\";\n\nconst props$8 = {\n ...props$6,\n collapsed: {\n type: Boolean,\n default: true,\n },\n autoZIndex: {\n type: Boolean,\n default: true,\n },\n hideSingleBase: {\n type: Boolean,\n default: false,\n },\n sortLayers: {\n type: Boolean,\n default: false,\n },\n sortFunction: {\n type: Function,\n default: undefined,\n },\n};\n\nconst setup$8 = (props, leafletRef) => {\n const { options: controlOptions } = setup$6(props, leafletRef);\n const options = {\n ...controlOptions,\n collapsed: props.collapsed,\n autoZIndex: props.autoZIndex,\n hideSingleBase: props.hideSingleBase,\n sortLayers: props.sortLayers,\n sortFunction: props.sortFunction,\n };\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType === \"base\") {\n leafletRef.value.addBaseLayer(layer.leafletObject, layer.name);\n } else if (layer.layerType === \"overlay\") {\n leafletRef.value.addOverlay(layer.leafletObject, layer.name);\n }\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n return { options, methods };\n};\n\nvar script$4 = {\n name: \"LControlLayers\",\n props: props$8,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerLayerControl = inject(\"registerLayerControl\");\n\n const { options, methods } = setup$8(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.layers(null, null, options);\n\n propsBinder(methods, leafletRef.value, props);\n\n registerLayerControl({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$4.__file = \"src/components/LControlLayers.vue\";\n\nconst props$9 = {\n ...props$6,\n maxWidth: {\n type: Number,\n default: 100,\n },\n metric: {\n type: Boolean,\n default: true,\n },\n imperial: {\n type: Boolean,\n default: true,\n },\n updateWhenIdle: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$9 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n maxWidth: props.maxWidth,\n metric: props.metric,\n imperial: props.imperial,\n updateWhenIdle: props.updateWhenIdle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$5 = {\n name: \"LControlScale\",\n props: props$9,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$9(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.scale(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$5.__file = \"src/components/LControlScale.vue\";\n\nconst props$a = {\n ...props$6,\n zoomInText: {\n type: String,\n default: \"+\",\n },\n zoomInTitle: {\n type: String,\n default: \"Zoom in\",\n },\n zoomOutText: {\n type: String,\n default: \"-\",\n },\n zoomOutTitle: {\n type: String,\n default: \"Zoom out\",\n },\n};\n\nconst setup$a = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n zoomInText: props.zoomInText,\n zoomInTitle: props.zoomInTitle,\n zoomOutText: props.zoomOutText,\n zoomOutTitle: props.zoomOutTitle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$6 = {\n name: \"LControlZoom\",\n props: props$a,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$a(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.zoom(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$6.__file = \"src/components/LControlZoom.vue\";\n\nconst props$b = {\n ...props$1,\n};\n\nconst setup$b = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n };\n\n const methods = {\n ...layerMethods,\n addLayer(layer) {\n leafletRef.value.addLayer(layer.leafletObject);\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n\n provide(\"addLayer\", methods.addLayer);\n provide(\"removeLayer\", methods.removeLayer);\n\n return { options, methods };\n};\n\nconst props$c = {\n ...props$b,\n};\n\nconst setup$c = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n };\n\n return { options, methods };\n};\n\nvar script$7 = {\n props: props$c,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$c(props, leafletRef);\n\n onMounted(async () => {\n const { featureGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = featureGroup(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$7.__file = \"src/components/LFeatureGroup.vue\";\n\nconst props$d = {\n ...props$b,\n geojson: {\n type: [Object, Array],\n default: () => ({}),\n },\n};\n\nconst setup$d = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n setGeojson(newVal) {\n leafletRef.value.clearLayers();\n leafletRef.value.addData(newVal);\n },\n getGeoJSONData() {\n return leafletRef.value.toGeoJSON();\n },\n getBounds() {\n return leafletRef.value.getBounds();\n },\n };\n\n return { options, methods };\n};\n\nvar script$8 = {\n props: props$d,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$d(props, leafletRef);\n\n onMounted(async () => {\n const { geoJSON, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = geoJSON(props.geojson, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$8.__file = \"src/components/LGeoJson.vue\";\n\nconst props$e = {\n ...props$1,\n pane: {\n type: String,\n default: \"tilePane\",\n },\n opacity: {\n type: Number,\n custom: false,\n default: 1.0,\n },\n zIndex: {\n type: Number,\n default: 1,\n },\n tileSize: {\n type: Number,\n default: 256,\n },\n noWrap: {\n type: Boolean,\n default: false,\n },\n minZoom: {\n type: Number,\n default: 0,\n },\n maxZoom: {\n type: Number,\n default: undefined,\n },\n};\n\nconst setup$e = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n pane: props.pane,\n opacity: props.opacity,\n zIndex: props.zIndex,\n tileSize: props.tileSize,\n noWrap: props.noWrap,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n };\n return { options, methods: { ...layerMethods } };\n};\n\nvar script$9 = {\n props: {\n ...props$e,\n childRender: {\n type: Function,\n required: true,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const tileComponents = ref({});\n const root = ref(null);\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$e(props, leafletRef, context);\n\n onMounted(async () => {\n const { GridLayer, DomEvent, DomUtil } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n methods.onUnload = (e) => {\n const key = leafletRef.value._tileCoordsToKey(e.coords);\n if (tileComponents[key]) {\n tileComponents[key].innerHTML = \"\";\n tileComponents[key] = undefined;\n }\n };\n\n methods.setTileComponent = () => {\n leafletRef.value.redraw();\n };\n\n const GLayer = GridLayer.extend({\n createTile(coords) {\n const key = leafletRef.value._tileCoordsToKey(coords);\n tileComponents[key] = DomUtil.create(\"div\");\n\n let vNode = h(\n { setup: props.childRender, props: [\"coords\"] },\n { coords }\n );\n render$3(vNode, tileComponents[key]);\n\n return tileComponents[key];\n },\n });\n\n leafletRef.value = new GLayer(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"tileunload\", methods.onUnload);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n onUnmounted(() => {\n leafletRef.value.off(\"tileunload\", methods.unLoad);\n });\n\n return { root, ready, leafletObject: leafletRef };\n },\n render() {\n if (this.ready) {\n return h(\"div\", { style: { display: \"none\" }, ref: \"root\" });\n }\n return null;\n },\n};\n\nscript$9.__file = \"src/components/LGridLayer.vue\";\n\nconst props$f = {\n iconUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n iconAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n popupAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n tooltipAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n shadowUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n shadowAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n bgPos: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n className: {\n type: String,\n custom: true,\n default: \"\",\n },\n options: {\n type: Object,\n custom: true,\n default: () => ({}),\n },\n};\n\n/**\n * Icon component, lets you add and custom icons to the map\n */\nvar script$a = {\n name: \"LIcon\",\n props: {\n ...props$f,\n ...props,\n },\n setup(props, context) {\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const canSetParentHtml = inject(\"canSetParentHtml\");\n const setParentHtml = inject(\"setParentHtml\");\n const setIcon = inject(\"setIcon\");\n\n let onDomEvent;\n let offDomEvent;\n let divIcon;\n let icon;\n let iconObject = undefined;\n\n const createIcon = (el, recreationNeeded, htmlSwapNeeded) => {\n const elHtml = el && el.innerHTML;\n if (!recreationNeeded) {\n if (htmlSwapNeeded && iconObject && canSetParentHtml()) {\n setParentHtml(elHtml);\n }\n return;\n }\n\n const listeners = remapEvents(context.attrs);\n if (iconObject) {\n offDomEvent(iconObject, listeners);\n }\n\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n iconUrl: props.iconUrl,\n iconRetinaUrl: props.iconRetinaUrl,\n iconSize: props.iconSize,\n iconAnchor: props.iconAnchor,\n popupAnchor: props.popupAnchor,\n tooltipAnchor: props.tooltipAnchor,\n shadowUrl: props.shadowUrl,\n shadowRetinaUrl: props.shadowRetinaUrl,\n shadowSize: props.shadowSize,\n shadowAnchor: props.shadowAnchor,\n bgPos: props.bgPos,\n className: props.className,\n html: elHtml || props.html,\n };\n\n iconObject = options.html ? divIcon(options) : icon(options);\n onDomEvent(iconObject, listeners);\n setIcon(iconObject);\n };\n\n const scheduleCreateIcon = () => {\n nextTick(() => createIcon(root.value, true, false));\n };\n\n const scheduleHtmlSwap = () => {\n nextTick(() => createIcon(root.value, false, true));\n };\n\n const methods = {\n setIconUrl: scheduleCreateIcon,\n setIconRetinaUrl: scheduleCreateIcon,\n setIconSize: scheduleCreateIcon,\n setIconAnchor: scheduleCreateIcon,\n setPopupAnchor: scheduleCreateIcon,\n setTooltipAnchor: scheduleCreateIcon,\n setShadowUrl: scheduleCreateIcon,\n setShadowRetinaUrl: scheduleCreateIcon,\n setShadowAnchor: scheduleCreateIcon,\n setBgPos: scheduleCreateIcon,\n setClassName: scheduleCreateIcon,\n setHtml: scheduleCreateIcon,\n };\n\n onMounted(async () => {\n const { DomEvent, divIcon: lDivIcon, icon: lIcon } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n onDomEvent = DomEvent.on;\n offDomEvent = DomEvent.off;\n divIcon = lDivIcon;\n icon = lIcon;\n\n propsBinder(methods, {}, props);\n\n const observer = new MutationObserver(scheduleHtmlSwap);\n observer.observe(root.value, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n scheduleCreateIcon();\n });\n\n return { root };\n },\n render() {\n const content = this.$slots.default ? this.$slots.default() : undefined;\n return h(\"div\", { ref: \"root\" }, content);\n },\n};\n\nscript$a.__file = \"src/components/LIcon.vue\";\n\n/**\n * @typedef {import('leaflet/dist/leaflet-src.esm.js').LatLngBounds} LatLngBounds\n */\n\nconst props$g = {\n ...props$1,\n url: {\n type: String,\n required: true,\n },\n bounds: {\n type: [Array, Object],\n required: true,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n alt: {\n type: String,\n default: \"\",\n },\n interactive: {\n type: Boolean,\n default: false,\n },\n crossOrigin: {\n type: Boolean,\n default: false,\n },\n errorOverlayUrl: {\n type: String,\n custom: true,\n default: \"\",\n },\n zIndex: {\n type: Number,\n custom: true,\n default: 1,\n },\n className: {\n type: String,\n default: \"\",\n },\n};\n\nconst setup$f = (setupProps, LeafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n setupProps,\n LeafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...setupProps,\n };\n\n const methods = {\n ...layerMethods,\n /**\n * Sets the opacity of the overlay.\n * @param {number} opacity\n */\n setOpacity(opacity) {\n return LeafletRef.value.setOpacity(opacity);\n },\n /**\n * Changes the URL of the image.\n * @param {string} url\n */\n setUrl(url) {\n return LeafletRef.value.setUrl(url);\n },\n /**\n * Update the bounds that this ImageOverlay covers\n * @param {LatLngBounds | Array>} bounds\n */\n setBounds(bounds) {\n return LeafletRef.value.setBounds(bounds);\n },\n /**\n * Get the bounds that this ImageOverlay covers\n * @returns {LatLngBounds}\n */\n getBounds() {\n return LeafletRef.value.getBounds();\n },\n /**\n * Returns the instance of HTMLImageElement used by this overlay.\n * @returns {HTMLElement}\n */\n getElement() {\n return LeafletRef.value.getElement();\n },\n /**\n * Brings the layer to the top of all overlays.\n */\n bringToFront() {\n return LeafletRef.value.bringToFront();\n },\n /**\n * Brings the layer to the bottom of all overlays.\n */\n bringToBack() {\n return LeafletRef.value.bringToBack();\n },\n /**\n * Changes the zIndex of the image overlay.\n * @param {number} zIndex\n */\n setZIndex(zIndex) {\n return LeafletRef.value.setZIndex(zIndex);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * ImageOverlay component, render a plain image instead of a geospatial map.\n */\nvar script$b = {\n name: \"LImageOverlay\",\n props: props$g,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$f(props, leafletRef, context);\n\n onMounted(async () => {\n const { imageOverlay, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = imageOverlay(props.url, props.bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$b.__file = \"src/components/LImageOverlay.vue\";\n\nvar script$c = {\n props: props$b,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods } = setup$b(props, leafletRef, context);\n\n onMounted(async () => {\n const { layerGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = layerGroup(props.options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$c.__file = \"src/components/LLayerGroup.vue\";\n\nvar script$d = {\n emits: [\"ready\", \"update:zoom\", \"update:center\", \"update:bounds\"],\n props: {\n ...props,\n /**\n * The center of the map, supports .sync modifier\n */\n center: {\n type: [Object, Array],\n default: () => [0, 0],\n },\n /**\n * The bounds of the map, supports .sync modifier\n */\n bounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The max bounds of the map\n */\n maxBounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The zoom of the map, supports .sync modifier\n */\n zoom: {\n type: Number,\n default: 0,\n },\n /**\n * The minZoom of the map\n */\n minZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The maxZoom of the map\n */\n maxZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The paddingBottomRight of the map\n */\n paddingBottomRight: {\n type: Array,\n default: undefined,\n },\n /**\n * The paddingTopLeft of the map\n */\n paddingTopLeft: {\n type: Array,\n default: undefined,\n },\n /**\n * The padding of the map\n */\n padding: {\n type: Array,\n default: undefined,\n },\n /**\n * The worldCopyJump option for the map\n */\n worldCopyJump: {\n type: Boolean,\n default: false,\n },\n /**\n * The CRS to use for the map. Can be an object that defines a coordinate reference\n * system for projecting geographical points into screen coordinates and back\n * (see https://leafletjs.com/reference-1.7.1.html#crs-l-crs-base), or a string\n * name identifying one of Leaflet's defined CRSs, such as \"EPSG4326\".\n */\n crs: {\n type: [String, Object],\n default: \"EPSG3857\",\n },\n maxBoundsViscosity: {\n type: Number,\n default: undefined,\n },\n inertia: {\n type: Boolean,\n default: undefined,\n },\n inertiaDeceleration: {\n type: Number,\n default: undefined,\n },\n inertiaMaxSpeed: {\n type: Number,\n default: undefined,\n },\n easeLinearity: {\n type: Number,\n default: undefined,\n },\n zoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n zoomAnimationThreshold: {\n type: Number,\n default: undefined,\n },\n fadeAnimation: {\n type: Boolean,\n default: undefined,\n },\n markerZoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n noBlockingAnimations: {\n type: Boolean,\n default: false,\n },\n useGlobalLeaflet: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, context) {\n const root = ref(null);\n const blueprint = reactive({\n ready: false,\n leafletRef: {},\n layersToAdd: [],\n layersInControl: [],\n });\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n maxBounds: props.maxBounds,\n maxBoundsViscosity: props.maxBoundsViscosity,\n worldCopyJump: props.worldCopyJump,\n crs: props.crs,\n center: props.center,\n zoom: props.zoom,\n inertia: props.inertia,\n inertiaDeceleration: props.inertiaDeceleration,\n inertiaMaxSpeed: props.inertiaMaxSpeed,\n easeLinearity: props.easeLinearity,\n zoomAnimation: props.zoomAnimation,\n zoomAnimationThreshold: props.zoomAnimationThreshold,\n fadeAnimation: props.fadeAnimation,\n markerZoomAnimation: props.markerZoomAnimation,\n };\n\n const addLayer = provideLeafletWrapper(\"addLayer\");\n const removeLayer = provideLeafletWrapper(\"removeLayer\");\n const registerControl = provideLeafletWrapper(\"registerControl\");\n const registerLayerControl = provideLeafletWrapper(\"registerLayerControl\");\n provide(GLOBAL_LEAFLET_OPT, props.useGlobalLeaflet);\n\n const eventHandlers = {\n moveEndHandler() {\n /**\n * Triggers when zoom is updated\n * @type {number,string}\n */\n context.emit(\"update:zoom\", blueprint.leafletRef.getZoom());\n /**\n * Triggers when center is updated\n * @type {object,array}\n */\n context.emit(\"update:center\", blueprint.leafletRef.getCenter());\n\n /**\n * Triggers when bounds are updated\n * @type {object}\n */\n context.emit(\"update:bounds\", blueprint.leafletRef.getBounds());\n },\n overlayAddHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(true);\n }\n },\n overlayRemoveHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(false);\n }\n },\n };\n\n onMounted(async () => {\n if (props.useGlobalLeaflet) {\n WINDOW_OR_GLOBAL.L = WINDOW_OR_GLOBAL.L || (await import('leaflet'));\n }\n const {\n map,\n CRS,\n Icon,\n latLngBounds,\n latLng,\n DomEvent,\n } = props.useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n try {\n options.beforeMapMount && (await options.beforeMapMount());\n } catch (error) {\n console.error(\n `The following error occurred running the provided beforeMapMount hook ${error.message}`\n );\n }\n\n await resetWebpackIcon(Icon);\n\n const optionsCrs =\n typeof options.crs == \"string\" ? CRS[options.crs] : options.crs;\n options.crs = optionsCrs || CRS.EPSG3857;\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd.push(layer);\n } else {\n const exist = blueprint.layersInControl.find(\n (l) =>\n l.leafletObject._leaflet_id ===\n layer.leafletObject._leaflet_id\n );\n if (!exist) {\n blueprint.layerControl.addLayer(layer);\n blueprint.layersInControl.push(layer);\n }\n }\n }\n if (layer.visible !== false) {\n blueprint.leafletRef.addLayer(layer.leafletObject);\n }\n },\n removeLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd = blueprint.layersToAdd.filter(\n (l) => l.name !== layer.name\n );\n } else {\n blueprint.layerControl.removeLayer(layer.leafletObject);\n blueprint.layersInControl = blueprint.layersInControl.filter(\n (l) =>\n l.leafletObject._leaflet_id !==\n layer.leafletObject._leaflet_id\n );\n }\n }\n blueprint.leafletRef.removeLayer(layer.leafletObject);\n },\n\n registerLayerControl(lControlLayer) {\n blueprint.layerControl = lControlLayer;\n blueprint.layersToAdd.forEach((layer) => {\n blueprint.layerControl.addLayer(layer);\n });\n blueprint.layersToAdd = [];\n\n registerControl(lControlLayer);\n },\n\n registerControl(lControl) {\n blueprint.leafletRef.addControl(lControl.leafletObject);\n },\n\n setZoom(newVal) {\n const zoom = blueprint.leafletRef.getZoom();\n if (newVal !== zoom) {\n blueprint.leafletRef.setZoom(newVal, {\n animate: props.noBlockingAnimations ? false : null,\n });\n }\n },\n\n setPaddingBottomRight(newVal) {\n blueprint.paddingBottomRight = newVal;\n },\n setPaddingTopLeft(newVal) {\n blueprint.paddingTopLeft = newVal;\n },\n setPadding(newVal) {\n blueprint.padding = newVal;\n },\n setCrs(newVal) {\n const prevBounds = blueprint.leafletRef.getBounds();\n blueprint.leafletRef.options.crs = newVal;\n blueprint.leafletRef.fitBounds(prevBounds, {\n animate: false,\n padding: [0, 0],\n });\n },\n fitBounds(bounds) {\n blueprint.leafletRef.fitBounds(bounds, {\n animate: this.noBlockingAnimations ? false : null,\n });\n },\n setBounds(newVal) {\n if (!newVal) {\n return;\n }\n const newBounds = latLngBounds(newVal);\n if (!newBounds.isValid()) {\n return;\n }\n const oldBounds =\n blueprint.lastSetBounds || blueprint.leafletRef.getBounds();\n const boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals\n if (boundsChanged) {\n blueprint.lastSetBounds = newBounds;\n blueprint.leafletRef.fitBounds(newBounds, this.fitBoundsOptions);\n }\n },\n\n setCenter(newVal) {\n if (newVal == null) {\n return;\n }\n const newCenter = latLng(newVal);\n const oldCenter =\n blueprint.lastSetCenter || blueprint.leafletRef.getCenter();\n if (\n oldCenter.lat !== newCenter.lat ||\n oldCenter.lng !== newCenter.lng\n ) {\n blueprint.lastSetCenter = newCenter;\n blueprint.leafletRef.panTo(newCenter, {\n animate: this.noBlockingAnimations ? false : null,\n });\n }\n },\n };\n\n updateLeafletWrapper(addLayer, methods.addLayer);\n updateLeafletWrapper(removeLayer, methods.removeLayer);\n updateLeafletWrapper(registerControl, methods.registerControl);\n updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);\n\n blueprint.leafletRef = map(root.value, options);\n\n propsBinder(methods, blueprint.leafletRef, props);\n const listeners = remapEvents(context.attrs);\n\n blueprint.leafletRef.on(\n \"moveend\",\n debounce(eventHandlers.moveEndHandler, 100)\n );\n blueprint.leafletRef.on(\"overlayadd\", eventHandlers.overlayAddHandler);\n blueprint.leafletRef.on(\n \"overlayremove\",\n eventHandlers.overlayRemoveHandler\n );\n DomEvent.on(blueprint.leafletRef, listeners);\n blueprint.ready = true;\n nextTick(() => context.emit(\"ready\", blueprint.leafletRef));\n });\n\n onBeforeUnmount(() => {\n if (blueprint.leafletRef) {\n blueprint.leafletRef.remove();\n }\n });\n\n const leafletObject = computed(() => blueprint.leafletRef);\n const ready = computed(() => blueprint.ready);\n return { root, ready, leafletObject };\n },\n render() {\n return h(\n \"div\",\n { style: { width: \"100%\", height: \"100%\" }, ref: \"root\" },\n this.ready ? this.$slots.default() : {}\n );\n },\n};\n\nscript$d.__file = \"src/components/LMap.vue\";\n\nconst props$h = {\n ...props$1,\n pane: {\n type: String,\n default: \"markerPane\",\n },\n draggable: {\n type: Boolean,\n custom: true,\n default: false,\n },\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n icon: {\n type: [Object],\n default: () => undefined,\n custom: false,\n },\n zIndexOffset: {\n type: Number,\n custom: false,\n default: null,\n },\n};\n\nconst setup$g = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerMethods,\n setDraggable(value) {\n if (leafletRef.value.dragging) {\n value\n ? leafletRef.value.dragging.enable()\n : leafletRef.value.dragging.disable();\n }\n },\n latLngSync(event) {\n context.emit(\"update:latLng\", event.latlng);\n context.emit(\"update:lat-lng\", event.latlng);\n },\n setLatLng(newVal) {\n if (newVal == null) {\n return;\n }\n\n if (leafletRef.value) {\n const oldLatLng = leafletRef.value.getLatLng();\n if (!oldLatLng || !oldLatLng.equals(newVal)) {\n leafletRef.value.setLatLng(newVal);\n }\n }\n },\n };\n return { options, methods };\n};\n\n/**\n * Marker component, lets you add and personalize markers on the map\n */\nvar script$e = {\n name: \"LMarker\",\n props: props$h,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n provide(\"canSetParentHtml\", () => !!leafletRef.value.getElement());\n provide(\n \"setParentHtml\",\n (html) => (leafletRef.value.getElement().innerHTML = html)\n );\n provide(\n \"setIcon\",\n (newIcon) => leafletRef.value.setIcon && leafletRef.value.setIcon(newIcon)\n );\n const { options, methods } = setup$g(props, leafletRef, context);\n if (options.icon === undefined) {\n // If the options objection has a property named 'icon', then Leaflet will overwrite\n // the default icon with it for the marker, _even if it is undefined_.\n // This leads to the issue discussed in https://github.com/vue-leaflet/vue-leaflet/issues/130\n delete options.icon;\n }\n\n onMounted(async () => {\n const { marker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = marker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"move\", debounce(methods.latLngSync, 100));\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$e.__file = \"src/components/LMarker.vue\";\n\nconst props$i = {\n ...props$3,\n latLngs: {\n type: Array,\n default: () => [],\n },\n smoothFactor: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n noClip: {\n type: Boolean,\n custom: true,\n default: false,\n },\n};\n\nconst setup$h = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n\n const methods = {\n ...pathMethods,\n setSmoothFactor(smoothFactor) {\n leafletRef.value.setStyle({ smoothFactor });\n },\n setNoClip(noClip) {\n leafletRef.value.setStyle({ noClip });\n },\n addLatLng(latLng) {\n leafletRef.value.addLatLng(latLng);\n },\n };\n return { options, methods };\n};\n\nconst props$j = {\n ...props$i,\n};\n\nconst setup$i = (props, leafletRef, context) => {\n const { options: polylineOptions, methods: polylineMethods } = setup$h(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polylineOptions,\n ...props,\n };\n\n const methods = {\n ...polylineMethods,\n toGeoJSON(precision) {\n return leafletRef.value.toGeoJSON(precision);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Polygon component, lets you add and customize polygon regions on the map\n */\nvar script$f = {\n name: \"LPolygon\",\n props: props$j,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$i(props, leafletRef, context);\n\n onMounted(async () => {\n const { polygon, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polygon(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$f.__file = \"src/components/LPolygon.vue\";\n\n/**\n * Polyline component, lets you add and personalize polylines on the map\n */\nvar script$g = {\n name: \"LPolyline\",\n props: props$i,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$h(props, leafletRef, context);\n\n onMounted(async () => {\n const { polyline, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polyline(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$g.__file = \"src/components/LPolyline.vue\";\n\nconst props$k = {\n ...props,\n content: {\n type: String,\n default: null,\n },\n};\n\nconst setup$j = (props, leafletRef) => {\n const { options, methods: componentMethods } = setup(props);\n const methods = {\n ...componentMethods,\n setContent(newVal) {\n if (leafletRef.value && newVal !== null && newVal !== undefined) {\n leafletRef.value.setContent(newVal);\n }\n },\n };\n return { options, methods };\n};\n\nconst render$2 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nconst props$l = {\n ...props$k,\n latLng: {\n type: [Object, Array],\n default: () => [],\n },\n};\n\nconst setup$k = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindPopup = inject(\"unbindPopup\");\n\n onBeforeUnmount(() => {\n unbindPopup();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a popup on the map\n */\nvar script$h = {\n name: \"LPopup\",\n props: props$l,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindPopup = inject(\"bindPopup\");\n\n const { options, methods } = setup$k(props, leafletRef);\n\n onMounted(async () => {\n const { popup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = popup(options);\n\n if (props.latLng !== undefined) {\n leafletRef.value.setLatLng(props.latLng);\n }\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindPopup({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$h.__file = \"src/components/LPopup.vue\";\n\nconst props$m = {\n ...props$j,\n bounds: {\n type: Array,\n default: undefined,\n },\n};\n\nconst setup$l = (props, leafletRef, context) => {\n const { options: polygonOptions, methods: polygonMethods } = setup$i(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polygonOptions,\n ...props,\n };\n\n const methods = {\n ...polygonMethods,\n setBounds(latLngBounds) {\n leafletRef.value.setBounds(latLngBounds);\n },\n setLatLngs(latLngs) {\n // Calling setLatLngs on a Leaflet rectangle will convert it\n // to a polygon. So instead, we call setBounds here to ensure\n // that the rectangle remains a rectangle, defined by the\n // bounds of the points in the latLngs array.\n leafletRef.value.setBounds(latLngs);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Rectangle component, lets you add and customize rectangular regions on the map\n */\nvar script$i = {\n name: \"LRectangle\",\n props: props$m,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$l(props, leafletRef, context);\n\n onMounted(async () => {\n const { rectangle, latLngBounds, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const bounds =\n props.bounds && props.bounds.length\n ? latLngBounds(props.bounds)\n : latLngBounds(props.latLngs);\n leafletRef.value = rectangle(bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$i.__file = \"src/components/LRectangle.vue\";\n\nconst props$n = {\n ...props$e,\n tms: {\n type: Boolean,\n default: false,\n },\n subdomains: {\n type: String,\n default: \"abc\",\n },\n detectRetina: {\n type: Boolean,\n default: false,\n },\n url: {\n type: String,\n default: null,\n },\n};\n\nconst setup$m = (props, leafletRef) => {\n const {\n options: gridLayerOptions,\n methods: gridLayerMethods,\n } = setup$e(props, leafletRef);\n const options = {\n ...gridLayerOptions,\n tms: props.tms,\n subdomains: props.subdomains,\n detectRetina: props.detectRetina,\n };\n return {\n options,\n methods: {\n ...gridLayerMethods,\n },\n };\n};\n\nvar script$j = {\n props: props$n,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$m(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = tileLayer(props.url, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { leafletObject: leafletRef };\n },\n render() {\n return null;\n },\n};\n\nscript$j.__file = \"src/components/LTileLayer.vue\";\n\nconst props$o = {\n ...props$k,\n};\n\nconst setup$n = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindTooltip = inject(\"unbindTooltip\");\n\n onBeforeUnmount(() => {\n unbindTooltip();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a tooltip on the map\n */\nvar script$k = {\n name: \"LTooltip\",\n props: props$o,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindTooltip = inject(\"bindTooltip\");\n\n const { options, methods } = setup$n(props, leafletRef);\n\n onMounted(async () => {\n const { tooltip, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tooltip(options);\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindTooltip({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$k.__file = \"src/components/LTooltip.vue\";\n\nconst props$p = {\n ...props$n,\n baseUrl: {\n type: String,\n default: null,\n required: true,\n },\n layers: {\n type: String,\n default: \"\",\n },\n styles: {\n type: String,\n default: \"\",\n },\n format: {\n type: String,\n default: \"image/jpeg\",\n },\n transparent: {\n type: Boolean,\n custom: false,\n },\n version: {\n type: String,\n default: \"1.1.1\",\n },\n crs: {\n default: null,\n },\n upperCase: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$o = (props, leafletRef) => {\n const {\n options: tileLayerOptions,\n methods: tileLayerMethods,\n } = setup$m(props, leafletRef);\n const options = {\n ...tileLayerOptions,\n layers: props.layers,\n styles: props.styles,\n format: props.format,\n transparent: props.transparent,\n version: props.version,\n crs: props.crs,\n upperCase: props.upperCase,\n };\n return {\n options,\n methods: {\n ...tileLayerMethods,\n },\n };\n};\n\nvar script$l = {\n props: props$p,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$o(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tileLayer.wms(props.baseUrl, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$l.__file = \"src/components/LWmsTileLayer.vue\";\n\nexport { script as LCircle, script$1 as LCircleMarker, script$2 as LControl, script$3 as LControlAttribution, script$4 as LControlLayers, script$5 as LControlScale, script$6 as LControlZoom, script$7 as LFeatureGroup, script$8 as LGeoJson, script$9 as LGridLayer, script$a as LIcon, script$b as LImageOverlay, script$c as LLayerGroup, script$d as LMap, script$e as LMarker, script$f as LPolygon, script$g as LPolyline, script$h as LPopup, script$i as LRectangle, script$j as LTileLayer, script$k as LTooltip, script$l as LWmsTileLayer };\n//# sourceMappingURL=vue-leaflet.esm.js.map\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vModelText as _vModelText, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20a704bc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-form\" }\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-item-radio\"\n}\nconst _hoisted_5 = [\"checked\", \"disabled\"]\nconst _hoisted_6 = { for: \"withGpx\" }\nconst _hoisted_7 = [\"checked\", \"disabled\"]\nconst _hoisted_8 = { for: \"withoutGpx\" }\nconst _hoisted_9 = { class: \"form-item\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"form-item\"\n}\nconst _hoisted_13 = { for: \"gpxFile\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { class: \"files-help info-box\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"form-item\"\n}\nconst _hoisted_17 = { for: \"title\" }\nconst _hoisted_18 = [\"required\", \"disabled\"]\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = { class: \"workout-date-duration\" }\nconst _hoisted_21 = { class: \"form-item\" }\nconst _hoisted_22 = { class: \"workout-date-time\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\"]\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = [\"disabled\"]\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_28 = [\"disabled\"]\nconst _hoisted_29 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_30 = [\"disabled\"]\nconst _hoisted_31 = { class: \"form-item\" }\nconst _hoisted_32 = [\"disabled\"]\nconst _hoisted_33 = { class: \"form-item\" }\nconst _hoisted_34 = { key: 1 }\nconst _hoisted_35 = {\n key: 2,\n class: \"form-buttons\"\n}\nconst _hoisted_36 = [\"disabled\"]\nconst _hoisted_37 = [\"onClick\"]\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n withDefaults,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout, IWorkoutForm } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n authUser: IUserProfile\n sports: ISport[]\n isCreation?: boolean\n loading?: boolean\n workout?: IWorkout\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n sports: null,\n isCreation: { default: false },\n loading: { default: false },\n workout: { default: () => ({} as IWorkout) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IUserProfile, sports: ISport[], isCreation: boolean, loading: boolean, workout: IWorkout }\n\n \n\n const { t } = useI18n()\n const store = useStore()\n const router = useRouter()\n\n const { workout, isCreation, loading } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const gpx_limit_import = appConfig.value.gpx_limit_import\n const zipSizeLimit = appConfig.value.max_zip_file_size\n ? getReadableFileSize(appConfig.value.max_zip_file_size)\n : ''\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const workoutForm = reactive({\n sport_id: '',\n title: '',\n notes: '',\n workoutDate: '',\n workoutTime: '',\n workoutDurationHour: '',\n workoutDurationMinutes: '',\n workoutDurationSeconds: '',\n workoutDistance: '',\n })\n let withGpx = ref(\n props.workout.id ? props.workout.with_gpx : props.isCreation\n )\n let gpxFile: File | null = null\n const formErrors = ref(false)\n\n onMounted(() => {\n if (props.workout.id) {\n formatWorkoutForm(props.workout)\n }\n })\n\n function updateNotes(value: string) {\n workoutForm.notes = value\n }\n function updateWithGpx() {\n withGpx.value = !withGpx.value\n formErrors.value = false\n }\n function updateFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n gpxFile = event.target.files[0]\n }\n }\n function formatWorkoutForm(workout: IWorkout) {\n workoutForm.sport_id = `${workout.sport_id}`\n workoutForm.title = workout.title\n workoutForm.notes = workout.notes\n if (!workout.with_gpx) {\n const workoutDateTime = formatWorkoutDate(\n getDateWithTZ(workout.workout_date, props.authUser.timezone),\n 'yyyy-MM-dd'\n )\n const duration = workout.duration.split(':')\n workoutForm.workoutDistance = `${workout.distance}`\n workoutForm.workoutDate = workoutDateTime.workout_date\n workoutForm.workoutTime = workoutDateTime.workout_time\n workoutForm.workoutDurationHour = duration[0]\n workoutForm.workoutDurationMinutes = duration[1]\n workoutForm.workoutDurationSeconds = duration[2]\n }\n }\n function formatPayload(payload: IWorkoutForm) {\n payload.title = workoutForm.title\n payload.distance = +workoutForm.workoutDistance\n payload.duration =\n +workoutForm.workoutDurationHour * 3600 +\n +workoutForm.workoutDurationMinutes * 60 +\n +workoutForm.workoutDurationSeconds\n payload.workout_date = `${workoutForm.workoutDate} ${workoutForm.workoutTime}`\n }\n function updateWorkout() {\n const payload: IWorkoutForm = {\n sport_id: +workoutForm.sport_id,\n notes: workoutForm.notes,\n }\n if (props.workout.id) {\n if (props.workout.with_gpx) {\n payload.title = workoutForm.title\n } else {\n formatPayload(payload)\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT, {\n workoutId: props.workout.id,\n data: payload,\n })\n } else {\n if (withGpx.value) {\n if (!gpxFile) {\n const errorMessage = 'workouts.NO_FILE_PROVIDED'\n store.commit(ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES, errorMessage)\n return\n }\n payload.file = gpxFile\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT, payload)\n } else {\n formatPayload(payload)\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX, payload)\n }\n }\n }\n function onCancel() {\n if (props.workout.id) {\n router.push({\n name: 'Workout',\n params: { workoutId: props.workout.id },\n })\n } else {\n router.go(-1)\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => props.workout,\n async (\n newWorkout: IWorkout | undefined,\n previousWorkout: IWorkout | undefined\n ) => {\n if (newWorkout !== previousWorkout && newWorkout && newWorkout.id) {\n formatWorkoutForm(newWorkout)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"workout-edition\",\n class: _normalizeClass([\"center-card center-card with-margin\", { 'center-form': _unref(workout) && _unref(workout).with_gpx }])\n }, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`workouts.${_unref(isCreation) ? 'ADD' : 'EDIT'}_WORKOUT`)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateWorkout, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isCreation))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withGpx\",\n type: \"radio\",\n checked: _unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.WITH_GPX')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withoutGpx\",\n type: \"radio\",\n checked: !_unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_7),\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.WITHOUT_GPX')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \": \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"sport\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(workoutForm).sport_id) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) => s.is_active), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_11))\n }), 128))\n ], 40, _hoisted_10), [\n [_vModelSelect, _unref(workoutForm).sport_id]\n ])\n ]),\n (_unref(isCreation) && _unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \" \" + _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE_DESCRIPTION')) + \": \", 1),\n _createElementVNode(\"input\", {\n id: \"gpxFile\",\n name: \"gpxFile\",\n type: \"file\",\n accept: \".gpx, .zip\",\n disabled: _unref(loading),\n required: \"\",\n onInvalid: invalidateForm,\n onInput: updateFile\n }, null, 40, _hoisted_14),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.NO_FOLDER')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_FILES')) + \": \" + _toDisplayString(_unref(gpx_limit_import)), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(zipSizeLimit)), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('workouts.TITLE')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"title\",\n name: \"title\",\n type: \"text\",\n required: !_unref(isCreation),\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(workoutForm).title) = $event))\n }, null, 40, _hoisted_18), [\n [_vModelText, _unref(workoutForm).title]\n ])\n ])),\n (!_unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT_DATE')) + \":\", 1),\n _createElementVNode(\"div\", _hoisted_22, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-date\",\n name: \"workout-date\",\n type: \"date\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(workoutForm).workoutDate) = $event))\n }, null, 40, _hoisted_23), [\n [_vModelText, _unref(workoutForm).workoutDate]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-time\",\n name: \"workout-time\",\n class: \"workout-time\",\n type: \"time\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(workoutForm).workoutTime) = $event))\n }, null, 40, _hoisted_24), [\n [_vModelText, _unref(workoutForm).workoutTime]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \":\", 1),\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-hour\",\n name: \"workout-duration-hour\",\n class: \"workout-duration\",\n type: \"text\",\n placeholder: \"HH\",\n pattern: \"^([0-9]*[0-9])$\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(workoutForm).workoutDurationHour) = $event))\n }, null, 40, _hoisted_26), [\n [_vModelText, _unref(workoutForm).workoutDurationHour]\n ]),\n _hoisted_27,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-minutes\",\n name: \"workout-duration-minutes\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n placeholder: \"MM\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(workoutForm).workoutDurationMinutes) = $event))\n }, null, 40, _hoisted_28), [\n [_vModelText, _unref(workoutForm).workoutDurationMinutes]\n ]),\n _hoisted_29,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-seconds\",\n name: \"workout-duration-seconds\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n placeholder: \"SS\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(workoutForm).workoutDurationSeconds) = $event))\n }, null, 40, _hoisted_30), [\n [_vModelText, _unref(workoutForm).workoutDurationSeconds]\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (km):\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n name: \"workout-distance\",\n type: \"number\",\n min: \"0\",\n step: \"0.01\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(workoutForm).workoutDistance) = $event))\n }, null, 40, _hoisted_32), [\n [_vModelText, _unref(workoutForm).workoutDistance]\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.NOTES')) + \": \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"notes\",\n input: _unref(workoutForm).notes,\n disabled: _unref(loading),\n onUpdateValue: updateNotes\n }, null, 8, [\"input\", \"disabled\"])\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(loading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_34, [\n _createVNode(_component_Loader)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: _unref(loading)\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_36),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_37)\n ]))\n ], 42, _hoisted_2)\n ])\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutEdition.vue?vue&type=style&index=0&id=20a704bc&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20a704bc\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"add-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { ComputedRef, computed } from 'vue'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(WorkoutEdition, {\n authUser: _unref(authUser),\n sports: _unref(sports),\n isCreation: true,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"loading\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=45d17286&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"edit-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { computed, watch, onBeforeMount, ComputedRef } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\n onBeforeMount(() => {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: route.params.workoutId,\n })\n })\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (!newWorkoutId) {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(WorkoutEdition, {\n authUser: _unref(authUser),\n sports: _unref(sports),\n workout: _unref(workoutData).workout,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"workout\", \"loading\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutMap.vue?vue&type=style&index=0&id=b4b3006a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutNotes.vue?vue&type=style&index=0&id=64197f7a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutEdition.vue?vue&type=style&index=0&id=20a704bc&lang=scss&scoped=true\"","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).toGeoJSON={})}(this,(function(e){\"use strict\";function t(e){return e&&e.normalize&&e.normalize(),e&&e.textContent||\"\"}function n(e,t){const n=e.getElementsByTagName(t);return n.length?n[0]:null}function o(e){const o={};if(e){const s=n(e,\"line\");if(s){const e=t(n(s,\"color\")),r=parseFloat(t(n(s,\"opacity\"))),i=parseFloat(t(n(s,\"width\")));e&&(o.stroke=e),isNaN(r)||(o[\"stroke-opacity\"]=r),isNaN(i)||(o[\"stroke-width\"]=96*i/25.4)}}return o}function s(e,o){const s={};let r,i;for(i=0;i1,g=Object.assign(r(e),o(n(e,\"extensions\")),{_gpxType:\"trk\"},i.length?{coordinateProperties:{times:c?i:i[0]}}:{});for(let e=0;enew Array(e.line.length).fill(null)))),t[n][e]=o):t[n]=o}}return{type:\"Feature\",properties:g,geometry:c?{type:\"MultiLineString\",coordinates:s}:{type:\"LineString\",coordinates:s[0]}}}function*g(e){const t=e.getElementsByTagName(\"trk\"),n=e.getElementsByTagName(\"rte\"),o=e.getElementsByTagName(\"wpt\");for(let e=0;eArray(e.length).fill(null)))),c[n][e]=t[n])}if(0!==s.length)return(r.length||i.length)&&(c.coordinateProperties=Object.assign(r.length?{times:1===s.length?r[0]:r}:{},i.length?{heart:1===s.length?i[0]:i}:{})),{type:\"Feature\",properties:c,geometry:{type:1===s.length?\"LineString\":\"MultiLineString\",coordinates:1===s.length?s[0]:s}}}function*y(e){const t=e.getElementsByTagName(\"Lap\");for(let e=0;e0?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",ie,[Object(o["createVNode"])(X["a"],{class:"top-pagination",pagination:Object(o["unref"])(b),path:"/workouts",query:Object(o["unref"])(O)},null,8,["pagination","query"]),Object(o["createElementVNode"])("table",null,[Object(o["createElementVNode"])("thead",null,[Object(o["createElementVNode"])("tr",null,[se,Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",1))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DATE"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DISTANCE"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DURATION"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.AVE_SPEED"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.MAX_SPEED"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.ASCENT"))),1),Object(o["createElementVNode"])("th",null,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.DESCENT"))),1)])]),Object(o["createElementVNode"])("tbody",null,[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(d),(function(c){return Object(o["openBlock"])(),Object(o["createElementBlock"])("tr",{key:c.id},[Object(o["createElementVNode"])("td",de,[Object(o["createElementVNode"])("span",be,Object(o["toDisplayString"])(e.$t("workouts.SPORT",1)),1),Object(o["createVNode"])(n,{title:Object(o["unref"])(i).filter((function(e){return e.id===c.sport_id}))[0].translatedLabel,"sport-label":Object(o["unref"])(i).filter((function(e){return e.id===c.sport_id}))[0].label},null,8,["title","sport-label"])]),Object(o["createElementVNode"])("td",{class:"workout-title",onMouseover:function(e){return g(c.id)},onMouseleave:t[0]||(t[0]=function(e){return g(null)})},[Object(o["createElementVNode"])("span",pe,Object(o["toDisplayString"])(Object(o["capitalize"])(e.$t("workouts.WORKOUT",1))),1),Object(o["createVNode"])(r,{class:"nav-item",to:{name:"Workout",params:{workoutId:c.id}}},{default:Object(o["withCtx"])((function(){return[c.with_gpx?(Object(o["openBlock"])(),Object(o["createElementBlock"])("i",me)):Object(o["createCommentVNode"])("",!0),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.title),1)]})),_:2},1032,["to"]),c.with_gpx&&p.value===c.id?(Object(o["openBlock"])(),Object(o["createBlock"])(J["a"],{key:0,workout:c,"display-hover":!0},null,8,["workout"])):Object(o["createCommentVNode"])("",!0)],40,Oe),Object(o["createElementVNode"])("td",null,[Object(o["createElementVNode"])("span",je,Object(o["toDisplayString"])(e.$t("workouts.DATE")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(Object(o["unref"])(K["a"])(Object(o["unref"])(ne["c"])(c.workout_date,Object(o["unref"])(u).timezone),"dd/MM/yyyy HH:mm")),1)]),Object(o["createElementVNode"])("td",fe,[Object(o["createElementVNode"])("span",ge,Object(o["toDisplayString"])(e.$t("workouts.DISTANCE")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(Number(c.distance).toFixed(2))+" km ",1)]),Object(o["createElementVNode"])("td",ke,[Object(o["createElementVNode"])("span",ye,Object(o["toDisplayString"])(e.$t("workouts.DURATION")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.moving),1)]),Object(o["createElementVNode"])("td",ve,[Object(o["createElementVNode"])("span",Ee,Object(o["toDisplayString"])(e.$t("workouts.AVE_SPEED")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.ave_speed)+" km/h ",1)]),Object(o["createElementVNode"])("td",he,[Object(o["createElementVNode"])("span",we,Object(o["toDisplayString"])(e.$t("workouts.MAX_SPEED")),1),Object(o["createTextVNode"])(" "+Object(o["toDisplayString"])(c.max_speed)+" km/h ",1)]),Object(o["createElementVNode"])("td",Ne,[Object(o["createElementVNode"])("span",Se,Object(o["toDisplayString"])(e.$t("workouts.ASCENT")),1),c.with_gpx?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",Ve,Object(o["toDisplayString"])(c.ascent)+" m",1)):Object(o["createCommentVNode"])("",!0)]),Object(o["createElementVNode"])("td",Te,[Object(o["createElementVNode"])("span",De,Object(o["toDisplayString"])(e.$t("workouts.DESCENT")),1),c.with_gpx?(Object(o["openBlock"])(),Object(o["createElementBlock"])("span",_e,Object(o["toDisplayString"])(c.descent)+" m",1)):Object(o["createCommentVNode"])("",!0)])])})),128))])]),Object(o["createVNode"])(X["a"],{pagination:Object(o["unref"])(b),path:"/workouts",query:Object(o["unref"])(O)},null,8,["pagination","query"])])):Object(o["createCommentVNode"])("",!0)],2),0===Object(o["unref"])(d).length?(Object(o["openBlock"])(),Object(o["createBlock"])(Y["a"],{key:0})):Object(o["createCommentVNode"])("",!0),xe])}}});n("368b");const Ce=W()(Ae,[["__scopeId","data-v-432ef8ce"]]);var Be=Ce,Re={key:0,id:"workouts",class:"view"},Ie={class:"container workouts-container"},Le={class:"display-filters"},Ue={class:"list-container"},$e=Object(o["defineComponent"])({setup:function(e){var t=Object(r["b"])(),n=t.t,c=Object(ee["a"])(),l=Object(o["computed"])((function(){return c.getters[Q["a"].GETTERS.AUTH_USER_PROFILE]})),u=Object(o["computed"])((function(){return c.getters[Q["c"].GETTERS.SPORTS]})),i=Object(o["computed"])((function(){return Object(a["d"])(u.value,n)})),s=Object(o["ref"])(!0);function d(){s.value=!s.value}return function(e,t){return Object(o["unref"])(l).username?(Object(o["openBlock"])(),Object(o["createElementBlock"])("div",Re,[Object(o["createElementVNode"])("div",Ie,[Object(o["createElementVNode"])("div",{class:Object(o["normalizeClass"])(["filters-container",{hidden:s.value}])},[Object(o["createVNode"])(H,{sports:Object(o["unref"])(i),authUser:Object(o["unref"])(l),onFilter:d},null,8,["sports","authUser"])],2),Object(o["createElementVNode"])("div",Le,[Object(o["createElementVNode"])("div",{onClick:d},[Object(o["createElementVNode"])("i",{class:Object(o["normalizeClass"])("fa fa-caret-".concat(s.value?"down":"up")),"aria-hidden":"true"},null,2),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.$t("workouts.".concat(s.value?"DISPLAY":"HIDE","_FILTERS"))),1)])]),Object(o["createElementVNode"])("div",Ue,[Object(o["createVNode"])(Be,{user:Object(o["unref"])(l),sports:Object(o["unref"])(i)},null,8,["user","sports"])])])])):Object(o["createCommentVNode"])("",!0)}}});n("0d8e");const Me=W()($e,[["__scopeId","data-v-ed6df5ba"]]);t["default"]=Me},"03a1":function(e,t,n){},"05f5":function(e,t,n){},"077d":function(e,t,n){"use strict";n("17e2")},"0b59":function(e,t,n){"use strict";n("8a7e")},"0d8e":function(e,t,n){"use strict";n("8f45")},"17e2":function(e,t,n){},"1a5f":function(e,t,n){"use strict";n("46cf")},"1aeb":function(e,t,n){"use strict";n("a659")},"304a":function(e,t,n){"use strict";n.r(t);var o=n("1da1"),r=(n("96cf"),n("7a23")),c=n("6c02"),a=n("f7f9"),l=n("ade3"),u=(n("e9c4"),n("b680"),n("a9e3"),n("99af"),n("ac1f"),n("5319"),n("b48c")),i=n("47e2"),s=n("9230"),d={id:"workout-chart"},b={class:"chart-radio"},O=["checked"],p=["checked"],m={class:"chart-info"},j={class:"no-data-cleaning"},f={class:"elevation-start"},g=["checked"],k=Object(r["defineComponent"])({props:{authUser:null,workoutData:null},emits:["getCoordinates"],setup:function(e,t){var n=t.emit,o=e,c=Object(i["b"])(),a=c.t,k=Object(r["ref"])(!0),y=Object(r["ref"])(!0),v=Object(r["computed"])((function(){return Object(s["b"])(o.workoutData.chartData,a)})),E=Object(r["computed"])((function(){return{labels:k.value?v.value.distance_labels:v.value.duration_labels,datasets:JSON.parse(JSON.stringify([v.value.datasets.speed,v.value.datasets.elevation]))}})),h=Object(r["computed"])((function(){return v.value.coordinates})),w=Object(r["computed"])((function(){var e;return{responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:22}},scales:(e={},Object(l["a"])(e,k.value?"xDistance":"xDuration",{grid:{drawOnChartArea:!1},ticks:{count:10,callback:function(e){return k.value?Number(e).toFixed(2):T(e)}},type:"linear",bounds:"data",title:{display:!0,text:k.value?a("workouts.DISTANCE")+" (km)":a("workouts.DURATION")}}),Object(l["a"])(e,"ySpeed",{grid:{drawOnChartArea:!1},position:"left",title:{display:!0,text:a("workouts.SPEED")+" (km/h)"}}),Object(l["a"])(e,"yElevation",{beginAtZero:y.value,grid:{drawOnChartArea:!1},position:"right",title:{display:!0,text:a("workouts.ELEVATION")+" (m)"}}),e),elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function(e){var t=" ".concat(e.dataset.label,": ").concat(e.formattedValue);return"yElevation"===e.dataset.yAxisID?t+" m":t+" km/h"},title:function(e){return e.length>0&&D(h.value[e[0].dataIndex]),0===e.length?"":k.value?"".concat(a("workouts.DISTANCE"),": ").concat(e[0].label," km"):"".concat(a("workouts.DURATION"),": ").concat(T(e[0].label.replace(",","")))}}}}}})),N=Object(u["useLineChart"])({chartData:E,options:w}),S=N.lineChartProps;function V(){k.value=!k.value}function T(e){return new Date(1e3*+e).toISOString().substr(11,8)}function D(e){n("getCoordinates",e)}function _(){D({latitude:null,longitude:null})}return function(e,t){var n=Object(r["resolveComponent"])("Card");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",d,[Object(r["createVNode"])(n,null,{title:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.ANALYSIS")),1)]})),content:Object(r["withCtx"])((function(){return[Object(r["createElementVNode"])("div",b,[Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"distance",checked:Object(r["unref"])(k),onClick:V},null,8,O),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DISTANCE")),1)]),Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"radio",name:"duration",checked:!Object(r["unref"])(k),onClick:V},null,8,p),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DURATION")),1)])]),Object(r["createVNode"])(Object(r["unref"])(u["LineChart"]),Object(r["mergeProps"])(Object(r["unref"])(S),{class:"line-chart",onMouseleave:_}),null,16),Object(r["createElementVNode"])("div",m,[Object(r["createElementVNode"])("div",j,Object(r["toDisplayString"])(e.$t("workouts.NO_DATA_CLEANING")),1),Object(r["createElementVNode"])("div",f,[Object(r["createElementVNode"])("label",null,[Object(r["createElementVNode"])("input",{type:"checkbox",checked:Object(r["unref"])(y),onClick:t[0]||(t[0]=function(e){return Object(r["isRef"])(y)?y.value=!Object(r["unref"])(y):y=!Object(r["unref"])(y)})},null,8,g),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])])]})),_:1})])}}}),y=(n("855e"),n("6b0d")),v=n.n(y);const E=v()(k,[["__scopeId","data-v-6f69d538"]]);var h=E,w=(n("7db0"),n("d3b7"),function(e){return Object(r["pushScopeId"])("data-v-ae31b8b2"),e=e(),Object(r["popScopeId"])(),e}),N={id:"workout-card-title"},S=["title"],V=w((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)})),T=[V],D={class:"workout-card-title"},_={class:"workout-title-date"},x={key:0,class:"workout-title"},A={key:1,class:"workout-title"},C={class:"workout-segment"},B=Object(r["createTextVNode"])(" — "),R=w((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1)})),I={class:"workout-date"},L={class:"workout-link"},U=["title"],$=w((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)})),M=[$],P=Object(r["defineComponent"])({props:{sport:null,workoutObject:null},emits:["displayModal"],setup:function(e,t){var n=t.emit,o=e,c=Object(r["toRefs"])(o),a=c.sport,l=c.workoutObject;return function(e,t){var o=Object(r["resolveComponent"])("SportImage"),c=Object(r["resolveComponent"])("router-link");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",N,[Object(r["createElementVNode"])("div",{class:Object(r["normalizeClass"])(["workout-previous workout-arrow",{inactive:!Object(r["unref"])(l).previousUrl}]),title:Object(r["unref"])(l).previousUrl?e.$t("workouts.PREVIOUS_".concat(Object(r["unref"])(l).type)):e.$t("workouts.NO_PREVIOUS_".concat(Object(r["unref"])(l).type)),onClick:t[0]||(t[0]=function(t){return Object(r["unref"])(l).previousUrl?e.$router.push(Object(r["unref"])(l).previousUrl):null})},T,10,S),Object(r["createElementVNode"])("div",D,[Object(r["createVNode"])(o,{"sport-label":Object(r["unref"])(a).label},null,8,["sport-label"]),Object(r["createElementVNode"])("div",_,["WORKOUT"===Object(r["unref"])(l).type?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",x,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(Object(r["unref"])(l).title)+" ",1),Object(r["createElementVNode"])("i",{class:"fa fa-edit","aria-hidden":"true",onClick:t[1]||(t[1]=function(t){return e.$router.push({name:"EditWorkout",params:{workoutId:Object(r["unref"])(l).workoutId}})})}),Object(r["createElementVNode"])("i",{class:"fa fa-trash","aria-hidden":"true",onClick:t[2]||(t[2]=function(e){return n("displayModal",!0)})})])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",A,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(Object(r["unref"])(l).title)+" ",1),Object(r["createElementVNode"])("span",C,[B,R,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.SEGMENT"))+" "+Object(r["toDisplayString"])(Object(r["unref"])(l).segmentId+1),1)])])),Object(r["createElementVNode"])("div",I,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(Object(r["unref"])(l).workoutDate)+" - "+Object(r["toDisplayString"])(Object(r["unref"])(l).workoutTime)+" ",1),Object(r["createElementVNode"])("span",L,["SEGMENT"===Object(r["unref"])(l).type?(Object(r["openBlock"])(),Object(r["createBlock"])(c,{key:0,to:{name:"Workout",params:{workoutId:Object(r["unref"])(l).workoutId}}},{default:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(" > "+Object(r["toDisplayString"])(e.$t("workouts.BACK_TO_WORKOUT")),1)]})),_:1},8,["to"])):Object(r["createCommentVNode"])("",!0)])])])]),Object(r["createElementVNode"])("div",{class:Object(r["normalizeClass"])(["workout-next workout-arrow",{inactive:!Object(r["unref"])(l).nextUrl}]),title:Object(r["unref"])(l).nextUrl?e.$t("workouts.NEXT_".concat(Object(r["unref"])(l).type)):e.$t("workouts.NO_NEXT_".concat(Object(r["unref"])(l).type)),onClick:t[3]||(t[3]=function(t){return Object(r["unref"])(l).nextUrl?e.$router.push(Object(r["unref"])(l).nextUrl):null})},M,10,U)])}}});n("0b59");const G=v()(P,[["__scopeId","data-v-ae31b8b2"]]);var F=G,W=function(e){return Object(r["pushScopeId"])("data-v-2e8c6844"),e=e(),Object(r["popScopeId"])(),e},z={key:0,class:"workout-record"},H=W((function(){return Object(r["createElementVNode"])("sup",null,[Object(r["createElementVNode"])("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1)})),q=[H],K=Object(r["defineComponent"])({props:{recordType:null,workoutObject:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.recordType,c=n.workoutObject;return function(e,t){return Object(r["unref"])(c).records&&Object(r["unref"])(c).records.find((function(e){return e.record_type===Object(r["unref"])(o)}))?(Object(r["openBlock"])(),Object(r["createElementBlock"])("span",z,q)):Object(r["createCommentVNode"])("",!0)}}});n("4168");const Z=v()(K,[["__scopeId","data-v-2e8c6844"]]);var X=Z,J=function(e){return Object(r["pushScopeId"])("data-v-599592bf"),e=e(),Object(r["popScopeId"])(),e},Y={key:0,id:"workout-weather"},Q={class:"weather-table"},ee=J((function(){return Object(r["createElementVNode"])("th",null,null,-1)})),te={class:"weather-th"},ne=["src","alt","title"],oe={class:"weather-th"},re=["src","alt","title"],ce=["alt","title"],ae=["alt","title"],le=["alt","title"],ue=Object(r["defineComponent"])({props:{workoutObject:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.workoutObject;return function(e,t){return Object(r["unref"])(o).weatherStart&&Object(r["unref"])(o).weatherEnd?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Y,[Object(r["createElementVNode"])("table",Q,[Object(r["createElementVNode"])("thead",null,[Object(r["createElementVNode"])("tr",null,[ee,Object(r["createElementVNode"])("th",null,[Object(r["createElementVNode"])("div",te,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.START"))+" ",1),Object(r["createElementVNode"])("img",{class:"weather-img",src:"/img/weather/".concat(Object(r["unref"])(o).weatherStart.icon,".svg"),alt:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherStart.icon)),title:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherStart.icon))},null,8,ne)])]),Object(r["createElementVNode"])("th",null,[Object(r["createElementVNode"])("div",oe,[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.END"))+" ",1),Object(r["createElementVNode"])("img",{class:"weather-img",src:"/img/weather/".concat(Object(r["unref"])(o).weatherEnd.icon,".svg"),alt:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherEnd.icon)),title:e.$t("workouts.WEATHER.DARK_SKY.".concat(Object(r["unref"])(o).weatherEnd.icon))},null,8,re)])])])]),Object(r["createElementVNode"])("tbody",null,[Object(r["createElementVNode"])("tr",null,[Object(r["createElementVNode"])("td",null,[Object(r["createElementVNode"])("img",{class:"weather-img weather-img-small",src:"/img/weather/temperature.svg",alt:e.$t("workouts.WEATHER.TEMPERATURE"),title:e.$t("workouts.WEATHER.TEMPERATURE")},null,8,ce)]),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherStart.temperature).toFixed(1))+"°C ",1),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherEnd.temperature).toFixed(1))+"°C ",1)]),Object(r["createElementVNode"])("tr",null,[Object(r["createElementVNode"])("td",null,[Object(r["createElementVNode"])("img",{class:"weather-img weather-img-small",src:"/img/weather/pour-rain.svg",alt:e.$t("workouts.WEATHER.HUMIDITY"),title:e.$t("workouts.WEATHER.HUMIDITY")},null,8,ae)]),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(100*Object(r["unref"])(o).weatherStart.humidity).toFixed(1))+"% ",1),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(100*Object(r["unref"])(o).weatherEnd.humidity).toFixed(1))+"% ",1)]),Object(r["createElementVNode"])("tr",null,[Object(r["createElementVNode"])("td",null,[Object(r["createElementVNode"])("img",{class:"weather-img weather-img-small",src:"/img/weather/breeze.svg",alt:e.$t("workouts.WEATHER.WIND"),title:e.$t("workouts.WEATHER.WIND")},null,8,le)]),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherStart.wind).toFixed(1))+"m/s",1),Object(r["createElementVNode"])("td",null,Object(r["toDisplayString"])(Number(Object(r["unref"])(o).weatherEnd.wind).toFixed(1))+"m/s",1)])])])])):Object(r["createCommentVNode"])("",!0)}}});n("077d");const ie=v()(ue,[["__scopeId","data-v-599592bf"]]);var se=ie,de=function(e){return Object(r["pushScopeId"])("data-v-47565031"),e=e(),Object(r["popScopeId"])(),e},be={id:"workout-info"},Oe={class:"workout-data"},pe=de((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)})),me={key:0},je={class:"workout-data"},fe=de((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)})),ge={class:"workout-data"},ke=de((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1)})),ye=de((function(){return Object(r["createElementVNode"])("br",null,null,-1)})),ve={key:0,class:"workout-data"},Ee=["alt"],he=de((function(){return Object(r["createElementVNode"])("br",null,null,-1)})),we={key:1,class:"workout-data"},Ne=de((function(){return Object(r["createElementVNode"])("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)})),Se=de((function(){return Object(r["createElementVNode"])("br",null,null,-1)})),Ve=Object(r["defineComponent"])({props:{workoutObject:null},setup:function(e){var t=e,n=Object(r["toRefs"])(t),o=n.workoutObject,c=Object(r["computed"])((function(){return"0:00:00"!==t.workoutObject.pauses&&null!==t.workoutObject.pauses}));return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",be,[Object(r["createElementVNode"])("div",Oe,[pe,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DURATION"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).moving),1),Object(r["createVNode"])(X,{workoutObject:Object(r["unref"])(o),recordType:"LD"},null,8,["workoutObject"]),Object(r["unref"])(c)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",me,[Object(r["createTextVNode"])(" ("+Object(r["toDisplayString"])(e.$t("workouts.PAUSES"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).pauses),1),Object(r["createTextVNode"])(" - "+Object(r["toDisplayString"])(e.$t("workouts.TOTAL_DURATION"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).duration)+")",1)])):Object(r["createCommentVNode"])("",!0)]),Object(r["createElementVNode"])("div",je,[fe,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DISTANCE"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).distance)+" km",1),Object(r["createVNode"])(X,{workoutObject:Object(r["unref"])(o),recordType:"FD"},null,8,["workoutObject"])]),Object(r["createElementVNode"])("div",ge,[ke,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.AVERAGE_SPEED"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).aveSpeed)+" km/h",1),Object(r["createVNode"])(X,{workoutObject:Object(r["unref"])(o),recordType:"AS"},null,8,["workoutObject"]),ye,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.MAX_SPEED"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).maxSpeed)+" km/h",1),Object(r["createVNode"])(X,{workoutObject:Object(r["unref"])(o),recordType:"MS"},null,8,["workoutObject"])]),null!==Object(r["unref"])(o).maxAlt&&null!==Object(r["unref"])(o).minAlt?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ve,[Object(r["createElementVNode"])("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Ee),Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.MIN_ALTITUDE"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).minAlt)+" m",1),he,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.MAX_ALTITUDE"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).maxAlt)+" m",1)])):Object(r["createCommentVNode"])("",!0),null!==Object(r["unref"])(o).ascent&&null!==Object(r["unref"])(o).descent?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",we,[Ne,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.ASCENT"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).ascent)+" m",1),Se,Object(r["createTextVNode"])(" "+Object(r["toDisplayString"])(e.$t("workouts.DESCENT"))+": ",1),Object(r["createElementVNode"])("span",null,Object(r["toDisplayString"])(Object(r["unref"])(o).descent)+" m",1)])):Object(r["createCommentVNode"])("",!0),Object(r["createVNode"])(se,{workoutObject:Object(r["unref"])(o)},null,8,["workoutObject"])])}}});n("efb4");const Te=v()(Ve,[["__scopeId","data-v-47565031"]]);var De=Te,_e=n("e94f"),xe=n("5afd"),Ae=n("dad5"),Ce=n("2906"),Be=n("d257"),Re={id:"workout-map"},Ie={key:0,class:"leaflet-container"},Le={key:1},Ue={key:0,class:"leaflet-container"},$e={key:1,class:"no-map"},Me=Object(r["defineComponent"])({props:{workoutData:null,markerCoordinates:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(Ce["a"])(),o=Object(r["toRefs"])(t),c=o.workoutData,a=o.markerCoordinates,l=Object(r["ref"])(null),u=Object(r["computed"])((function(){return t.workoutData?[[t.workoutData.workout.bounds[0],t.workoutData.workout.bounds[1]],[t.workoutData.workout.bounds[2],t.workoutData.workout.bounds[3]]]:[]})),i=Object(r["computed"])((function(){return n.getters[Ae["b"].GETTERS.APP_CONFIG]})),s=Object(r["computed"])((function(){return O(u)})),d=Object(r["computed"])((function(){return t.workoutData&&t.workoutData.gpx?b(t.workoutData.gpx):{}}));function b(e){if(!e||""!==e)try{var t=Object(_e["gpx"])((new DOMParser).parseFromString(e,"text/xml"));return{jsonData:t}}catch(n){return console.error("Invalid gpx content"),{}}return{}}function O(e){return[(e.value[0][0]+e.value[1][0])/2,(e.value[0][1]+e.value[1][1])/2]}function p(e){var t,n;null!==(t=l.value)&&void 0!==t&&t.leafletObject&&(null===(n=l.value)||void 0===n||n.leafletObject.fitBounds(e))}return function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Re,[Object(r["unref"])(c).loading?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Ie)):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Le,[Object(r["unref"])(c).workout.with_gpx?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",Ue,[Object(r["unref"])(d).jsonData&&Object(r["unref"])(s)&&2===Object(r["unref"])(u).length?(Object(r["openBlock"])(),Object(r["createBlock"])(Object(r["unref"])(xe["b"]),{key:0,zoom:13,center:Object(r["unref"])(s),bounds:Object(r["unref"])(u),ref:function(e,t){t["workoutMap"]=e,l.value=e},onReady:t[0]||(t[0]=function(e){return p(Object(r["unref"])(u))})},{default:Object(r["withCtx"])((function(){return[Object(r["createVNode"])(Object(r["unref"])(xe["d"]),{url:"".concat(Object(r["unref"])(Be["a"])(),"workouts/map_tile/{s}/{z}/{x}/{y}.png"),attribution:Object(r["unref"])(i).map_attribution,bounds:Object(r["unref"])(u)},null,8,["url","attribution","bounds"]),Object(r["createVNode"])(Object(r["unref"])(xe["a"]),{geojson:Object(r["unref"])(d).jsonData},null,8,["geojson"]),Object(r["unref"])(a).latitude?(Object(r["openBlock"])(),Object(r["createBlock"])(Object(r["unref"])(xe["c"]),{key:0,"lat-lng":[Object(r["unref"])(a).latitude,Object(r["unref"])(a).longitude]},null,8,["lat-lng"])):Object(r["createCommentVNode"])("",!0)]})),_:1},8,["center","bounds"])):Object(r["createCommentVNode"])("",!0)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",$e,Object(r["toDisplayString"])(e.$t("workouts.NO_MAP")),1))]))])}}});n("ac79");const Pe=v()(Me,[["__scopeId","data-v-b4b3006a"]]);var Ge=Pe,Fe=n("5e65"),We={class:"workout-detail"},ze=Object(r["defineComponent"])({props:{authUser:null,displaySegment:null,sports:null,workoutData:null,markerCoordinates:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(c["c"])(),a=Object(Ce["a"])(),l=Object(r["toRefs"])(t),u=l.markerCoordinates,i=l.workoutData,s=Object(r["computed"])((function(){return t.workoutData.workout})),d=Object(r["ref"])(n.params.workoutId?+n.params.segmentId:null),b=Object(r["computed"])((function(){return s.value.segments.length>0&&d.value?s.value.segments[+d.value-1]:null})),O=Object(r["ref"])(!1),p=Object(r["computed"])((function(){return t.sports?t.sports.find((function(e){return e.id===t.workoutData.workout.sport_id})):{}})),m=Object(r["computed"])((function(){return f(s.value,b.value)}));function j(e,t,n){var o=t&&n&&1!==n?"/workouts/".concat(e.id,"/segment/").concat(n-1):!t&&e.previous_workout?"/workouts/".concat(e.previous_workout):null,r=t&&n&&n0?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ct,[Object(r["unref"])(s).workout.id?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",at,[Object(r["createVNode"])(qe,{workoutData:Object(r["unref"])(s),sports:Object(r["unref"])(b),authUser:Object(r["unref"])(d),markerCoordinates:Object(r["unref"])(O),displaySegment:Object(r["unref"])(i)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),Object(r["unref"])(s).workout.with_gpx&&Object(r["unref"])(s).chartData.length>0?(Object(r["openBlock"])(),Object(r["createBlock"])(h,{key:0,workoutData:Object(r["unref"])(s),authUser:Object(r["unref"])(d),displaySegment:Object(r["unref"])(i),onGetCoordinates:p},null,8,["workoutData","authUser","displaySegment"])):Object(r["createCommentVNode"])("",!0),!Object(r["unref"])(i)&&Object(r["unref"])(s).workout.segments.length>1?(Object(r["openBlock"])(),Object(r["createBlock"])(tt,{key:1,segments:Object(r["unref"])(s).workout.segments},null,8,["segments"])):Object(r["createCommentVNode"])("",!0),Object(r["unref"])(i)?Object(r["createCommentVNode"])("",!0):(Object(r["openBlock"])(),Object(r["createBlock"])(Je,{key:2,notes:Object(r["unref"])(s).workout.notes},null,8,["notes"])),lt])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",ut,[Object(r["unref"])(s).loading?Object(r["createCommentVNode"])("",!0):(Object(r["openBlock"])(),Object(r["createBlock"])(a["a"],{key:0,target:"WORKOUT"}))]))])):Object(r["createCommentVNode"])("",!0)])])}}});n("4041");const st=v()(it,[["__scopeId","data-v-87defaa4"]]);t["default"]=st},3311:function(e,t,n){},"368b":function(e,t,n){"use strict";n("fd40")},4041:function(e,t,n){"use strict";n("8956")},4168:function(e,t,n){"use strict";n("696e")},"46cf":function(e,t,n){},"5afd":function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return T})),n.d(t,"b",(function(){return A})),n.d(t,"c",(function(){return R})),n.d(t,"d",(function(){return P}));var o=n("7a23");const r=(e,t)=>{let n;return function(...o){const r=this;n&&clearTimeout(n),n=setTimeout(()=>{e.apply(r,o),n=null},t)}},c=e=>e&&"function"===typeof e.charAt?e.charAt(0).toUpperCase()+e.slice(1):e,a=(e,t,n)=>{for(const r in n){const a="set"+c(r);e[a]?Object(o["watch"])(()=>n[r],(t,n)=>{e[a](t,n)}):t[a]&&Object(o["watch"])(()=>n[r],e=>{t[a](e)})}},l=e=>{const t={};for(const n in e)if(n.startsWith("on")&&!n.startsWith("onUpdate")&&"onReady"!==n){const o=n.slice(2).toLocaleLowerCase();t[o]=e[n]}return t},u=async e=>{const t=await Promise.all([n.e("chunk-2d0c9189").then(n.t.bind(null,"584d",7)),n.e("chunk-2d0cf391").then(n.t.bind(null,"6397",7)),n.e("chunk-2d22523a").then(n.t.bind(null,"e2b9",7))]);delete e.Default.prototype._getIconUrl,e.Default.mergeOptions({iconRetinaUrl:t[0].default,iconUrl:t[1].default,shadowUrl:t[2].default})},i=e=>{const t=Object(o["ref"])(()=>console.warn(`Method ${e} has been invoked without being replaced`)),n=(...e)=>t.value(...e);return n.wrapped=t,Object(o["provide"])(e,n),n},s=(e,t)=>e.wrapped.value=t,d="object"===typeof self&&self.self===self&&self||"object"===typeof e&&e.global===e&&e||void 0,b="useGlobalLeaflet",O={options:{type:Object,default:()=>({})}},p=e=>({options:e.options,methods:{}}),m={...O,pane:{type:String,default:"overlayPane"},attribution:{type:String,default:null},name:{type:String,custom:!0,default:void 0},layerType:{type:String,custom:!0,default:void 0},visible:{type:Boolean,custom:!0,default:!0}},j=(e,t,n)=>{const r=Object(o["inject"])("addLayer"),c=Object(o["inject"])("removeLayer"),{options:a,methods:l}=p(e),u={...a,attribution:e.attribution,pane:e.pane},i=()=>r({leafletObject:t.value}),s=()=>c({leafletObject:t.value}),d={...l,setAttribution(e,t){const n=this.$parent.leafletObject.attributionControl;n.removeAttribution(t).addAttribution(e)},setName(){s(),e.visible&&i()},setLayerType(){s(),e.visible&&i()},setVisible(e){t.value&&(e?i():s())},bindPopup({leafletObject:e}){t.value.bindPopup(e)},bindTooltip({leafletObject:e}){t.value.bindTooltip(e)},unbindTooltip(){const e=t.value?t.value.getTooltip():null;e&&e.unbindTooltip()},unbindPopup(){const e=t.value?t.value.getPopup():null;e&&e.unbindPopup()},updateVisibleProp(e){n.emit("update:visible",e)}};return Object(o["provide"])("bindPopup",d.bindPopup),Object(o["provide"])("bindTooltip",d.bindTooltip),Object(o["provide"])("unbindTooltip",d.unbindTooltip),Object(o["provide"])("unbindPopup",d.unbindPopup),Object(o["onUnmounted"])(()=>{d.unbindPopup(),d.unbindTooltip(),s()}),{options:u,methods:d}},f=(e,t)=>{if(e&&t.default)return Object(o["h"])("div",{style:{display:"none"}},t.default())},g={...O,interactive:{type:Boolean,default:!0},bubblingMouseEvents:{type:Boolean,default:!0}},k={...m,...g,stroke:{type:Boolean,custom:!0,default:!0},color:{type:String,custom:!0,default:"#3388ff"},weight:{type:Number,custom:!0,default:3},opacity:{type:Number,custom:!0,default:1},lineCap:{type:String,custom:!0,default:"round"},lineJoin:{type:String,custom:!0,default:"round"},dashArray:{type:String,custom:!0,default:null},dashOffset:{type:String,custom:!0,default:null},fill:{type:Boolean,custom:!0,default:!1},fillColor:{type:String,custom:!0,default:"#3388ff"},fillOpacity:{type:Number,custom:!0,default:.2},fillRule:{type:String,custom:!0,default:"evenodd"},className:{type:String,custom:!0,default:null}},y={...k,latLng:{type:[Object,Array],custom:!0,default:null},radius:{type:Number,default:null}};const v={...O,position:{type:String,default:"topright"}},E=(e,t)=>{const{options:n,methods:r}=p(e),c={...n,position:e.position},a={...r,setPosition(e){t.value&&t.value.setPosition(e)}};return Object(o["onUnmounted"])(()=>{t.value&&t.value.remove()}),{options:c,methods:a}},h=e=>e.default?Object(o["h"])("div",{ref:"root"},e.default()):null;Boolean,Boolean;Boolean,Boolean,Boolean,Boolean;Boolean,Boolean,Boolean;const w={...m},N=(e,t,n)=>{const{options:r,methods:c}=j(e,t,n),a={...r},l={...c,addLayer(e){t.value.addLayer(e.leafletObject)},removeLayer(e){t.value.removeLayer(e.leafletObject)}};return Object(o["provide"])("addLayer",l.addLayer),Object(o["provide"])("removeLayer",l.removeLayer),{options:a,methods:l}};const S={...w,geojson:{type:[Object,Array],default:()=>({})}},V=(e,t)=>{const{options:n,methods:o}=N(e,t),r={...n,...e},c={...o,setGeojson(e){t.value.clearLayers(),t.value.addData(e)},getGeoJSONData(){return t.value.toGeoJSON()},getBounds(){return t.value.getBounds()}};return{options:r,methods:c}};var T={props:S,setup(e,t){const r=Object(o["ref"])({}),c=Object(o["ref"])(!1),u=Object(o["inject"])(b),i=Object(o["inject"])("addLayer"),{methods:s,options:O}=V(e,r);return Object(o["onMounted"])(async()=>{const{geoJSON:b,DomEvent:p}=u?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));r.value=b(e.geojson,O);const m=l(t.attrs);p.on(r.value,m),a(s,r.value,e),i({...e,...s,leafletObject:r.value}),c.value=!0,Object(o["nextTick"])(()=>t.emit("ready",r.value))}),{ready:c,leafletObject:r}},render(){return f(this.ready,this.$slots)},__file:"src/components/LGeoJson.vue"};const D={...m,pane:{type:String,default:"tilePane"},opacity:{type:Number,custom:!1,default:1},zIndex:{type:Number,default:1},tileSize:{type:Number,default:256},noWrap:{type:Boolean,default:!1},minZoom:{type:Number,default:0},maxZoom:{type:Number,default:void 0}},_=(e,t,n)=>{const{options:o,methods:r}=j(e,t,n),c={...o,pane:e.pane,opacity:e.opacity,zIndex:e.zIndex,tileSize:e.tileSize,noWrap:e.noWrap,minZoom:e.minZoom,maxZoom:e.maxZoom};return{options:c,methods:{...r}}};const x={iconUrl:{type:String,custom:!0,default:null},iconRetinaUrl:{type:String,custom:!0,default:null},iconSize:{type:[Object,Array],custom:!0,default:null},iconAnchor:{type:[Object,Array],custom:!0,default:null},popupAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},tooltipAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},shadowUrl:{type:String,custom:!0,default:null},shadowRetinaUrl:{type:String,custom:!0,default:null},shadowSize:{type:[Object,Array],custom:!0,default:null},shadowAnchor:{type:[Object,Array],custom:!0,default:null},bgPos:{type:[Object,Array],custom:!0,default:()=>[0,0]},className:{type:String,custom:!0,default:""},options:{type:Object,custom:!0,default:()=>({})}};Boolean,Boolean;var A={emits:["ready","update:zoom","update:center","update:bounds"],props:{...O,center:{type:[Object,Array],default:()=>[0,0]},bounds:{type:[Array,Object],default:void 0},maxBounds:{type:[Array,Object],default:void 0},zoom:{type:Number,default:0},minZoom:{type:Number,default:void 0},maxZoom:{type:Number,default:void 0},paddingBottomRight:{type:Array,default:void 0},paddingTopLeft:{type:Array,default:void 0},padding:{type:Array,default:void 0},worldCopyJump:{type:Boolean,default:!1},crs:{type:[String,Object],default:"EPSG3857"},maxBoundsViscosity:{type:Number,default:void 0},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number,default:void 0},inertiaMaxSpeed:{type:Number,default:void 0},easeLinearity:{type:Number,default:void 0},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number,default:void 0},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:!1},useGlobalLeaflet:{type:Boolean,default:!1}},setup(e,t){const c=Object(o["ref"])(null),O=Object(o["reactive"])({ready:!1,leafletRef:{},layersToAdd:[],layersInControl:[]}),{options:m}=p(e),j={...m,minZoom:e.minZoom,maxZoom:e.maxZoom,maxBounds:e.maxBounds,maxBoundsViscosity:e.maxBoundsViscosity,worldCopyJump:e.worldCopyJump,crs:e.crs,center:e.center,zoom:e.zoom,inertia:e.inertia,inertiaDeceleration:e.inertiaDeceleration,inertiaMaxSpeed:e.inertiaMaxSpeed,easeLinearity:e.easeLinearity,zoomAnimation:e.zoomAnimation,zoomAnimationThreshold:e.zoomAnimationThreshold,fadeAnimation:e.fadeAnimation,markerZoomAnimation:e.markerZoomAnimation},f=i("addLayer"),g=i("removeLayer"),k=i("registerControl"),y=i("registerLayerControl");Object(o["provide"])(b,e.useGlobalLeaflet);const v={moveEndHandler(){t.emit("update:zoom",O.leafletRef.getZoom()),t.emit("update:center",O.leafletRef.getCenter()),t.emit("update:bounds",O.leafletRef.getBounds())},overlayAddHandler(e){const t=O.layersInControl.find(t=>t.name===e.name);t&&t.updateVisibleProp(!0)},overlayRemoveHandler(e){const t=O.layersInControl.find(t=>t.name===e.name);t&&t.updateVisibleProp(!1)}};Object(o["onMounted"])(async()=>{e.useGlobalLeaflet&&(d.L=d.L||await n.e("chunk-2d2248b6").then(n.t.bind(null,"e11e",7)));const{map:i,CRS:b,Icon:p,latLngBounds:m,latLng:E,DomEvent:h}=e.useGlobalLeaflet?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));try{j.beforeMapMount&&await j.beforeMapMount()}catch(V){console.error("The following error occurred running the provided beforeMapMount hook "+V.message)}await u(p);const w="string"==typeof j.crs?b[j.crs]:j.crs;j.crs=w||b.EPSG3857;const N={addLayer(e){if(void 0!==e.layerType)if(void 0===O.layerControl)O.layersToAdd.push(e);else{const t=O.layersInControl.find(t=>t.leafletObject._leaflet_id===e.leafletObject._leaflet_id);t||(O.layerControl.addLayer(e),O.layersInControl.push(e))}!1!==e.visible&&O.leafletRef.addLayer(e.leafletObject)},removeLayer(e){void 0!==e.layerType&&(void 0===O.layerControl?O.layersToAdd=O.layersToAdd.filter(t=>t.name!==e.name):(O.layerControl.removeLayer(e.leafletObject),O.layersInControl=O.layersInControl.filter(t=>t.leafletObject._leaflet_id!==e.leafletObject._leaflet_id))),O.leafletRef.removeLayer(e.leafletObject)},registerLayerControl(e){O.layerControl=e,O.layersToAdd.forEach(e=>{O.layerControl.addLayer(e)}),O.layersToAdd=[],k(e)},registerControl(e){O.leafletRef.addControl(e.leafletObject)},setZoom(t){const n=O.leafletRef.getZoom();t!==n&&O.leafletRef.setZoom(t,{animate:!e.noBlockingAnimations&&null})},setPaddingBottomRight(e){O.paddingBottomRight=e},setPaddingTopLeft(e){O.paddingTopLeft=e},setPadding(e){O.padding=e},setCrs(e){const t=O.leafletRef.getBounds();O.leafletRef.options.crs=e,O.leafletRef.fitBounds(t,{animate:!1,padding:[0,0]})},fitBounds(e){O.leafletRef.fitBounds(e,{animate:!this.noBlockingAnimations&&null})},setBounds(e){if(!e)return;const t=m(e);if(!t.isValid())return;const n=O.lastSetBounds||O.leafletRef.getBounds(),o=!n.equals(t,0);o&&(O.lastSetBounds=t,O.leafletRef.fitBounds(t,this.fitBoundsOptions))},setCenter(e){if(null==e)return;const t=E(e),n=O.lastSetCenter||O.leafletRef.getCenter();n.lat===t.lat&&n.lng===t.lng||(O.lastSetCenter=t,O.leafletRef.panTo(t,{animate:!this.noBlockingAnimations&&null}))}};s(f,N.addLayer),s(g,N.removeLayer),s(k,N.registerControl),s(y,N.registerLayerControl),O.leafletRef=i(c.value,j),a(N,O.leafletRef,e);const S=l(t.attrs);O.leafletRef.on("moveend",r(v.moveEndHandler,100)),O.leafletRef.on("overlayadd",v.overlayAddHandler),O.leafletRef.on("overlayremove",v.overlayRemoveHandler),h.on(O.leafletRef,S),O.ready=!0,Object(o["nextTick"])(()=>t.emit("ready",O.leafletRef))}),Object(o["onBeforeUnmount"])(()=>{O.leafletRef&&O.leafletRef.remove()});const E=Object(o["computed"])(()=>O.leafletRef),h=Object(o["computed"])(()=>O.ready);return{root:c,ready:h,leafletObject:E}},render(){return Object(o["h"])("div",{style:{width:"100%",height:"100%"},ref:"root"},this.ready?this.$slots.default():{})},__file:"src/components/LMap.vue"};const C={...m,pane:{type:String,default:"markerPane"},draggable:{type:Boolean,custom:!0,default:!1},latLng:{type:[Object,Array],custom:!0,default:null},icon:{type:[Object],default:()=>{},custom:!1},zIndexOffset:{type:Number,custom:!1,default:null}},B=(e,t,n)=>{const{options:o,methods:r}=j(e,t,n),c={...o,...e},a={...r,setDraggable(e){t.value.dragging&&(e?t.value.dragging.enable():t.value.dragging.disable())},latLngSync(e){n.emit("update:latLng",e.latlng),n.emit("update:lat-lng",e.latlng)},setLatLng(e){if(null!=e&&t.value){const n=t.value.getLatLng();n&&n.equals(e)||t.value.setLatLng(e)}}};return{options:c,methods:a}};var R={name:"LMarker",props:C,setup(e,t){const c=Object(o["ref"])({}),u=Object(o["ref"])(!1),i=Object(o["inject"])(b),s=Object(o["inject"])("addLayer");Object(o["provide"])("canSetParentHtml",()=>!!c.value.getElement()),Object(o["provide"])("setParentHtml",e=>c.value.getElement().innerHTML=e),Object(o["provide"])("setIcon",e=>c.value.setIcon&&c.value.setIcon(e));const{options:O,methods:p}=B(e,c,t);return void 0===O.icon&&delete O.icon,Object(o["onMounted"])(async()=>{const{marker:b,DomEvent:m}=i?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));c.value=b(e.latLng,O);const j=l(t.attrs);m.on(c.value,j),c.value.on("move",r(p.latLngSync,100)),a(p,c.value,e),s({...e,...p,leafletObject:c.value}),u.value=!0,Object(o["nextTick"])(()=>t.emit("ready",c.value))}),{ready:u,leafletObject:c}},render(){return f(this.ready,this.$slots)},__file:"src/components/LMarker.vue"};const I={...k,latLngs:{type:Array,default:()=>[]},smoothFactor:{type:Number,custom:!0,default:1},noClip:{type:Boolean,custom:!0,default:!1}},L={...I};const U={...O,content:{type:String,default:null}};const $={...D,tms:{type:Boolean,default:!1},subdomains:{type:String,default:"abc"},detectRetina:{type:Boolean,default:!1},url:{type:String,default:null}},M=(e,t)=>{const{options:n,methods:o}=_(e,t),r={...n,tms:e.tms,subdomains:e.subdomains,detectRetina:e.detectRetina};return{options:r,methods:{...o}}};var P={props:$,setup(e,t){const r=Object(o["ref"])({}),c=Object(o["inject"])(b),u=Object(o["inject"])("addLayer"),{options:i,methods:s}=M(e,r);return Object(o["onMounted"])(async()=>{const{tileLayer:b,DomEvent:O}=c?d.L:await n.e("chunk-2d0da8f3").then(n.bind(null,"6bb3"));r.value=b(e.url,i);const p=l(t.attrs);O.on(r.value,p),a(s,r.value,e),u({...e,...s,leafletObject:r.value}),Object(o["nextTick"])(()=>t.emit("ready",r.value))}),{leafletObject:r}},render(){return null},__file:"src/components/LTileLayer.vue"};Boolean,Boolean}).call(this,n("c8ba"))},"5c76":function(e,t,n){"use strict";var o=n("1da1"),r=(n("96cf"),n("ac1f"),n("1276"),n("99af"),n("4de4"),n("d3b7"),n("7a23")),c=n("47e2"),a=n("6c02"),l=n("dad5"),u=n("2906"),i=n("5e65"),s=n("c364"),d=n("1119"),b={id:"workout-form"},O=["onSubmit"],p={class:"form-items"},m={key:0,class:"form-item-radio"},j=["checked","disabled"],f={for:"withGpx"},g=["checked","disabled"],k={for:"withoutGpx"},y={class:"form-item"},v=["disabled"],E=["value"],h={key:1,class:"form-item"},w={for:"gpxFile"},N=["disabled"],S={class:"files-help info-box"},V={key:2,class:"form-item"},T={for:"title"},D=["required","disabled"],_={key:3},x={class:"workout-date-duration"},A={class:"form-item"},C={class:"workout-date-time"},B=["disabled"],R=["disabled"],I={class:"form-item"},L=["disabled"],U=Object(r["createTextVNode"])(" : "),$=["disabled"],M=Object(r["createTextVNode"])(" : "),P=["disabled"],G={class:"form-item"},F=["disabled"],W={class:"form-item"},z={key:1},H={key:2,class:"form-buttons"},q=["disabled"],K=["onClick"],Z=Object(r["defineComponent"])({props:{authUser:null,sports:null,isCreation:{default:!1},loading:{default:!1},workout:{default:function(){return{}}}},setup:function(e){var t=e,n=Object(c["b"])(),Z=n.t,X=Object(u["a"])(),J=Object(a["d"])(),Y=Object(r["toRefs"])(t),Q=Y.workout,ee=Y.isCreation,te=Y.loading,ne=Object(r["computed"])((function(){return Object(d["d"])(t.sports,Z)})),oe=Object(r["computed"])((function(){return X.getters[l["b"].GETTERS.APP_CONFIG]})),re=oe.value.max_single_file_size?Object(s["b"])(oe.value.max_single_file_size):"",ce=oe.value.gpx_limit_import,ae=oe.value.max_zip_file_size?Object(s["b"])(oe.value.max_zip_file_size):"",le=Object(r["computed"])((function(){return X.getters[l["b"].GETTERS.ERROR_MESSAGES]})),ue=Object(r["reactive"])({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:""}),ie=Object(r["ref"])(t.workout.id?t.workout.with_gpx:t.isCreation),se=null,de=Object(r["ref"])(!1);function be(e){ue.notes=e}function Oe(){ie.value=!ie.value,de.value=!1}function pe(e){e.target.files&&(se=e.target.files[0])}function me(e){if(ue.sport_id="".concat(e.sport_id),ue.title=e.title,ue.notes=e.notes,!e.with_gpx){var n=Object(i["a"])(Object(i["c"])(e.workout_date,t.authUser.timezone),"yyyy-MM-dd"),o=e.duration.split(":");ue.workoutDistance="".concat(e.distance),ue.workoutDate=n.workout_date,ue.workoutTime=n.workout_time,ue.workoutDurationHour=o[0],ue.workoutDurationMinutes=o[1],ue.workoutDurationSeconds=o[2]}}function je(e){e.title=ue.title,e.distance=+ue.workoutDistance,e.duration=3600*+ue.workoutDurationHour+60*+ue.workoutDurationMinutes+ +ue.workoutDurationSeconds,e.workout_date="".concat(ue.workoutDate," ").concat(ue.workoutTime)}function fe(){var e={sport_id:+ue.sport_id,notes:ue.notes};if(t.workout.id)t.workout.with_gpx?e.title=ue.title:je(e),X.dispatch(l["f"].ACTIONS.EDIT_WORKOUT,{workoutId:t.workout.id,data:e});else if(ie.value){if(!se){var n="workouts.NO_FILE_PROVIDED";return void X.commit(l["b"].MUTATIONS.SET_ERROR_MESSAGES,n)}e.file=se,X.dispatch(l["f"].ACTIONS.ADD_WORKOUT,e)}else je(e),X.dispatch(l["f"].ACTIONS.ADD_WORKOUT_WITHOUT_GPX,e)}function ge(){t.workout.id?J.push({name:"Workout",params:{workoutId:t.workout.id}}):J.go(-1)}function ke(){de.value=!0}return Object(r["onMounted"])((function(){t.workout.id&&me(t.workout)})),Object(r["onUnmounted"])((function(){return X.commit(l["b"].MUTATIONS.EMPTY_ERROR_MESSAGES)})),Object(r["watch"])((function(){return t.workout}),function(){var e=Object(o["a"])(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:t!==n&&t&&t.id&&me(t);case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()),function(e,t){var n=Object(r["resolveComponent"])("CustomTextArea"),o=Object(r["resolveComponent"])("ErrorMessage"),c=Object(r["resolveComponent"])("Loader"),a=Object(r["resolveComponent"])("Card");return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",{id:"workout-edition",class:Object(r["normalizeClass"])(["center-card center-card with-margin",{"center-form":Object(r["unref"])(Q)&&Object(r["unref"])(Q).with_gpx}])},[Object(r["createVNode"])(a,null,{title:Object(r["withCtx"])((function(){return[Object(r["createTextVNode"])(Object(r["toDisplayString"])(e.$t("workouts.".concat(Object(r["unref"])(ee)?"ADD":"EDIT","_WORKOUT"))),1)]})),content:Object(r["withCtx"])((function(){return[Object(r["createElementVNode"])("div",b,[Object(r["createElementVNode"])("form",{class:Object(r["normalizeClass"])({errors:de.value}),onSubmit:Object(r["withModifiers"])(fe,["prevent"])},[Object(r["createElementVNode"])("div",p,[Object(r["unref"])(ee)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",m,[Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("input",{id:"withGpx",type:"radio",checked:Object(r["unref"])(ie),disabled:Object(r["unref"])(te),onClick:Oe},null,8,j),Object(r["createElementVNode"])("label",f,Object(r["toDisplayString"])(e.$t("workouts.WITH_GPX")),1)]),Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("input",{id:"withoutGpx",type:"radio",checked:!Object(r["unref"])(ie),disabled:Object(r["unref"])(te),onClick:Oe},null,8,g),Object(r["createElementVNode"])("label",k,Object(r["toDisplayString"])(e.$t("workouts.WITHOUT_GPX")),1)])])):Object(r["createCommentVNode"])("",!0),Object(r["createElementVNode"])("div",y,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.SPORT",1))+": ",1),Object(r["withDirectives"])(Object(r["createElementVNode"])("select",{id:"sport",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[0]||(t[0]=function(e){return Object(r["unref"])(ue).sport_id=e})},[(Object(r["openBlock"])(!0),Object(r["createElementBlock"])(r["Fragment"],null,Object(r["renderList"])(Object(r["unref"])(ne).filter((function(e){return e.is_active})),(function(e){return Object(r["openBlock"])(),Object(r["createElementBlock"])("option",{value:e.id,key:e.id},Object(r["toDisplayString"])(e.translatedLabel),9,E)})),128))],40,v),[[r["vModelSelect"],Object(r["unref"])(ue).sport_id]])]),Object(r["unref"])(ee)&&Object(r["unref"])(ie)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",h,[Object(r["createElementVNode"])("label",w,Object(r["toDisplayString"])(e.$t("workouts.GPX_FILE"))+" "+Object(r["toDisplayString"])(e.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+": ",1),Object(r["createElementVNode"])("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:Object(r["unref"])(te),required:"",onInvalid:ke,onInput:pe},null,40,N),Object(r["createElementVNode"])("div",S,[Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("strong",null,Object(r["toDisplayString"])(e.$t("workouts.GPX_FILE"))+":",1),Object(r["createElementVNode"])("ul",null,[Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(r["toDisplayString"])(Object(r["unref"])(re)),1)])]),Object(r["createElementVNode"])("div",null,[Object(r["createElementVNode"])("strong",null,Object(r["toDisplayString"])(e.$t("workouts.ZIP_ARCHIVE"))+":",1),Object(r["createElementVNode"])("ul",null,[Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.NO_FOLDER")),1),Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.MAX_FILES"))+": "+Object(r["toDisplayString"])(Object(r["unref"])(ce)),1),Object(r["createElementVNode"])("li",null,Object(r["toDisplayString"])(e.$t("workouts.MAX_SIZE"))+": "+Object(r["toDisplayString"])(Object(r["unref"])(ae)),1)])])])])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",V,[Object(r["createElementVNode"])("label",T,Object(r["toDisplayString"])(e.$t("workouts.TITLE"))+": ",1),Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"title",name:"title",type:"text",required:!Object(r["unref"])(ee),onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[1]||(t[1]=function(e){return Object(r["unref"])(ue).title=e})},null,40,D),[[r["vModelText"],Object(r["unref"])(ue).title]])])),Object(r["unref"])(ie)?Object(r["createCommentVNode"])("",!0):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",_,[Object(r["createElementVNode"])("div",x,[Object(r["createElementVNode"])("div",A,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.WORKOUT_DATE"))+":",1),Object(r["createElementVNode"])("div",C,[Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[2]||(t[2]=function(e){return Object(r["unref"])(ue).workoutDate=e})},null,40,B),[[r["vModelText"],Object(r["unref"])(ue).workoutDate]]),Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[3]||(t[3]=function(e){return Object(r["unref"])(ue).workoutTime=e})},null,40,R),[[r["vModelText"],Object(r["unref"])(ue).workoutTime]])])]),Object(r["createElementVNode"])("div",I,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.DURATION"))+":",1),Object(r["createElementVNode"])("div",null,[Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:"workout-duration",type:"text",placeholder:"HH",pattern:"^([0-9]*[0-9])$",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[4]||(t[4]=function(e){return Object(r["unref"])(ue).workoutDurationHour=e})},null,40,L),[[r["vModelText"],Object(r["unref"])(ue).workoutDurationHour]]),U,Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:"workout-duration",type:"text",pattern:"^([0-5][0-9])$",placeholder:"MM",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[5]||(t[5]=function(e){return Object(r["unref"])(ue).workoutDurationMinutes=e})},null,40,$),[[r["vModelText"],Object(r["unref"])(ue).workoutDurationMinutes]]),M,Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:"workout-duration",type:"text",pattern:"^([0-5][0-9])$",placeholder:"SS",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[6]||(t[6]=function(e){return Object(r["unref"])(ue).workoutDurationSeconds=e})},null,40,P),[[r["vModelText"],Object(r["unref"])(ue).workoutDurationSeconds]])])])]),Object(r["createElementVNode"])("div",G,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.DISTANCE"))+" (km):",1),Object(r["withDirectives"])(Object(r["createElementVNode"])("input",{name:"workout-distance",type:"number",min:"0",step:"0.01",required:"",onInvalid:ke,disabled:Object(r["unref"])(te),"onUpdate:modelValue":t[7]||(t[7]=function(e){return Object(r["unref"])(ue).workoutDistance=e})},null,40,F),[[r["vModelText"],Object(r["unref"])(ue).workoutDistance]])])])),Object(r["createElementVNode"])("div",W,[Object(r["createElementVNode"])("label",null,Object(r["toDisplayString"])(e.$t("workouts.NOTES"))+": ",1),Object(r["createVNode"])(n,{name:"notes",input:Object(r["unref"])(ue).notes,disabled:Object(r["unref"])(te),onUpdateValue:be},null,8,["input","disabled"])])]),Object(r["unref"])(le)?(Object(r["openBlock"])(),Object(r["createBlock"])(o,{key:0,message:Object(r["unref"])(le)},null,8,["message"])):Object(r["createCommentVNode"])("",!0),Object(r["unref"])(te)?(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",z,[Object(r["createVNode"])(c)])):(Object(r["openBlock"])(),Object(r["createElementBlock"])("div",H,[Object(r["createElementVNode"])("button",{class:"confirm",type:"submit",disabled:Object(r["unref"])(te)},Object(r["toDisplayString"])(e.$t("buttons.SUBMIT")),9,q),Object(r["createElementVNode"])("button",{class:"cancel",onClick:Object(r["withModifiers"])(ge,["prevent"])},Object(r["toDisplayString"])(e.$t("buttons.CANCEL")),9,K)]))],42,O)])]})),_:1})],2)}}}),X=(n("e5b5"),n("6b0d")),J=n.n(X);const Y=J()(Z,[["__scopeId","data-v-20a704bc"]]);t["a"]=Y},"692d":function(e,t,n){"use strict";n.r(t);var o=n("7a23"),r=n("5c76"),c=n("dad5"),a=n("2906"),l={id:"add-workout",class:"view"},u={class:"container"},i=Object(o["defineComponent"])({setup:function(e){var t=Object(a["a"])(),n=Object(o["computed"])((function(){return t.getters[c["c"].GETTERS.SPORTS]})),i=Object(o["computed"])((function(){return t.getters[c["a"].GETTERS.AUTH_USER_PROFILE]})),s=Object(o["computed"])((function(){return t.getters[c["f"].GETTERS.WORKOUT_DATA]}));return function(e,t){return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",l,[Object(o["createElementVNode"])("div",u,[Object(o["createVNode"])(r["a"],{authUser:Object(o["unref"])(i),sports:Object(o["unref"])(n),isCreation:!0,loading:Object(o["unref"])(s).loading},null,8,["authUser","sports","loading"])])])}}});const s=i;t["default"]=s},"696e":function(e,t,n){},"6f37":function(e,t,n){},7253:function(e,t,n){},"855e":function(e,t,n){"use strict";n("03a1")},8956:function(e,t,n){},"8a7e":function(e,t,n){},"8ce4":function(e,t,n){},"8d44":function(e,t,n){"use strict";n("6f37")},"8ee9":function(e,t,n){"use strict";n.r(t);var o=n("1da1"),r=(n("96cf"),n("7a23")),c=n("6c02"),a=n("5c76"),l=n("dad5"),u=n("2906"),i={id:"edit-workout",class:"view"},s={class:"container"},d=Object(r["defineComponent"])({setup:function(e){var t=Object(c["c"])(),n=Object(u["a"])(),d=Object(r["computed"])((function(){return n.getters[l["a"].GETTERS.AUTH_USER_PROFILE]})),b=Object(r["computed"])((function(){return n.getters[l["c"].GETTERS.SPORTS]})),O=Object(r["computed"])((function(){return n.getters[l["f"].GETTERS.WORKOUT_DATA]}));return Object(r["onBeforeMount"])((function(){n.dispatch(l["f"].ACTIONS.GET_WORKOUT_DATA,{workoutId:t.params.workoutId})})),Object(r["watch"])((function(){return t.params.workoutId}),function(){var e=Object(o["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:t||n.commit(l["f"].MUTATIONS.EMPTY_WORKOUT);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),function(e,t){return Object(r["openBlock"])(),Object(r["createElementBlock"])("div",i,[Object(r["createElementVNode"])("div",s,[Object(r["createVNode"])(a["a"],{authUser:Object(r["unref"])(d),sports:Object(r["unref"])(b),workout:Object(r["unref"])(O).workout,loading:Object(r["unref"])(O).loading},null,8,["authUser","sports","workout","loading"])])])}}});const b=d;t["default"]=b},"8f45":function(e,t,n){},a659:function(e,t,n){},ac79:function(e,t,n){"use strict";n("8ce4")},c66b:function(e,t,n){"use strict";n("7253")},e5b5:function(e,t,n){"use strict";n("05f5")},e94f:function(e,t,n){!function(e,n){n(t)}(0,(function(e){"use strict";function t(e){return e&&e.normalize&&e.normalize(),e&&e.textContent||""}function n(e,t){const n=e.getElementsByTagName(t);return n.length?n[0]:null}function o(e){const o={};if(e){const r=n(e,"line");if(r){const e=t(n(r,"color")),c=parseFloat(t(n(r,"opacity"))),a=parseFloat(t(n(r,"width")));e&&(o.stroke=e),isNaN(c)||(o["stroke-opacity"]=c),isNaN(a)||(o["stroke-width"]=96*a/25.4)}}return o}function r(e,o){const r={};let c,a;for(a=0;a1,s=Object.assign(c(e),o(n(e,"extensions")),{_gpxType:"trk"},a.length?{coordinateProperties:{times:i?a:a[0]}}:{});for(let n=0;nnew Array(e.line.length).fill(null))),e[t][n]=o):e[t]=o}}return{type:"Feature",properties:s,geometry:i?{type:"MultiLineString",coordinates:r}:{type:"LineString",coordinates:r[0]}}}function*s(e){const t=e.getElementsByTagName("trk"),n=e.getElementsByTagName("rte"),o=e.getElementsByTagName("wpt");for(let r=0;rArray(e.length).fill(null))),i[n][t]=e[n])}if(0!==r.length)return(c.length||a.length)&&(i.coordinateProperties=Object.assign(c.length?{times:1===r.length?c[0]:c}:{},a.length?{heart:1===r.length?a[0]:a}:{})),{type:"Feature",properties:i,geometry:{type:1===r.length?"LineString":"MultiLineString",coordinates:1===r.length?r[0]:r}}}function*f(e){const t=e.getElementsByTagName("Lap");for(let o=0;o (_pushScopeId(\"data-v-a842653a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-filters\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"form\" }\nconst _hoisted_4 = { class: \"form-items-group\" }\nconst _hoisted_5 = { class: \"form-item\" }\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-item\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"form-items-group\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, null, -1))\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-items-group\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = { class: \"form-inputs-group\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = [\"value\"]\nconst _hoisted_19 = { class: \"form-items-group\" }\nconst _hoisted_20 = { class: \"form-item\" }\nconst _hoisted_21 = { class: \"form-inputs-group\" }\nconst _hoisted_22 = [\"value\"]\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"form-items-group\" }\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = { class: \"form-inputs-group\" }\nconst _hoisted_27 = [\"value\"]\nconst _hoisted_28 = [\"value\"]\nconst _hoisted_29 = { class: \"form-items-group\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = { class: \"form-inputs-group\" }\nconst _hoisted_32 = [\"value\"]\nconst _hoisted_33 = [\"value\"]\nconst _hoisted_34 = { class: \"form-button\" }\n\nimport { ComputedRef, computed, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n authUser: IUserProfile\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n sports: null\n },\n emits: ['filter'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IUserProfile\n sports: ISport[]\n }\n\n \n\n \n\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n\n const { authUser } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n let params: LocationQuery = Object.assign({}, route.query)\n\n function handleFilterChange(event: Event & { target: HTMLInputElement }) {\n if (event.target.value === '') {\n delete params[event.target.name]\n } else {\n params[event.target.name] = event.target.value\n }\n }\n function onFilter() {\n emit('filter')\n if ('page' in params) {\n params['page'] = '1'\n }\n router.push({ path: '/workouts', query: params })\n }\n function onClearFilter() {\n emit('filter')\n router.push({ path: '/workouts', query: {} })\n }\n\n watch(\n () => route.query,\n (newQuery) => {\n params = Object.assign({}, newQuery)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.FROM')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"from\",\n type: \"date\",\n value: _ctx.$route.query.from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.TO')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"to\",\n type: \"date\",\n value: _ctx.$route.query.to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \":\", 1),\n _createElementVNode(\"select\", {\n name: \"sport_id\",\n value: _ctx.$route.query.sport_id,\n onChange: handleFilterChange\n }, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) =>\n _unref(authUser).sports_list.includes(s.id)\n ), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_13))\n }), 128))\n ], 40, _hoisted_11)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"input\", {\n name: \"distance_from\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_17),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"distance_to\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_18)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"input\", {\n name: \"duration_from\",\n value: _ctx.$route.query.duration_from,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_22),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"duration_to\",\n value: _ctx.$route.query.duration_to,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_23)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_from\",\n value: _ctx.$route.query.ave_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_27),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_to\",\n value: _ctx.$route.query.ave_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_28)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \" (km): \", 1),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_from\",\n value: _ctx.$route.query.max_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_32),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_to\",\n value: _ctx.$route.query.max_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_33)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onFilter\n }, _toDisplayString(_ctx.$t('buttons.FILTER')), 1),\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onClearFilter\n }, _toDisplayString(_ctx.$t('buttons.CLEAR_FILTER')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=a842653a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a842653a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-432ef8ce\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-list\" }\nconst _hoisted_2 = { class: \"total\" }\nconst _hoisted_3 = { class: \"total-label\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"workouts-table responsive-table\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", { class: \"sport-col\" }, null, -1))\nconst _hoisted_7 = { class: \"sport-col\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"onMouseover\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"cell-heading\" }\nconst _hoisted_13 = { class: \"text-right\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-right\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = { class: \"text-right\" }\nconst _hoisted_18 = { class: \"cell-heading\" }\nconst _hoisted_19 = { class: \"text-right\" }\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = { class: \"text-right\" }\nconst _hoisted_22 = { class: \"cell-heading\" }\nconst _hoisted_23 = { key: 0 }\nconst _hoisted_24 = { class: \"text-right\" }\nconst _hoisted_25 = { class: \"cell-heading\" }\nconst _hoisted_26 = { key: 0 }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n capitalize,\n onBeforeMount,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import StaticMap from '@/components/Common/StaticMap.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { ITranslatedSport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'\n import { getDateWithTZ } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n user: IUserProfile\n sports: ITranslatedSport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n user: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n sports: ITranslatedSport[]\n }\n\n \n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const { user, sports } = toRefs(props)\n const orderByList: string[] = [\n 'ave_speed',\n 'distance',\n 'duration',\n 'workout_date',\n ]\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]\n )\n let query: TWorkoutsPayload = getWorkoutsQuery(route.query)\n const hoverWorkoutId: Ref = ref(null)\n\n onBeforeMount(() => {\n loadWorkouts(query)\n })\n\n function loadWorkouts(payload: TWorkoutsPayload) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS, payload)\n }\n function reloadWorkouts(queryParam: string, queryValue: string) {\n const newQuery: LocationQuery = Object.assign({}, route.query)\n newQuery[queryParam] = queryValue\n if (queryParam === 'per_page') {\n newQuery['page'] = '1'\n }\n query = getWorkoutsQuery(newQuery)\n router.push({ path: '/workouts', query })\n }\n\n function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {\n query = getQuery(newQuery, orderByList, defaultOrder.order_by, {\n defaultSort: defaultOrder.order,\n })\n Object.keys(newQuery)\n .filter((k) => workoutsPayloadKeys.includes(k))\n .map((k) => {\n if (typeof newQuery[k] === 'string') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n query[k] = newQuery[k]\n }\n })\n return query\n }\n\n function onHover(workoutId: string | null) {\n hoverWorkoutId.value = workoutId\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getWorkoutsQuery(newQuery)\n loadWorkouts(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { 'empty-table': _unref(workouts).length === 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('common.TOTAL').toLowerCase()) + \": \", 1),\n (_unref(pagination).total !== null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(pagination).total) + \" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(pagination).total)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"workouts\",\n onUpdateSelect: reloadWorkouts\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(Pagination, {\n class: \"top-pagination\",\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_6,\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DATE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DISTANCE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DURATION'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.AVE_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.MAX_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.ASCENT'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DESCENT'))), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: workout.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.SPORT', 1)), 1),\n _createVNode(_component_SportImage, {\n title: \n _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n .translatedLabel\n ,\n \"sport-label\": \n _unref(sports).filter((s) => s.id === workout.sport_id)[0].label\n \n }, null, 8, [\"title\", \"sport-label\"])\n ]),\n _createElementVNode(\"td\", {\n class: \"workout-title\",\n onMouseover: ($event: any) => (onHover(workout.id)),\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (onHover(null)))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: { name: 'Workout', params: { workoutId: workout.id } }\n }, {\n default: _withCtx(() => [\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(workout.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (workout.with_gpx && hoverWorkoutId.value === workout.id)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: workout,\n \"display-hover\": true\n }, null, 8, [\"workout\"]))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_9),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(format)(\n _unref(getDateWithTZ)(workout.workout_date, _unref(user).timezone),\n 'dd/MM/yyyy HH:mm'\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createTextVNode(\" \" + _toDisplayString(Number(workout.distance).toFixed(2)) + \" km \", 1)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.moving), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.ave_speed) + \" km/h \", 1)\n ]),\n _createElementVNode(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.max_speed) + \" km/h \", 1)\n ]),\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_23, _toDisplayString(workout.ascent) + \" m\", 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_24, [\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_26, _toDisplayString(workout.descent) + \" m\", 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(Pagination, {\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _hoisted_27\n ]))\n}\n}\n\n})","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=432ef8ce&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-432ef8ce\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ed6df5ba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workouts\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container workouts-container\" }\nconst _hoisted_3 = { class: \"display-filters\" }\nconst _hoisted_4 = { class: \"list-container\" }\n\nimport { ComputedRef, computed, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import WorkoutsFilters from '@/components/Workouts/WorkoutsFilters.vue'\n import WorkoutsList from '@/components/Workouts/WorkoutsList.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t)\n )\n const hiddenFilters = ref(true)\n\n function toggleFilters() {\n hiddenFilters.value = !hiddenFilters.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"filters-container\", { hidden: hiddenFilters.value }])\n }, [\n _createVNode(WorkoutsFilters, {\n sports: _unref(translatedSports),\n authUser: _unref(authUser),\n onFilter: toggleFilters\n }, null, 8, [\"sports\", \"authUser\"])\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", { onClick: toggleFilters }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-caret-${hiddenFilters.value ? 'down' : 'up'}`),\n \"aria-hidden\": \"true\"\n }, null, 2),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`workouts.${hiddenFilters.value ? 'DISPLAY' : 'HIDE'}_FILTERS`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(WorkoutsList, {\n user: _unref(authUser),\n sports: _unref(translatedSports)\n }, null, 8, [\"user\", \"sports\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=ed6df5ba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ed6df5ba\"]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutWeather.vue?vue&type=style&index=0&id=599592bf&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutCardTitle.vue?vue&type=style&index=0&id=ae31b8b2&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutsView.vue?vue&type=style&index=0&id=ed6df5ba&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutsFilters.vue?vue&type=style&index=0&id=a842653a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutSegments.vue?vue&type=style&index=0&id=2a948bcb&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createElementVNode as _createElementVNode, mergeProps as _mergeProps, createVNode as _createVNode, isRef as _isRef, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6f69d538\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-chart\" }\nconst _hoisted_2 = { class: \"chart-radio\" }\nconst _hoisted_3 = [\"checked\"]\nconst _hoisted_4 = [\"checked\"]\nconst _hoisted_5 = { class: \"chart-info\" }\nconst _hoisted_6 = { class: \"no-data-cleaning\" }\nconst _hoisted_7 = { class: \"elevation-start\" }\nconst _hoisted_8 = [\"checked\"]\n\nimport { ChartData, ChartOptions } from 'chart.js'\n import { ComputedRef, computed, ref } from 'vue'\n import { LineChart, useLineChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IUserProfile } from '@/types/user'\n import {\n IWorkoutChartData,\n IWorkoutData,\n TCoordinates,\n } from '@/types/workouts'\n import { getDatasets } from '@/utils/workouts'\n\n interface Props {\n authUser: IUserProfile\n workoutData: IWorkoutData\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n workoutData: null\n },\n emits: ['getCoordinates'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IUserProfile\n workoutData: IWorkoutData\n }\n\n \n\n \n\n const { t } = useI18n()\n\n let displayDistance = ref(true)\n let beginElevationAtZero = ref(true)\n const datasets: ComputedRef = computed(() =>\n getDatasets(props.workoutData.chartData, t)\n )\n let chartData: ComputedRef> = computed(() => ({\n labels: displayDistance.value\n ? datasets.value.distance_labels\n : datasets.value.duration_labels,\n datasets: JSON.parse(\n JSON.stringify([\n datasets.value.datasets.speed,\n datasets.value.datasets.elevation,\n ])\n ),\n }))\n const coordinates: ComputedRef = computed(\n () => datasets.value.coordinates\n )\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: 22,\n },\n },\n scales: {\n [displayDistance.value ? 'xDistance' : 'xDuration']: {\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n count: 10,\n callback: function (value) {\n return displayDistance.value\n ? Number(value).toFixed(2)\n : formatDuration(value)\n },\n },\n type: 'linear',\n bounds: 'data',\n title: {\n display: true,\n text: displayDistance.value\n ? t('workouts.DISTANCE') + ' (km)'\n : t('workouts.DURATION'),\n },\n },\n ySpeed: {\n grid: {\n drawOnChartArea: false,\n },\n position: 'left',\n title: {\n display: true,\n text: t('workouts.SPEED') + ' (km/h)',\n },\n },\n yElevation: {\n beginAtZero: beginElevationAtZero.value,\n grid: {\n drawOnChartArea: false,\n },\n position: 'right',\n title: {\n display: true,\n text: t('workouts.ELEVATION') + ' (m)',\n },\n },\n },\n elements: {\n point: {\n pointStyle: 'circle',\n pointRadius: 0,\n },\n },\n plugins: {\n datalabels: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: false,\n mode: 'index',\n },\n callbacks: {\n label: function (context) {\n const label = ` ${context.dataset.label}: ${context.formattedValue}`\n return context.dataset.yAxisID === 'yElevation'\n ? label + ' m'\n : label + ' km/h'\n },\n title: function (tooltipItems) {\n if (tooltipItems.length > 0) {\n emitCoordinates(coordinates.value[tooltipItems[0].dataIndex])\n }\n return tooltipItems.length === 0\n ? ''\n : displayDistance.value\n ? `${t('workouts.DISTANCE')}: ${tooltipItems[0].label} km`\n : `${t('workouts.DURATION')}: ${formatDuration(\n tooltipItems[0].label.replace(',', '')\n )}`\n },\n },\n },\n },\n }))\n const { lineChartProps } = useLineChart({\n chartData,\n options,\n })\n\n function updateDisplayDistance() {\n displayDistance.value = !displayDistance.value\n }\n function formatDuration(duration: string | number): string {\n return new Date(+duration * 1000).toISOString().substr(11, 8)\n }\n function emitCoordinates(coordinates: TCoordinates) {\n emit('getCoordinates', coordinates)\n }\n function emitEmptyCoordinates() {\n emitCoordinates({ latitude: null, longitude: null })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ANALYSIS')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"distance\",\n checked: _unref(displayDistance),\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_3),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"duration\",\n checked: !_unref(displayDistance),\n onClick: updateDisplayDistance\n }, null, 8, _hoisted_4),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ])\n ]),\n _createVNode(_unref(LineChart), _mergeProps(_unref(lineChartProps), {\n class: \"line-chart\",\n onMouseleave: emitEmptyCoordinates\n }), null, 16),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.NO_DATA_CLEANING')), 1),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n checked: _unref(beginElevationAtZero),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_isRef(beginElevationAtZero) //@ts-ignore\n ? beginElevationAtZero.value = !_unref(beginElevationAtZero) : beginElevationAtZero = !_unref(beginElevationAtZero)))\n }, null, 8, _hoisted_8),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.START_ELEVATION_AT_ZERO')), 1)\n ])\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutChart.vue?vue&type=style&index=0&id=6f69d538&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6f69d538\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ae31b8b2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-card-title\" }\nconst _hoisted_2 = [\"title\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { class: \"workout-card-title\" }\nconst _hoisted_6 = { class: \"workout-title-date\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"workout-title\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"workout-title\"\n}\nconst _hoisted_9 = { class: \"workout-segment\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" — \")\nconst _hoisted_11 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-marker\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_12 = { class: \"workout-date\" }\nconst _hoisted_13 = { class: \"workout-link\" }\nconst _hoisted_14 = [\"title\"]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_16 = [\n _hoisted_15\n]\n\nimport { toRefs } from 'vue'\n\n import { ISport } from '@/types/sports'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n sport: ISport\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n sport: null,\n workoutObject: null\n },\n emits: ['displayModal'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n sport: ISport\n workoutObject: IWorkoutObject\n }\n\n \n\n \n\n const { sport, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-previous workout-arrow\", { inactive: !_unref(workoutObject).previousUrl }]),\n title: \n _unref(workoutObject).previousUrl\n ? _ctx.$t(`workouts.PREVIOUS_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_PREVIOUS_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workoutObject).previousUrl\n ? _ctx.$router.push(_unref(workoutObject).previousUrl)\n : null\n ))\n }, _hoisted_4, 10, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sport).label\n }, null, 8, [\"sport-label\"]),\n _createElementVNode(\"div\", _hoisted_6, [\n (_unref(workoutObject).type === 'WORKOUT')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).title) + \" \", 1),\n _createElementVNode(\"i\", {\n class: \"fa fa-edit\",\n \"aria-hidden\": \"true\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _ctx.$router.push({\n name: 'EditWorkout',\n params: { workoutId: _unref(workoutObject).workoutId },\n })\n ))\n }),\n _createElementVNode(\"i\", {\n class: \"fa fa-trash\",\n \"aria-hidden\": \"true\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (emit('displayModal', true)))\n })\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).title) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _hoisted_11,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.SEGMENT')) + \" \" + _toDisplayString(_unref(workoutObject).segmentId + 1), 1)\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_unref(workoutObject).workoutDate) + \" - \" + _toDisplayString(_unref(workoutObject).workoutTime) + \" \", 1),\n _createElementVNode(\"span\", _hoisted_13, [\n (_unref(workoutObject).type === 'SEGMENT')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workoutObject).workoutId },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" > \" + _toDisplayString(_ctx.$t('workouts.BACK_TO_WORKOUT')), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-next workout-arrow\", { inactive: !_unref(workoutObject).nextUrl }]),\n title: \n _unref(workoutObject).nextUrl\n ? _ctx.$t(`workouts.NEXT_${_unref(workoutObject).type}`)\n : _ctx.$t(`workouts.NO_NEXT_${_unref(workoutObject).type}`)\n ,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (\n _unref(workoutObject).nextUrl ? _ctx.$router.push(_unref(workoutObject).nextUrl) : null\n ))\n }, _hoisted_16, 10, _hoisted_14)\n ]))\n}\n}\n\n})","import script from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCardTitle.vue?vue&type=style&index=0&id=ae31b8b2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae31b8b2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2e8c6844\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"workout-record\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"sup\", null, [\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n })\n], -1))\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n recordType: string\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n recordType: null,\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n recordType: string\n workoutObject: IWorkoutObject\n }\n\n \n\n const { recordType, workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (\n _unref(workoutObject).records &&\n _unref(workoutObject).records.find((record) => record.record_type === _unref(recordType))\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _hoisted_3))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutRecord.vue?vue&type=style&index=0&id=2e8c6844&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2e8c6844\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-599592bf\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workout-weather\"\n}\nconst _hoisted_2 = { class: \"weather-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_4 = { class: \"weather-th\" }\nconst _hoisted_5 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_6 = { class: \"weather-th\" }\nconst _hoisted_7 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_8 = [\"alt\", \"title\"]\nconst _hoisted_9 = [\"alt\", \"title\"]\nconst _hoisted_10 = [\"alt\", \"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n }\n\n \n\n const { workoutObject } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(workoutObject).weatherStart && _unref(workoutObject).weatherEnd)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"table\", _hoisted_2, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.START')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherStart.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherStart.icon}`\n )\n \n }, null, 8, _hoisted_5)\n ])\n ]),\n _createElementVNode(\"th\", null, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.END')) + \" \", 1),\n _createElementVNode(\"img\", {\n class: \"weather-img\",\n src: `/img/weather/${_unref(workoutObject).weatherEnd.icon}.svg`,\n alt: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n ,\n title: \n _ctx.$t(\n `workouts.WEATHER.DARK_SKY.${_unref(workoutObject).weatherEnd.icon}`\n )\n \n }, null, 8, _hoisted_7)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/temperature.svg\",\n alt: _ctx.$t(`workouts.WEATHER.TEMPERATURE`),\n title: _ctx.$t(`workouts.WEATHER.TEMPERATURE`)\n }, null, 8, _hoisted_8)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.temperature).toFixed(1)) + \"°C \", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.temperature).toFixed(1)) + \"°C \", 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/pour-rain.svg\",\n alt: _ctx.$t(`workouts.WEATHER.HUMIDITY`),\n title: _ctx.$t(`workouts.WEATHER.HUMIDITY`)\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.humidity * 100).toFixed(1)) + \"% \", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.humidity * 100).toFixed(1)) + \"% \", 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"img\", {\n class: \"weather-img weather-img-small\",\n src: \"/img/weather/breeze.svg\",\n alt: _ctx.$t(`workouts.WEATHER.WIND`),\n title: _ctx.$t(`workouts.WEATHER.WIND`)\n }, null, 8, _hoisted_10)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherStart.wind).toFixed(1)) + \"m/s\", 1),\n _createElementVNode(\"td\", null, _toDisplayString(Number(_unref(workoutObject).weatherEnd.wind).toFixed(1)) + \"m/s\", 1)\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutWeather.vue?vue&type=style&index=0&id=599592bf&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-599592bf\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, createVNode as _createVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47565031\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-info\" }\nconst _hoisted_2 = { class: \"workout-data\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { class: \"workout-data\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"workout-data\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-tachometer\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_10 = {\n key: 0,\n class: \"workout-data\"\n}\nconst _hoisted_11 = [\"alt\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_13 = {\n key: 1,\n class: \"workout-data\"\n}\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\n\nimport { computed, toRefs } from 'vue'\n\n import WorkoutRecord from '@/components/Workout/WorkoutDetail/WorkoutRecord.vue'\n import WorkoutWeather from '@/components/Workout/WorkoutDetail/WorkoutWeather.vue'\n import { IWorkoutObject } from '@/types/workouts'\n\n interface Props {\n workoutObject: IWorkoutObject\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workoutObject: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workoutObject: IWorkoutObject\n }\n\n \n\n const { workoutObject } = toRefs(props)\n const withPause = computed(\n () =>\n props.workoutObject.pauses !== '0:00:00' &&\n props.workoutObject.pauses !== null\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).moving), 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"LD\"\n }, null, 8, [\"workoutObject\"]),\n (_unref(withPause))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.PAUSES')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).pauses), 1),\n _createTextVNode(\" - \" + _toDisplayString(_ctx.$t('workouts.TOTAL_DURATION')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).duration) + \")\", 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).distance) + \" km\", 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"FD\"\n }, null, 8, [\"workoutObject\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).aveSpeed) + \" km/h\", 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"AS\"\n }, null, 8, [\"workoutObject\"]),\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).maxSpeed) + \" km/h\", 1),\n _createVNode(WorkoutRecord, {\n workoutObject: _unref(workoutObject),\n recordType: \"MS\"\n }, null, 8, [\"workoutObject\"])\n ]),\n (_unref(workoutObject).maxAlt !== null && _unref(workoutObject).minAlt !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MIN_ALTITUDE')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).minAlt) + \" m\", 1),\n _hoisted_12,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_ALTITUDE')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).maxAlt) + \" m\", 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workoutObject).ascent !== null && _unref(workoutObject).descent !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _hoisted_14,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).ascent) + \" m\", 1),\n _hoisted_15,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')) + \": \", 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(workoutObject).descent) + \" m\", 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(WorkoutWeather, { workoutObject: _unref(workoutObject) }, null, 8, [\"workoutObject\"])\n ]))\n}\n}\n\n})","import script from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutData.vue?vue&type=style&index=0&id=47565031&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47565031\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createBlock as _createBlock, withCtx as _withCtx, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b4b3006a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-map\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"leaflet-container\"\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = {\n key: 0,\n class: \"leaflet-container\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"no-map\"\n}\n\nimport { gpx } from '@tmcw/togeojson'\n import { LGeoJson, LMap, LMarker, LTileLayer } from '@vue-leaflet/vue-leaflet'\n import { ComputedRef, computed, ref, toRefs, withDefaults } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { GeoJSONData } from '@/types/geojson'\n import { IWorkoutData, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { workoutData: IWorkoutData, markerCoordinates: TCoordinates }\n\n \n\n const store = useStore()\n\n const { workoutData, markerCoordinates } = toRefs(props)\n const workoutMap = ref null }\n }>(null)\n const bounds = computed(() =>\n props.workoutData\n ? [\n [\n props.workoutData.workout.bounds[0],\n props.workoutData.workout.bounds[1],\n ],\n [\n props.workoutData.workout.bounds[2],\n props.workoutData.workout.bounds[3],\n ],\n ]\n : []\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const center = computed(() => getCenter(bounds))\n const geoJson = computed(() =>\n props.workoutData && props.workoutData.gpx\n ? getGeoJson(props.workoutData.gpx)\n : {}\n )\n\n function getGeoJson(gpxContent: string): GeoJSONData {\n if (!gpxContent || gpxContent !== '') {\n try {\n const jsonData = gpx(\n new DOMParser().parseFromString(gpxContent, 'text/xml')\n )\n return { jsonData }\n } catch (e) {\n console.error('Invalid gpx content')\n return {}\n }\n }\n return {}\n }\n function getCenter(bounds: ComputedRef): number[] {\n return [\n (bounds.value[0][0] + bounds.value[1][0]) / 2,\n (bounds.value[0][1] + bounds.value[1][1]) / 2,\n ]\n }\n function fitBounds(bounds: number[][]) {\n if (workoutMap.value?.leafletObject) {\n workoutMap.value?.leafletObject.fitBounds(bounds)\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(workoutData).loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_unref(geoJson).jsonData && _unref(center) && _unref(bounds).length === 2)\n ? (_openBlock(), _createBlock(_unref(LMap), {\n key: 0,\n zoom: 13,\n center: _unref(center),\n bounds: _unref(bounds),\n ref: (_value, _refs) => {\n _refs['workoutMap'] = _value\n workoutMap.value = _value\n },\n onReady: _cache[0] || (_cache[0] = ($event: any) => (fitBounds(_unref(bounds))))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(LTileLayer), {\n url: `${_unref(getApiUrl)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,\n attribution: _unref(appConfig).map_attribution,\n bounds: _unref(bounds)\n }, null, 8, [\"url\", \"attribution\", \"bounds\"]),\n _createVNode(_unref(LGeoJson), {\n geojson: _unref(geoJson).jsonData\n }, null, 8, [\"geojson\"]),\n (_unref(markerCoordinates).latitude)\n ? (_openBlock(), _createBlock(_unref(LMarker), {\n key: 0,\n \"lat-lng\": [_unref(markerCoordinates).latitude, _unref(markerCoordinates).longitude]\n }, null, 8, [\"lat-lng\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"center\", \"bounds\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n ]))\n}\n}\n\n})","import script from \"./WorkoutMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutMap.vue?vue&type=style&index=0&id=b4b3006a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b4b3006a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, withCtx as _withCtx, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-45d17286\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workout-detail\" }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutCardTitle from '@/components/Workout/WorkoutDetail/WorkoutCardTitle.vue'\n import WorkoutData from '@/components/Workout/WorkoutDetail/WorkoutData.vue'\n import WorkoutMap from '@/components/Workout/WorkoutDetail/WorkoutMap.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import {\n IWorkout,\n IWorkoutData,\n IWorkoutObject,\n IWorkoutSegment,\n TCoordinates,\n } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n authUser: IUserProfile\n displaySegment: boolean\n sports: ISport[]\n workoutData: IWorkoutData\n markerCoordinates?: TCoordinates\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n displaySegment: null,\n sports: null,\n workoutData: null,\n markerCoordinates: { default: () => ({} as TCoordinates) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IUserProfile, displaySegment: boolean, sports: ISport[], workoutData: IWorkoutData, markerCoordinates: TCoordinates }\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { markerCoordinates, workoutData } = toRefs(props)\n const workout: ComputedRef = computed(\n () => props.workoutData.workout\n )\n let segmentId: Ref = ref(\n route.params.workoutId ? +route.params.segmentId : null\n )\n const segment: ComputedRef = computed(() =>\n workout.value.segments.length > 0 && segmentId.value\n ? workout.value.segments[+segmentId.value - 1]\n : null\n )\n let displayModal: Ref = ref(false)\n const sport = computed(() =>\n props.sports\n ? props.sports.find(\n (sport) => sport.id === props.workoutData.workout.sport_id\n )\n : {}\n )\n const workoutObject = computed(() =>\n getWorkoutObject(workout.value, segment.value)\n )\n\n function getWorkoutObjectUrl(\n workout: IWorkout,\n displaySegment: boolean,\n segmentId: number | null\n ): Record {\n const previousUrl =\n displaySegment && segmentId && segmentId !== 1\n ? `/workouts/${workout.id}/segment/${segmentId - 1}`\n : !displaySegment && workout.previous_workout\n ? `/workouts/${workout.previous_workout}`\n : null\n const nextUrl =\n displaySegment && segmentId && segmentId < workout.segments.length\n ? `/workouts/${workout.id}/segment/${segmentId + 1}`\n : !displaySegment && workout.next_workout\n ? `/workouts/${workout.next_workout}`\n : null\n return {\n previousUrl,\n nextUrl,\n }\n }\n function getWorkoutObject(\n workout: IWorkout,\n segment: IWorkoutSegment | null\n ): IWorkoutObject {\n const urls = getWorkoutObjectUrl(\n workout,\n props.displaySegment,\n segmentId.value ? +segmentId.value : null\n )\n const workoutDate = formatWorkoutDate(\n getDateWithTZ(\n props.workoutData.workout.workout_date,\n props.authUser.timezone\n )\n )\n return {\n ascent: segment ? segment.ascent : workout.ascent,\n aveSpeed: segment ? segment.ave_speed : workout.ave_speed,\n distance: segment ? segment.distance : workout.distance,\n descent: segment ? segment.descent : workout.descent,\n duration: segment ? segment.duration : workout.duration,\n maxAlt: segment ? segment.max_alt : workout.max_alt,\n maxSpeed: segment ? segment.max_speed : workout.max_speed,\n minAlt: segment ? segment.min_alt : workout.min_alt,\n moving: segment ? segment.moving : workout.moving,\n nextUrl: urls.nextUrl,\n pauses: segment ? segment.pauses : workout.pauses,\n previousUrl: urls.previousUrl,\n records: segment ? [] : workout.records,\n segmentId: segment ? segment.segment_id : null,\n title: workout.title,\n type: props.displaySegment ? 'SEGMENT' : 'WORKOUT',\n workoutDate: workoutDate.workout_date,\n weatherEnd: segment ? null : workout.weather_end,\n workoutId: workout.id,\n weatherStart: segment ? null : workout.weather_start,\n workoutTime: workoutDate.workout_time,\n }\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteWorkout(workoutId: string) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT, {\n workoutId: workoutId,\n })\n }\n\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (newSegmentId) {\n segmentId.value = +newSegmentId\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(displayModal))\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('workouts.WORKOUT_DELETION_CONFIRMATION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteWorkout(_unref(workoutObject).workoutId))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(WorkoutCardTitle, {\n sport: _unref(sport),\n workoutObject: _unref(workoutObject),\n onDisplayModal: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayModal(true)))\n }, null, 8, [\"sport\", \"workoutObject\"])\n ]),\n content: _withCtx(() => [\n _createVNode(WorkoutMap, {\n workoutData: _unref(workoutData),\n markerCoordinates: _unref(markerCoordinates)\n }, null, 8, [\"workoutData\", \"markerCoordinates\"]),\n _createVNode(WorkoutData, { workoutObject: _unref(workoutObject) }, null, 8, [\"workoutObject\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=45d17286&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-45d17286\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64197f7a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-note\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n notes?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n notes: { default: () => null }\n },\n setup(__props: any) {\n\nconst props = __props as { notes: string | null }\n\n \n\n const { notes } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.NOTES')), 1)\n ]),\n content: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(notes) && _unref(notes) !== '' ? _unref(notes) : _ctx.$t('workouts.NO_NOTES')), 1)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=64197f7a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64197f7a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2a948bcb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-segments\" }\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutSegment } from '@/types/workouts'\n\n interface Props {\n segments: IWorkoutSegment[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n segments: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n segments: IWorkoutSegment[]\n }\n\n \n\n const { segments } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 2)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(segments), (segment, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: segment.segment_id\n }, [\n _createVNode(_component_router_link, {\n to: {\n name: 'WorkoutSegment',\n params: {\n workoutId: segment.workout_id,\n segmentId: index + 1,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 1)) + \" \" + _toDisplayString(index + 1), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \" + _toDisplayString(segment.distance) + \" km, \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \" + _toDisplayString(segment.duration) + \") \", 1)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=2a948bcb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2a948bcb\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-87defaa4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workout-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_6 = { key: 1 }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import WorkoutChart from '@/components/Workout/WorkoutChart.vue'\n import WorkoutDetail from '@/components/Workout/WorkoutDetail/index.vue'\n import WorkoutNotes from '@/components/Workout/WorkoutNotes.vue'\n import WorkoutSegments from '@/components/Workout/WorkoutSegments.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkoutData, IWorkoutPayload, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n displaySegment: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n displaySegment: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displaySegment: boolean\n }\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { displaySegment } = toRefs(props)\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n let markerCoordinates: Ref = ref({\n latitude: null,\n longitude: null,\n })\n\n onBeforeMount(() => {\n const payload: IWorkoutPayload = { workoutId: route.params.workoutId }\n if (props.displaySegment) {\n payload.segmentId = route.params.segmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n })\n\n onUnmounted(() => {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n })\n\n function updateCoordinates(coordinates: TCoordinates) {\n markerCoordinates.value = {\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n }\n }\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (newWorkoutId) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: newWorkoutId,\n })\n }\n }\n )\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (route.params.workoutId) {\n const payload: IWorkoutPayload = {\n workoutId: route.params.workoutId,\n }\n if (newSegmentId) {\n payload.segmentId = newSegmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(WorkoutDetail, {\n workoutData: _unref(workoutData),\n sports: _unref(sports),\n authUser: _unref(authUser),\n markerCoordinates: _unref(markerCoordinates),\n displaySegment: _unref(displaySegment)\n }, null, 8, [\"workoutData\", \"sports\", \"authUser\", \"markerCoordinates\", \"displaySegment\"]),\n (\n _unref(workoutData).workout.with_gpx && _unref(workoutData).chartData.length > 0\n )\n ? (_openBlock(), _createBlock(WorkoutChart, {\n key: 0,\n workoutData: _unref(workoutData),\n authUser: _unref(authUser),\n displaySegment: _unref(displaySegment),\n onGetCoordinates: updateCoordinates\n }, null, 8, [\"workoutData\", \"authUser\", \"displaySegment\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment) && _unref(workoutData).workout.segments.length > 1)\n ? (_openBlock(), _createBlock(WorkoutSegments, {\n key: 1,\n segments: _unref(workoutData).workout.segments\n }, null, 8, [\"segments\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment))\n ? (_openBlock(), _createBlock(WorkoutNotes, {\n key: 2,\n notes: _unref(workoutData).workout.notes\n }, null, 8, [\"notes\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_5\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!_unref(workoutData).loading)\n ? (_openBlock(), _createBlock(NotFound, {\n key: 0,\n target: \"WORKOUT\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=87defaa4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-87defaa4\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutsList.vue?vue&type=style&index=0&id=432ef8ce&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Workout.vue?vue&type=style&index=0&id=87defaa4&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutRecord.vue?vue&type=style&index=0&id=2e8c6844&lang=scss&scoped=true\"","import { watch, ref, provide, h, inject, onUnmounted, onBeforeUnmount, onMounted, nextTick, render as render$3, reactive, computed } from 'vue';\n\nconst debounce = (fn, time) => {\n let timeout;\n\n return function (...args) {\n const context = this;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn.apply(context, args);\n timeout = null;\n }, time);\n };\n};\n\nconst capitalizeFirstLetter = (string) => {\n if (!string || typeof string.charAt !== \"function\") {\n return string;\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst propsBinder = (methods, leafletElement, props) => {\n for (const key in props) {\n const setMethodName = \"set\" + capitalizeFirstLetter(key);\n if (methods[setMethodName]) {\n watch(\n () => props[key],\n (newVal, oldVal) => {\n methods[setMethodName](newVal, oldVal);\n }\n );\n } else if (leafletElement[setMethodName]) {\n watch(\n () => props[key],\n (newVal) => {\n leafletElement[setMethodName](newVal);\n }\n );\n }\n }\n};\n\nconst remapEvents = (contextAttrs) => {\n const result = {};\n for (const attrName in contextAttrs) {\n if (\n attrName.startsWith(\"on\") &&\n !attrName.startsWith(\"onUpdate\") &&\n attrName !== \"onReady\"\n ) {\n const eventName = attrName.slice(2).toLocaleLowerCase();\n result[eventName] = contextAttrs[attrName];\n }\n }\n return result;\n};\n\nconst resetWebpackIcon = async (Icon) => {\n const modules = await Promise.all([\n import('leaflet/dist/images/marker-icon-2x.png'),\n import('leaflet/dist/images/marker-icon.png'),\n import('leaflet/dist/images/marker-shadow.png'),\n ]);\n\n delete Icon.Default.prototype._getIconUrl;\n\n Icon.Default.mergeOptions({\n iconRetinaUrl: modules[0].default,\n iconUrl: modules[1].default,\n shadowUrl: modules[2].default,\n });\n};\n\n/**\n * Wraps a placeholder function and provides it with the given name.\n * The wrapper can later be updated with {@link updateLeafletWrapper}\n * to provide a different function.\n *\n * @param {String} methodName Key used to provide the wrapper function\n */\nconst provideLeafletWrapper = (methodName) => {\n const wrapped = ref(() =>\n console.warn(`Method ${methodName} has been invoked without being replaced`)\n );\n const wrapper = (...args) => wrapped.value(...args);\n // eslint-disable-next-line vue/no-ref-as-operand\n wrapper.wrapped = wrapped;\n provide(methodName, wrapper);\n\n return wrapper;\n};\n\n/**\n * Change the function that will be executed when an injected Leaflet wrapper\n * is invoked.\n *\n * @param {*} wrapper Provided wrapper whose wrapped function is to be updated\n * @param {function} leafletMethod New method to be wrapped by the wrapper\n */\nconst updateLeafletWrapper = (wrapper, leafletMethod) =>\n (wrapper.wrapped.value = leafletMethod);\n\nconst WINDOW_OR_GLOBAL =\n (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global) ||\n undefined;\n\nconst GLOBAL_LEAFLET_OPT = \"useGlobalLeaflet\";\n\nconst props = {\n options: {\n type: Object,\n default: () => ({}),\n },\n};\n\nconst setup = (props) => {\n return { options: props.options, methods: {} };\n};\n\nconst props$1 = {\n ...props,\n pane: {\n type: String,\n default: \"overlayPane\",\n },\n attribution: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n custom: true,\n default: undefined,\n },\n layerType: {\n type: String,\n custom: true,\n default: undefined,\n },\n visible: {\n type: Boolean,\n custom: true,\n default: true,\n },\n};\n\nconst setup$1 = (props, leafletRef, context) => {\n const addLayer = inject(\"addLayer\");\n const removeLayer = inject(\"removeLayer\");\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n\n const options = {\n ...componentOptions,\n attribution: props.attribution,\n pane: props.pane,\n };\n\n const addThisLayer = () => addLayer({ leafletObject: leafletRef.value });\n const removeThisLayer = () =>\n removeLayer({ leafletObject: leafletRef.value });\n\n const methods = {\n ...componentMethods,\n setAttribution(val, old) {\n const attributionControl = this.$parent.leafletObject.attributionControl;\n attributionControl.removeAttribution(old).addAttribution(val);\n },\n setName() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setLayerType() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setVisible(isVisible) {\n if (leafletRef.value) {\n if (isVisible) {\n addThisLayer();\n } else {\n removeThisLayer();\n }\n }\n },\n bindPopup({ leafletObject }) {\n leafletRef.value.bindPopup(leafletObject);\n },\n bindTooltip({ leafletObject }) {\n leafletRef.value.bindTooltip(leafletObject);\n },\n unbindTooltip() {\n const tooltip = leafletRef.value ? leafletRef.value.getTooltip() : null;\n if (tooltip) {\n tooltip.unbindTooltip();\n }\n },\n unbindPopup() {\n const popup = leafletRef.value ? leafletRef.value.getPopup() : null;\n if (popup) {\n popup.unbindPopup();\n }\n },\n updateVisibleProp(value) {\n /**\n * Triggers when the visible prop needs to be updated\n * @type {boolean}\n * @property {boolean} value - value of the visible property\n */\n context.emit(\"update:visible\", value);\n },\n };\n\n provide(\"bindPopup\", methods.bindPopup);\n provide(\"bindTooltip\", methods.bindTooltip);\n provide(\"unbindTooltip\", methods.unbindTooltip);\n provide(\"unbindPopup\", methods.unbindPopup);\n\n onUnmounted(() => {\n methods.unbindPopup();\n methods.unbindTooltip();\n removeThisLayer();\n });\n\n return { options, methods };\n};\n\nconst render = (ready, slots) => {\n if (ready && slots.default) {\n return h(\"div\", { style: { display: \"none\" } }, slots.default());\n }\n};\n\nconst props$2 = {\n ...props,\n interactive: {\n type: Boolean,\n default: true,\n },\n bubblingMouseEvents: {\n type: Boolean,\n default: true,\n },\n};\n\nconst setup$2 = (props) => {\n const { options: componentOptions, methods } = setup(props);\n const options = {\n ...componentOptions,\n interactive: props.interactive,\n bubblingMouseEvents: props.bubblingMouseEvents,\n };\n\n return { options, methods };\n};\n\nconst props$3 = {\n ...props$1,\n ...props$2,\n stroke: {\n type: Boolean,\n custom: true,\n default: true,\n },\n color: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n weight: {\n type: Number,\n custom: true,\n default: 3,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n lineCap: {\n type: String,\n custom: true,\n default: \"round\",\n },\n lineJoin: {\n type: String,\n custom: true,\n default: \"round\",\n },\n dashArray: {\n type: String,\n custom: true,\n default: null,\n },\n dashOffset: {\n type: String,\n custom: true,\n default: null,\n },\n fill: {\n type: Boolean,\n custom: true,\n default: false,\n },\n fillColor: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n fillOpacity: {\n type: Number,\n custom: true,\n default: 0.2,\n },\n fillRule: {\n type: String,\n custom: true,\n default: \"evenodd\",\n },\n className: {\n type: String,\n custom: true,\n default: null,\n },\n};\n\nconst setup$3 = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const {\n options: interactiveLayerOptions,\n methods: interactiveLayerMethods,\n } = setup$2(props);\n\n const removeLayer = inject(\"removeLayer\");\n\n const options = {\n ...layerOptions,\n ...interactiveLayerOptions,\n stroke: props.stroke,\n color: props.color,\n weight: props.weight,\n opacity: props.opacity,\n lineCap: props.lineCap,\n lineJoin: props.lineJoin,\n dashArray: props.dashArray,\n dashOffset: props.dashOffset,\n fill: props.fill,\n fillColor: props.fillColor,\n fillOpacity: props.fillOpacity,\n fillRule: props.fillRule,\n className: props.className,\n };\n const methods = {\n ...layerMethods,\n ...interactiveLayerMethods,\n setStroke(stroke) {\n leafletRef.value.setStyle({ stroke });\n },\n setColor(color) {\n leafletRef.value.setStyle({ color });\n },\n setWeight(weight) {\n leafletRef.value.setStyle({ weight });\n },\n setOpacity(opacity) {\n leafletRef.value.setStyle({ opacity });\n },\n setLineCap(lineCap) {\n leafletRef.value.setStyle({ lineCap });\n },\n setLineJoin(lineJoin) {\n leafletRef.value.setStyle({ lineJoin });\n },\n setDashArray(dashArray) {\n leafletRef.value.setStyle({ dashArray });\n },\n setDashOffset(dashOffset) {\n leafletRef.value.setStyle({ dashOffset });\n },\n setFill(fill) {\n leafletRef.value.setStyle({ fill });\n },\n setFillColor(fillColor) {\n leafletRef.value.setStyle({ fillColor });\n },\n setFillOpacity(fillOpacity) {\n leafletRef.value.setStyle({ fillOpacity });\n },\n setFillRule(fillRule) {\n leafletRef.value.setStyle({ fillRule });\n },\n setClassName(className) {\n leafletRef.value.setStyle({ className });\n },\n };\n\n onBeforeUnmount(() => {\n removeLayer({ leafletObject: leafletRef.value });\n });\n\n return { options, methods };\n};\n\nconst props$4 = {\n ...props$3,\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n /**\n * Radius of the marker in pixels.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$4 = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n const methods = {\n ...pathMethods,\n setRadius(radius) {\n leafletRef.value.setRadius(radius);\n },\n setLatLng(latLng) {\n leafletRef.value.setLatLng(latLng);\n },\n };\n\n return { options, methods };\n};\n\nconst props$5 = {\n ...props$4,\n /**\n * Radius of the circle in meters.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$5 = (props, leafletRef, context) => {\n const {\n options: circleMarkerOptions,\n methods: circleMarkerMethods,\n } = setup$4(props, leafletRef, context);\n\n const options = {\n ...circleMarkerOptions,\n ...props,\n };\n\n const methods = {\n ...circleMarkerMethods,\n };\n\n return { options, methods };\n};\n\n/**\n * Circle component, lets you add and personalize circles on the map\n */\nvar script = {\n name: \"LCircle\",\n props: props$5,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$5(props, leafletRef, context);\n\n onMounted(async () => {\n const { circle, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circle(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript.__file = \"src/components/LCircle.vue\";\n\n/**\n * Circle Marker component, lets you add and personalize circle markers on the map\n */\nvar script$1 = {\n name: \"LCircleMarker\",\n props: props$4,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$4(props, leafletRef, context);\n\n onMounted(async () => {\n const { circleMarker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circleMarker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$1.__file = \"src/components/LCircleMarker.vue\";\n\nconst props$6 = {\n ...props,\n position: {\n type: String,\n default: \"topright\",\n },\n};\n\nconst setup$6 = (props, leafletRef) => {\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n const options = {\n ...componentOptions,\n position: props.position,\n };\n\n const methods = {\n ...componentMethods,\n setPosition(position) {\n if (leafletRef.value) {\n leafletRef.value.setPosition(position);\n }\n },\n };\n\n onUnmounted(() => {\n if (leafletRef.value) {\n leafletRef.value.remove();\n }\n });\n\n return { options, methods };\n};\n\nconst render$1 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nvar script$2 = {\n name: \"LControl\",\n props: {\n ...props$6,\n disableClickPropagation: {\n type: Boolean,\n custom: true,\n default: true,\n },\n disableScrollPropagation: {\n type: Boolean,\n custom: true,\n default: false,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$6(props, leafletRef);\n\n onMounted(async () => {\n const { Control, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const LControl = Control.extend({\n onAdd() {\n return root.value;\n },\n });\n\n leafletRef.value = new LControl(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n\n if (props.disableClickPropagation) {\n DomEvent.disableClickPropagation(root.value);\n }\n if (props.disableScrollPropagation) {\n DomEvent.disableScrollPropagation(root.value);\n }\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$1(this.$slots);\n },\n};\n\nscript$2.__file = \"src/components/LControl.vue\";\n\nconst props$7 = {\n ...props$6,\n prefix: {\n type: String,\n default: \"Vue-Leaflet\",\n custom: true,\n },\n};\n\nconst setup$7 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n prefix: props.prefix,\n };\n\n const methods = {\n ...controlMethods,\n setPrefix(prefix) {\n leafletRef.value.setPrefix(prefix);\n },\n };\n\n return { options, methods };\n};\n\nvar script$3 = {\n name: \"LControlAttribution\",\n props: props$7,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$7(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.attribution(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$3.__file = \"src/components/LControlAttribution.vue\";\n\nconst props$8 = {\n ...props$6,\n collapsed: {\n type: Boolean,\n default: true,\n },\n autoZIndex: {\n type: Boolean,\n default: true,\n },\n hideSingleBase: {\n type: Boolean,\n default: false,\n },\n sortLayers: {\n type: Boolean,\n default: false,\n },\n sortFunction: {\n type: Function,\n default: undefined,\n },\n};\n\nconst setup$8 = (props, leafletRef) => {\n const { options: controlOptions } = setup$6(props, leafletRef);\n const options = {\n ...controlOptions,\n collapsed: props.collapsed,\n autoZIndex: props.autoZIndex,\n hideSingleBase: props.hideSingleBase,\n sortLayers: props.sortLayers,\n sortFunction: props.sortFunction,\n };\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType === \"base\") {\n leafletRef.value.addBaseLayer(layer.leafletObject, layer.name);\n } else if (layer.layerType === \"overlay\") {\n leafletRef.value.addOverlay(layer.leafletObject, layer.name);\n }\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n return { options, methods };\n};\n\nvar script$4 = {\n name: \"LControlLayers\",\n props: props$8,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerLayerControl = inject(\"registerLayerControl\");\n\n const { options, methods } = setup$8(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.layers(null, null, options);\n\n propsBinder(methods, leafletRef.value, props);\n\n registerLayerControl({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$4.__file = \"src/components/LControlLayers.vue\";\n\nconst props$9 = {\n ...props$6,\n maxWidth: {\n type: Number,\n default: 100,\n },\n metric: {\n type: Boolean,\n default: true,\n },\n imperial: {\n type: Boolean,\n default: true,\n },\n updateWhenIdle: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$9 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n maxWidth: props.maxWidth,\n metric: props.metric,\n imperial: props.imperial,\n updateWhenIdle: props.updateWhenIdle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$5 = {\n name: \"LControlScale\",\n props: props$9,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$9(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.scale(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$5.__file = \"src/components/LControlScale.vue\";\n\nconst props$a = {\n ...props$6,\n zoomInText: {\n type: String,\n default: \"+\",\n },\n zoomInTitle: {\n type: String,\n default: \"Zoom in\",\n },\n zoomOutText: {\n type: String,\n default: \"-\",\n },\n zoomOutTitle: {\n type: String,\n default: \"Zoom out\",\n },\n};\n\nconst setup$a = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n zoomInText: props.zoomInText,\n zoomInTitle: props.zoomInTitle,\n zoomOutText: props.zoomOutText,\n zoomOutTitle: props.zoomOutTitle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$6 = {\n name: \"LControlZoom\",\n props: props$a,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$a(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.zoom(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$6.__file = \"src/components/LControlZoom.vue\";\n\nconst props$b = {\n ...props$1,\n};\n\nconst setup$b = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n };\n\n const methods = {\n ...layerMethods,\n addLayer(layer) {\n leafletRef.value.addLayer(layer.leafletObject);\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n\n provide(\"addLayer\", methods.addLayer);\n provide(\"removeLayer\", methods.removeLayer);\n\n return { options, methods };\n};\n\nconst props$c = {\n ...props$b,\n};\n\nconst setup$c = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n };\n\n return { options, methods };\n};\n\nvar script$7 = {\n props: props$c,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$c(props, leafletRef);\n\n onMounted(async () => {\n const { featureGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = featureGroup(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$7.__file = \"src/components/LFeatureGroup.vue\";\n\nconst props$d = {\n ...props$b,\n geojson: {\n type: [Object, Array],\n default: () => ({}),\n },\n};\n\nconst setup$d = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n setGeojson(newVal) {\n leafletRef.value.clearLayers();\n leafletRef.value.addData(newVal);\n },\n getGeoJSONData() {\n return leafletRef.value.toGeoJSON();\n },\n getBounds() {\n return leafletRef.value.getBounds();\n },\n };\n\n return { options, methods };\n};\n\nvar script$8 = {\n props: props$d,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$d(props, leafletRef);\n\n onMounted(async () => {\n const { geoJSON, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = geoJSON(props.geojson, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$8.__file = \"src/components/LGeoJson.vue\";\n\nconst props$e = {\n ...props$1,\n pane: {\n type: String,\n default: \"tilePane\",\n },\n opacity: {\n type: Number,\n custom: false,\n default: 1.0,\n },\n zIndex: {\n type: Number,\n default: 1,\n },\n tileSize: {\n type: Number,\n default: 256,\n },\n noWrap: {\n type: Boolean,\n default: false,\n },\n minZoom: {\n type: Number,\n default: 0,\n },\n maxZoom: {\n type: Number,\n default: undefined,\n },\n};\n\nconst setup$e = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n pane: props.pane,\n opacity: props.opacity,\n zIndex: props.zIndex,\n tileSize: props.tileSize,\n noWrap: props.noWrap,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n };\n return { options, methods: { ...layerMethods } };\n};\n\nvar script$9 = {\n props: {\n ...props$e,\n childRender: {\n type: Function,\n required: true,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const tileComponents = ref({});\n const root = ref(null);\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$e(props, leafletRef, context);\n\n onMounted(async () => {\n const { GridLayer, DomEvent, DomUtil } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n methods.onUnload = (e) => {\n const key = leafletRef.value._tileCoordsToKey(e.coords);\n if (tileComponents[key]) {\n tileComponents[key].innerHTML = \"\";\n tileComponents[key] = undefined;\n }\n };\n\n methods.setTileComponent = () => {\n leafletRef.value.redraw();\n };\n\n const GLayer = GridLayer.extend({\n createTile(coords) {\n const key = leafletRef.value._tileCoordsToKey(coords);\n tileComponents[key] = DomUtil.create(\"div\");\n\n let vNode = h(\n { setup: props.childRender, props: [\"coords\"] },\n { coords }\n );\n render$3(vNode, tileComponents[key]);\n\n return tileComponents[key];\n },\n });\n\n leafletRef.value = new GLayer(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"tileunload\", methods.onUnload);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n onUnmounted(() => {\n leafletRef.value.off(\"tileunload\", methods.unLoad);\n });\n\n return { root, ready, leafletObject: leafletRef };\n },\n render() {\n if (this.ready) {\n return h(\"div\", { style: { display: \"none\" }, ref: \"root\" });\n }\n return null;\n },\n};\n\nscript$9.__file = \"src/components/LGridLayer.vue\";\n\nconst props$f = {\n iconUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n iconAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n popupAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n tooltipAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n shadowUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n shadowAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n bgPos: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n className: {\n type: String,\n custom: true,\n default: \"\",\n },\n options: {\n type: Object,\n custom: true,\n default: () => ({}),\n },\n};\n\n/**\n * Icon component, lets you add and custom icons to the map\n */\nvar script$a = {\n name: \"LIcon\",\n props: {\n ...props$f,\n ...props,\n },\n setup(props, context) {\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const canSetParentHtml = inject(\"canSetParentHtml\");\n const setParentHtml = inject(\"setParentHtml\");\n const setIcon = inject(\"setIcon\");\n\n let onDomEvent;\n let offDomEvent;\n let divIcon;\n let icon;\n let iconObject = undefined;\n\n const createIcon = (el, recreationNeeded, htmlSwapNeeded) => {\n const elHtml = el && el.innerHTML;\n if (!recreationNeeded) {\n if (htmlSwapNeeded && iconObject && canSetParentHtml()) {\n setParentHtml(elHtml);\n }\n return;\n }\n\n const listeners = remapEvents(context.attrs);\n if (iconObject) {\n offDomEvent(iconObject, listeners);\n }\n\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n iconUrl: props.iconUrl,\n iconRetinaUrl: props.iconRetinaUrl,\n iconSize: props.iconSize,\n iconAnchor: props.iconAnchor,\n popupAnchor: props.popupAnchor,\n tooltipAnchor: props.tooltipAnchor,\n shadowUrl: props.shadowUrl,\n shadowRetinaUrl: props.shadowRetinaUrl,\n shadowSize: props.shadowSize,\n shadowAnchor: props.shadowAnchor,\n bgPos: props.bgPos,\n className: props.className,\n html: elHtml || props.html,\n };\n\n iconObject = options.html ? divIcon(options) : icon(options);\n onDomEvent(iconObject, listeners);\n setIcon(iconObject);\n };\n\n const scheduleCreateIcon = () => {\n nextTick(() => createIcon(root.value, true, false));\n };\n\n const scheduleHtmlSwap = () => {\n nextTick(() => createIcon(root.value, false, true));\n };\n\n const methods = {\n setIconUrl: scheduleCreateIcon,\n setIconRetinaUrl: scheduleCreateIcon,\n setIconSize: scheduleCreateIcon,\n setIconAnchor: scheduleCreateIcon,\n setPopupAnchor: scheduleCreateIcon,\n setTooltipAnchor: scheduleCreateIcon,\n setShadowUrl: scheduleCreateIcon,\n setShadowRetinaUrl: scheduleCreateIcon,\n setShadowAnchor: scheduleCreateIcon,\n setBgPos: scheduleCreateIcon,\n setClassName: scheduleCreateIcon,\n setHtml: scheduleCreateIcon,\n };\n\n onMounted(async () => {\n const { DomEvent, divIcon: lDivIcon, icon: lIcon } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n onDomEvent = DomEvent.on;\n offDomEvent = DomEvent.off;\n divIcon = lDivIcon;\n icon = lIcon;\n\n propsBinder(methods, {}, props);\n\n const observer = new MutationObserver(scheduleHtmlSwap);\n observer.observe(root.value, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n scheduleCreateIcon();\n });\n\n return { root };\n },\n render() {\n const content = this.$slots.default ? this.$slots.default() : undefined;\n return h(\"div\", { ref: \"root\" }, content);\n },\n};\n\nscript$a.__file = \"src/components/LIcon.vue\";\n\n/**\n * @typedef {import('leaflet/dist/leaflet-src.esm.js').LatLngBounds} LatLngBounds\n */\n\nconst props$g = {\n ...props$1,\n url: {\n type: String,\n required: true,\n },\n bounds: {\n type: [Array, Object],\n required: true,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n alt: {\n type: String,\n default: \"\",\n },\n interactive: {\n type: Boolean,\n default: false,\n },\n crossOrigin: {\n type: Boolean,\n default: false,\n },\n errorOverlayUrl: {\n type: String,\n custom: true,\n default: \"\",\n },\n zIndex: {\n type: Number,\n custom: true,\n default: 1,\n },\n className: {\n type: String,\n default: \"\",\n },\n};\n\nconst setup$f = (setupProps, LeafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n setupProps,\n LeafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...setupProps,\n };\n\n const methods = {\n ...layerMethods,\n /**\n * Sets the opacity of the overlay.\n * @param {number} opacity\n */\n setOpacity(opacity) {\n return LeafletRef.value.setOpacity(opacity);\n },\n /**\n * Changes the URL of the image.\n * @param {string} url\n */\n setUrl(url) {\n return LeafletRef.value.setUrl(url);\n },\n /**\n * Update the bounds that this ImageOverlay covers\n * @param {LatLngBounds | Array>} bounds\n */\n setBounds(bounds) {\n return LeafletRef.value.setBounds(bounds);\n },\n /**\n * Get the bounds that this ImageOverlay covers\n * @returns {LatLngBounds}\n */\n getBounds() {\n return LeafletRef.value.getBounds();\n },\n /**\n * Returns the instance of HTMLImageElement used by this overlay.\n * @returns {HTMLElement}\n */\n getElement() {\n return LeafletRef.value.getElement();\n },\n /**\n * Brings the layer to the top of all overlays.\n */\n bringToFront() {\n return LeafletRef.value.bringToFront();\n },\n /**\n * Brings the layer to the bottom of all overlays.\n */\n bringToBack() {\n return LeafletRef.value.bringToBack();\n },\n /**\n * Changes the zIndex of the image overlay.\n * @param {number} zIndex\n */\n setZIndex(zIndex) {\n return LeafletRef.value.setZIndex(zIndex);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * ImageOverlay component, render a plain image instead of a geospatial map.\n */\nvar script$b = {\n name: \"LImageOverlay\",\n props: props$g,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$f(props, leafletRef, context);\n\n onMounted(async () => {\n const { imageOverlay, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = imageOverlay(props.url, props.bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$b.__file = \"src/components/LImageOverlay.vue\";\n\nvar script$c = {\n props: props$b,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods } = setup$b(props, leafletRef, context);\n\n onMounted(async () => {\n const { layerGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = layerGroup(props.options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$c.__file = \"src/components/LLayerGroup.vue\";\n\nvar script$d = {\n emits: [\"ready\", \"update:zoom\", \"update:center\", \"update:bounds\"],\n props: {\n ...props,\n /**\n * The center of the map, supports .sync modifier\n */\n center: {\n type: [Object, Array],\n default: () => [0, 0],\n },\n /**\n * The bounds of the map, supports .sync modifier\n */\n bounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The max bounds of the map\n */\n maxBounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The zoom of the map, supports .sync modifier\n */\n zoom: {\n type: Number,\n default: 0,\n },\n /**\n * The minZoom of the map\n */\n minZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The maxZoom of the map\n */\n maxZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The paddingBottomRight of the map\n */\n paddingBottomRight: {\n type: Array,\n default: undefined,\n },\n /**\n * The paddingTopLeft of the map\n */\n paddingTopLeft: {\n type: Array,\n default: undefined,\n },\n /**\n * The padding of the map\n */\n padding: {\n type: Array,\n default: undefined,\n },\n /**\n * The worldCopyJump option for the map\n */\n worldCopyJump: {\n type: Boolean,\n default: false,\n },\n /**\n * The CRS to use for the map. Can be an object that defines a coordinate reference\n * system for projecting geographical points into screen coordinates and back\n * (see https://leafletjs.com/reference-1.7.1.html#crs-l-crs-base), or a string\n * name identifying one of Leaflet's defined CRSs, such as \"EPSG4326\".\n */\n crs: {\n type: [String, Object],\n default: \"EPSG3857\",\n },\n maxBoundsViscosity: {\n type: Number,\n default: undefined,\n },\n inertia: {\n type: Boolean,\n default: undefined,\n },\n inertiaDeceleration: {\n type: Number,\n default: undefined,\n },\n inertiaMaxSpeed: {\n type: Number,\n default: undefined,\n },\n easeLinearity: {\n type: Number,\n default: undefined,\n },\n zoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n zoomAnimationThreshold: {\n type: Number,\n default: undefined,\n },\n fadeAnimation: {\n type: Boolean,\n default: undefined,\n },\n markerZoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n noBlockingAnimations: {\n type: Boolean,\n default: false,\n },\n useGlobalLeaflet: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, context) {\n const root = ref(null);\n const blueprint = reactive({\n ready: false,\n leafletRef: {},\n layersToAdd: [],\n layersInControl: [],\n });\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n maxBounds: props.maxBounds,\n maxBoundsViscosity: props.maxBoundsViscosity,\n worldCopyJump: props.worldCopyJump,\n crs: props.crs,\n center: props.center,\n zoom: props.zoom,\n inertia: props.inertia,\n inertiaDeceleration: props.inertiaDeceleration,\n inertiaMaxSpeed: props.inertiaMaxSpeed,\n easeLinearity: props.easeLinearity,\n zoomAnimation: props.zoomAnimation,\n zoomAnimationThreshold: props.zoomAnimationThreshold,\n fadeAnimation: props.fadeAnimation,\n markerZoomAnimation: props.markerZoomAnimation,\n };\n\n const addLayer = provideLeafletWrapper(\"addLayer\");\n const removeLayer = provideLeafletWrapper(\"removeLayer\");\n const registerControl = provideLeafletWrapper(\"registerControl\");\n const registerLayerControl = provideLeafletWrapper(\"registerLayerControl\");\n provide(GLOBAL_LEAFLET_OPT, props.useGlobalLeaflet);\n\n const eventHandlers = {\n moveEndHandler() {\n /**\n * Triggers when zoom is updated\n * @type {number,string}\n */\n context.emit(\"update:zoom\", blueprint.leafletRef.getZoom());\n /**\n * Triggers when center is updated\n * @type {object,array}\n */\n context.emit(\"update:center\", blueprint.leafletRef.getCenter());\n\n /**\n * Triggers when bounds are updated\n * @type {object}\n */\n context.emit(\"update:bounds\", blueprint.leafletRef.getBounds());\n },\n overlayAddHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(true);\n }\n },\n overlayRemoveHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(false);\n }\n },\n };\n\n onMounted(async () => {\n if (props.useGlobalLeaflet) {\n WINDOW_OR_GLOBAL.L = WINDOW_OR_GLOBAL.L || (await import('leaflet'));\n }\n const {\n map,\n CRS,\n Icon,\n latLngBounds,\n latLng,\n DomEvent,\n } = props.useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n try {\n options.beforeMapMount && (await options.beforeMapMount());\n } catch (error) {\n console.error(\n `The following error occurred running the provided beforeMapMount hook ${error.message}`\n );\n }\n\n await resetWebpackIcon(Icon);\n\n const optionsCrs =\n typeof options.crs == \"string\" ? CRS[options.crs] : options.crs;\n options.crs = optionsCrs || CRS.EPSG3857;\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd.push(layer);\n } else {\n const exist = blueprint.layersInControl.find(\n (l) =>\n l.leafletObject._leaflet_id ===\n layer.leafletObject._leaflet_id\n );\n if (!exist) {\n blueprint.layerControl.addLayer(layer);\n blueprint.layersInControl.push(layer);\n }\n }\n }\n if (layer.visible !== false) {\n blueprint.leafletRef.addLayer(layer.leafletObject);\n }\n },\n removeLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd = blueprint.layersToAdd.filter(\n (l) => l.name !== layer.name\n );\n } else {\n blueprint.layerControl.removeLayer(layer.leafletObject);\n blueprint.layersInControl = blueprint.layersInControl.filter(\n (l) =>\n l.leafletObject._leaflet_id !==\n layer.leafletObject._leaflet_id\n );\n }\n }\n blueprint.leafletRef.removeLayer(layer.leafletObject);\n },\n\n registerLayerControl(lControlLayer) {\n blueprint.layerControl = lControlLayer;\n blueprint.layersToAdd.forEach((layer) => {\n blueprint.layerControl.addLayer(layer);\n });\n blueprint.layersToAdd = [];\n\n registerControl(lControlLayer);\n },\n\n registerControl(lControl) {\n blueprint.leafletRef.addControl(lControl.leafletObject);\n },\n\n setZoom(newVal) {\n const zoom = blueprint.leafletRef.getZoom();\n if (newVal !== zoom) {\n blueprint.leafletRef.setZoom(newVal, {\n animate: props.noBlockingAnimations ? false : null,\n });\n }\n },\n\n setPaddingBottomRight(newVal) {\n blueprint.paddingBottomRight = newVal;\n },\n setPaddingTopLeft(newVal) {\n blueprint.paddingTopLeft = newVal;\n },\n setPadding(newVal) {\n blueprint.padding = newVal;\n },\n setCrs(newVal) {\n const prevBounds = blueprint.leafletRef.getBounds();\n blueprint.leafletRef.options.crs = newVal;\n blueprint.leafletRef.fitBounds(prevBounds, {\n animate: false,\n padding: [0, 0],\n });\n },\n fitBounds(bounds) {\n blueprint.leafletRef.fitBounds(bounds, {\n animate: this.noBlockingAnimations ? false : null,\n });\n },\n setBounds(newVal) {\n if (!newVal) {\n return;\n }\n const newBounds = latLngBounds(newVal);\n if (!newBounds.isValid()) {\n return;\n }\n const oldBounds =\n blueprint.lastSetBounds || blueprint.leafletRef.getBounds();\n const boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals\n if (boundsChanged) {\n blueprint.lastSetBounds = newBounds;\n blueprint.leafletRef.fitBounds(newBounds, this.fitBoundsOptions);\n }\n },\n\n setCenter(newVal) {\n if (newVal == null) {\n return;\n }\n const newCenter = latLng(newVal);\n const oldCenter =\n blueprint.lastSetCenter || blueprint.leafletRef.getCenter();\n if (\n oldCenter.lat !== newCenter.lat ||\n oldCenter.lng !== newCenter.lng\n ) {\n blueprint.lastSetCenter = newCenter;\n blueprint.leafletRef.panTo(newCenter, {\n animate: this.noBlockingAnimations ? false : null,\n });\n }\n },\n };\n\n updateLeafletWrapper(addLayer, methods.addLayer);\n updateLeafletWrapper(removeLayer, methods.removeLayer);\n updateLeafletWrapper(registerControl, methods.registerControl);\n updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);\n\n blueprint.leafletRef = map(root.value, options);\n\n propsBinder(methods, blueprint.leafletRef, props);\n const listeners = remapEvents(context.attrs);\n\n blueprint.leafletRef.on(\n \"moveend\",\n debounce(eventHandlers.moveEndHandler, 100)\n );\n blueprint.leafletRef.on(\"overlayadd\", eventHandlers.overlayAddHandler);\n blueprint.leafletRef.on(\n \"overlayremove\",\n eventHandlers.overlayRemoveHandler\n );\n DomEvent.on(blueprint.leafletRef, listeners);\n blueprint.ready = true;\n nextTick(() => context.emit(\"ready\", blueprint.leafletRef));\n });\n\n onBeforeUnmount(() => {\n if (blueprint.leafletRef) {\n blueprint.leafletRef.remove();\n }\n });\n\n const leafletObject = computed(() => blueprint.leafletRef);\n const ready = computed(() => blueprint.ready);\n return { root, ready, leafletObject };\n },\n render() {\n return h(\n \"div\",\n { style: { width: \"100%\", height: \"100%\" }, ref: \"root\" },\n this.ready ? this.$slots.default() : {}\n );\n },\n};\n\nscript$d.__file = \"src/components/LMap.vue\";\n\nconst props$h = {\n ...props$1,\n pane: {\n type: String,\n default: \"markerPane\",\n },\n draggable: {\n type: Boolean,\n custom: true,\n default: false,\n },\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n icon: {\n type: [Object],\n default: () => undefined,\n custom: false,\n },\n zIndexOffset: {\n type: Number,\n custom: false,\n default: null,\n },\n};\n\nconst setup$g = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerMethods,\n setDraggable(value) {\n if (leafletRef.value.dragging) {\n value\n ? leafletRef.value.dragging.enable()\n : leafletRef.value.dragging.disable();\n }\n },\n latLngSync(event) {\n context.emit(\"update:latLng\", event.latlng);\n context.emit(\"update:lat-lng\", event.latlng);\n },\n setLatLng(newVal) {\n if (newVal == null) {\n return;\n }\n\n if (leafletRef.value) {\n const oldLatLng = leafletRef.value.getLatLng();\n if (!oldLatLng || !oldLatLng.equals(newVal)) {\n leafletRef.value.setLatLng(newVal);\n }\n }\n },\n };\n return { options, methods };\n};\n\n/**\n * Marker component, lets you add and personalize markers on the map\n */\nvar script$e = {\n name: \"LMarker\",\n props: props$h,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n provide(\"canSetParentHtml\", () => !!leafletRef.value.getElement());\n provide(\n \"setParentHtml\",\n (html) => (leafletRef.value.getElement().innerHTML = html)\n );\n provide(\n \"setIcon\",\n (newIcon) => leafletRef.value.setIcon && leafletRef.value.setIcon(newIcon)\n );\n const { options, methods } = setup$g(props, leafletRef, context);\n if (options.icon === undefined) {\n // If the options objection has a property named 'icon', then Leaflet will overwrite\n // the default icon with it for the marker, _even if it is undefined_.\n // This leads to the issue discussed in https://github.com/vue-leaflet/vue-leaflet/issues/130\n delete options.icon;\n }\n\n onMounted(async () => {\n const { marker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = marker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"move\", debounce(methods.latLngSync, 100));\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$e.__file = \"src/components/LMarker.vue\";\n\nconst props$i = {\n ...props$3,\n latLngs: {\n type: Array,\n default: () => [],\n },\n smoothFactor: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n noClip: {\n type: Boolean,\n custom: true,\n default: false,\n },\n};\n\nconst setup$h = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n\n const methods = {\n ...pathMethods,\n setSmoothFactor(smoothFactor) {\n leafletRef.value.setStyle({ smoothFactor });\n },\n setNoClip(noClip) {\n leafletRef.value.setStyle({ noClip });\n },\n addLatLng(latLng) {\n leafletRef.value.addLatLng(latLng);\n },\n };\n return { options, methods };\n};\n\nconst props$j = {\n ...props$i,\n};\n\nconst setup$i = (props, leafletRef, context) => {\n const { options: polylineOptions, methods: polylineMethods } = setup$h(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polylineOptions,\n ...props,\n };\n\n const methods = {\n ...polylineMethods,\n toGeoJSON(precision) {\n return leafletRef.value.toGeoJSON(precision);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Polygon component, lets you add and customize polygon regions on the map\n */\nvar script$f = {\n name: \"LPolygon\",\n props: props$j,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$i(props, leafletRef, context);\n\n onMounted(async () => {\n const { polygon, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polygon(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$f.__file = \"src/components/LPolygon.vue\";\n\n/**\n * Polyline component, lets you add and personalize polylines on the map\n */\nvar script$g = {\n name: \"LPolyline\",\n props: props$i,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$h(props, leafletRef, context);\n\n onMounted(async () => {\n const { polyline, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polyline(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$g.__file = \"src/components/LPolyline.vue\";\n\nconst props$k = {\n ...props,\n content: {\n type: String,\n default: null,\n },\n};\n\nconst setup$j = (props, leafletRef) => {\n const { options, methods: componentMethods } = setup(props);\n const methods = {\n ...componentMethods,\n setContent(newVal) {\n if (leafletRef.value && newVal !== null && newVal !== undefined) {\n leafletRef.value.setContent(newVal);\n }\n },\n };\n return { options, methods };\n};\n\nconst render$2 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nconst props$l = {\n ...props$k,\n latLng: {\n type: [Object, Array],\n default: () => [],\n },\n};\n\nconst setup$k = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindPopup = inject(\"unbindPopup\");\n\n onBeforeUnmount(() => {\n unbindPopup();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a popup on the map\n */\nvar script$h = {\n name: \"LPopup\",\n props: props$l,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindPopup = inject(\"bindPopup\");\n\n const { options, methods } = setup$k(props, leafletRef);\n\n onMounted(async () => {\n const { popup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = popup(options);\n\n if (props.latLng !== undefined) {\n leafletRef.value.setLatLng(props.latLng);\n }\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindPopup({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$h.__file = \"src/components/LPopup.vue\";\n\nconst props$m = {\n ...props$j,\n bounds: {\n type: Array,\n default: undefined,\n },\n};\n\nconst setup$l = (props, leafletRef, context) => {\n const { options: polygonOptions, methods: polygonMethods } = setup$i(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polygonOptions,\n ...props,\n };\n\n const methods = {\n ...polygonMethods,\n setBounds(latLngBounds) {\n leafletRef.value.setBounds(latLngBounds);\n },\n setLatLngs(latLngs) {\n // Calling setLatLngs on a Leaflet rectangle will convert it\n // to a polygon. So instead, we call setBounds here to ensure\n // that the rectangle remains a rectangle, defined by the\n // bounds of the points in the latLngs array.\n leafletRef.value.setBounds(latLngs);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Rectangle component, lets you add and customize rectangular regions on the map\n */\nvar script$i = {\n name: \"LRectangle\",\n props: props$m,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$l(props, leafletRef, context);\n\n onMounted(async () => {\n const { rectangle, latLngBounds, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const bounds =\n props.bounds && props.bounds.length\n ? latLngBounds(props.bounds)\n : latLngBounds(props.latLngs);\n leafletRef.value = rectangle(bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$i.__file = \"src/components/LRectangle.vue\";\n\nconst props$n = {\n ...props$e,\n tms: {\n type: Boolean,\n default: false,\n },\n subdomains: {\n type: String,\n default: \"abc\",\n },\n detectRetina: {\n type: Boolean,\n default: false,\n },\n url: {\n type: String,\n default: null,\n },\n};\n\nconst setup$m = (props, leafletRef) => {\n const {\n options: gridLayerOptions,\n methods: gridLayerMethods,\n } = setup$e(props, leafletRef);\n const options = {\n ...gridLayerOptions,\n tms: props.tms,\n subdomains: props.subdomains,\n detectRetina: props.detectRetina,\n };\n return {\n options,\n methods: {\n ...gridLayerMethods,\n },\n };\n};\n\nvar script$j = {\n props: props$n,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$m(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = tileLayer(props.url, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { leafletObject: leafletRef };\n },\n render() {\n return null;\n },\n};\n\nscript$j.__file = \"src/components/LTileLayer.vue\";\n\nconst props$o = {\n ...props$k,\n};\n\nconst setup$n = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindTooltip = inject(\"unbindTooltip\");\n\n onBeforeUnmount(() => {\n unbindTooltip();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a tooltip on the map\n */\nvar script$k = {\n name: \"LTooltip\",\n props: props$o,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindTooltip = inject(\"bindTooltip\");\n\n const { options, methods } = setup$n(props, leafletRef);\n\n onMounted(async () => {\n const { tooltip, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tooltip(options);\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindTooltip({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$k.__file = \"src/components/LTooltip.vue\";\n\nconst props$p = {\n ...props$n,\n baseUrl: {\n type: String,\n default: null,\n required: true,\n },\n layers: {\n type: String,\n default: \"\",\n },\n styles: {\n type: String,\n default: \"\",\n },\n format: {\n type: String,\n default: \"image/jpeg\",\n },\n transparent: {\n type: Boolean,\n custom: false,\n },\n version: {\n type: String,\n default: \"1.1.1\",\n },\n crs: {\n default: null,\n },\n upperCase: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$o = (props, leafletRef) => {\n const {\n options: tileLayerOptions,\n methods: tileLayerMethods,\n } = setup$m(props, leafletRef);\n const options = {\n ...tileLayerOptions,\n layers: props.layers,\n styles: props.styles,\n format: props.format,\n transparent: props.transparent,\n version: props.version,\n crs: props.crs,\n upperCase: props.upperCase,\n };\n return {\n options,\n methods: {\n ...tileLayerMethods,\n },\n };\n};\n\nvar script$l = {\n props: props$p,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$o(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tileLayer.wms(props.baseUrl, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$l.__file = \"src/components/LWmsTileLayer.vue\";\n\nexport { script as LCircle, script$1 as LCircleMarker, script$2 as LControl, script$3 as LControlAttribution, script$4 as LControlLayers, script$5 as LControlScale, script$6 as LControlZoom, script$7 as LFeatureGroup, script$8 as LGeoJson, script$9 as LGridLayer, script$a as LIcon, script$b as LImageOverlay, script$c as LLayerGroup, script$d as LMap, script$e as LMarker, script$f as LPolygon, script$g as LPolyline, script$h as LPopup, script$i as LRectangle, script$j as LTileLayer, script$k as LTooltip, script$l as LWmsTileLayer };\n//# sourceMappingURL=vue-leaflet.esm.js.map\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vModelText as _vModelText, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20a704bc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-form\" }\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-item-radio\"\n}\nconst _hoisted_5 = [\"checked\", \"disabled\"]\nconst _hoisted_6 = { for: \"withGpx\" }\nconst _hoisted_7 = [\"checked\", \"disabled\"]\nconst _hoisted_8 = { for: \"withoutGpx\" }\nconst _hoisted_9 = { class: \"form-item\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"form-item\"\n}\nconst _hoisted_13 = { for: \"gpxFile\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { class: \"files-help info-box\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"form-item\"\n}\nconst _hoisted_17 = { for: \"title\" }\nconst _hoisted_18 = [\"required\", \"disabled\"]\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = { class: \"workout-date-duration\" }\nconst _hoisted_21 = { class: \"form-item\" }\nconst _hoisted_22 = { class: \"workout-date-time\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\"]\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = [\"disabled\"]\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_28 = [\"disabled\"]\nconst _hoisted_29 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_30 = [\"disabled\"]\nconst _hoisted_31 = { class: \"form-item\" }\nconst _hoisted_32 = [\"disabled\"]\nconst _hoisted_33 = { class: \"form-item\" }\nconst _hoisted_34 = { key: 1 }\nconst _hoisted_35 = {\n key: 2,\n class: \"form-buttons\"\n}\nconst _hoisted_36 = [\"disabled\"]\nconst _hoisted_37 = [\"onClick\"]\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n withDefaults,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout, IWorkoutForm } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n authUser: IUserProfile\n sports: ISport[]\n isCreation?: boolean\n loading?: boolean\n workout?: IWorkout\n }\n \nexport default /*#__PURE__*/_defineComponent({\n props: {\n authUser: null,\n sports: null,\n isCreation: { default: false },\n loading: { default: false },\n workout: { default: () => ({} as IWorkout) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IUserProfile, sports: ISport[], isCreation: boolean, loading: boolean, workout: IWorkout }\n\n \n\n const { t } = useI18n()\n const store = useStore()\n const router = useRouter()\n\n const { workout, isCreation, loading } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const gpx_limit_import = appConfig.value.gpx_limit_import\n const zipSizeLimit = appConfig.value.max_zip_file_size\n ? getReadableFileSize(appConfig.value.max_zip_file_size)\n : ''\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const workoutForm = reactive({\n sport_id: '',\n title: '',\n notes: '',\n workoutDate: '',\n workoutTime: '',\n workoutDurationHour: '',\n workoutDurationMinutes: '',\n workoutDurationSeconds: '',\n workoutDistance: '',\n })\n let withGpx = ref(\n props.workout.id ? props.workout.with_gpx : props.isCreation\n )\n let gpxFile: File | null = null\n const formErrors = ref(false)\n\n onMounted(() => {\n if (props.workout.id) {\n formatWorkoutForm(props.workout)\n }\n })\n\n function updateNotes(value: string) {\n workoutForm.notes = value\n }\n function updateWithGpx() {\n withGpx.value = !withGpx.value\n formErrors.value = false\n }\n function updateFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n gpxFile = event.target.files[0]\n }\n }\n function formatWorkoutForm(workout: IWorkout) {\n workoutForm.sport_id = `${workout.sport_id}`\n workoutForm.title = workout.title\n workoutForm.notes = workout.notes\n if (!workout.with_gpx) {\n const workoutDateTime = formatWorkoutDate(\n getDateWithTZ(workout.workout_date, props.authUser.timezone),\n 'yyyy-MM-dd'\n )\n const duration = workout.duration.split(':')\n workoutForm.workoutDistance = `${workout.distance}`\n workoutForm.workoutDate = workoutDateTime.workout_date\n workoutForm.workoutTime = workoutDateTime.workout_time\n workoutForm.workoutDurationHour = duration[0]\n workoutForm.workoutDurationMinutes = duration[1]\n workoutForm.workoutDurationSeconds = duration[2]\n }\n }\n function formatPayload(payload: IWorkoutForm) {\n payload.title = workoutForm.title\n payload.distance = +workoutForm.workoutDistance\n payload.duration =\n +workoutForm.workoutDurationHour * 3600 +\n +workoutForm.workoutDurationMinutes * 60 +\n +workoutForm.workoutDurationSeconds\n payload.workout_date = `${workoutForm.workoutDate} ${workoutForm.workoutTime}`\n }\n function updateWorkout() {\n const payload: IWorkoutForm = {\n sport_id: +workoutForm.sport_id,\n notes: workoutForm.notes,\n }\n if (props.workout.id) {\n if (props.workout.with_gpx) {\n payload.title = workoutForm.title\n } else {\n formatPayload(payload)\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT, {\n workoutId: props.workout.id,\n data: payload,\n })\n } else {\n if (withGpx.value) {\n if (!gpxFile) {\n const errorMessage = 'workouts.NO_FILE_PROVIDED'\n store.commit(ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES, errorMessage)\n return\n }\n payload.file = gpxFile\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT, payload)\n } else {\n formatPayload(payload)\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX, payload)\n }\n }\n }\n function onCancel() {\n if (props.workout.id) {\n router.push({\n name: 'Workout',\n params: { workoutId: props.workout.id },\n })\n } else {\n router.go(-1)\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => props.workout,\n async (\n newWorkout: IWorkout | undefined,\n previousWorkout: IWorkout | undefined\n ) => {\n if (newWorkout !== previousWorkout && newWorkout && newWorkout.id) {\n formatWorkoutForm(newWorkout)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"workout-edition\",\n class: _normalizeClass([\"center-card center-card with-margin\", { 'center-form': _unref(workout) && _unref(workout).with_gpx }])\n }, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`workouts.${_unref(isCreation) ? 'ADD' : 'EDIT'}_WORKOUT`)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateWorkout, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isCreation))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withGpx\",\n type: \"radio\",\n checked: _unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.WITH_GPX')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withoutGpx\",\n type: \"radio\",\n checked: !_unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_7),\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.WITHOUT_GPX')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \": \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"sport\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(workoutForm).sport_id) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) => s.is_active), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_11))\n }), 128))\n ], 40, _hoisted_10), [\n [_vModelSelect, _unref(workoutForm).sport_id]\n ])\n ]),\n (_unref(isCreation) && _unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \" \" + _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE_DESCRIPTION')) + \": \", 1),\n _createElementVNode(\"input\", {\n id: \"gpxFile\",\n name: \"gpxFile\",\n type: \"file\",\n accept: \".gpx, .zip\",\n disabled: _unref(loading),\n required: \"\",\n onInvalid: invalidateForm,\n onInput: updateFile\n }, null, 40, _hoisted_14),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.NO_FOLDER')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_FILES')) + \": \" + _toDisplayString(_unref(gpx_limit_import)), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(zipSizeLimit)), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('workouts.TITLE')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"title\",\n name: \"title\",\n type: \"text\",\n required: !_unref(isCreation),\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(workoutForm).title) = $event))\n }, null, 40, _hoisted_18), [\n [_vModelText, _unref(workoutForm).title]\n ])\n ])),\n (!_unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT_DATE')) + \":\", 1),\n _createElementVNode(\"div\", _hoisted_22, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-date\",\n name: \"workout-date\",\n type: \"date\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(workoutForm).workoutDate) = $event))\n }, null, 40, _hoisted_23), [\n [_vModelText, _unref(workoutForm).workoutDate]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-time\",\n name: \"workout-time\",\n class: \"workout-time\",\n type: \"time\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((_unref(workoutForm).workoutTime) = $event))\n }, null, 40, _hoisted_24), [\n [_vModelText, _unref(workoutForm).workoutTime]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \":\", 1),\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-hour\",\n name: \"workout-duration-hour\",\n class: \"workout-duration\",\n type: \"text\",\n placeholder: \"HH\",\n pattern: \"^([0-9]*[0-9])$\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_unref(workoutForm).workoutDurationHour) = $event))\n }, null, 40, _hoisted_26), [\n [_vModelText, _unref(workoutForm).workoutDurationHour]\n ]),\n _hoisted_27,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-minutes\",\n name: \"workout-duration-minutes\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n placeholder: \"MM\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_unref(workoutForm).workoutDurationMinutes) = $event))\n }, null, 40, _hoisted_28), [\n [_vModelText, _unref(workoutForm).workoutDurationMinutes]\n ]),\n _hoisted_29,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-seconds\",\n name: \"workout-duration-seconds\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n placeholder: \"SS\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((_unref(workoutForm).workoutDurationSeconds) = $event))\n }, null, 40, _hoisted_30), [\n [_vModelText, _unref(workoutForm).workoutDurationSeconds]\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (km):\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n name: \"workout-distance\",\n type: \"number\",\n min: \"0\",\n step: \"0.01\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_unref(workoutForm).workoutDistance) = $event))\n }, null, 40, _hoisted_32), [\n [_vModelText, _unref(workoutForm).workoutDistance]\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.NOTES')) + \": \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"notes\",\n input: _unref(workoutForm).notes,\n disabled: _unref(loading),\n onUpdateValue: updateNotes\n }, null, 8, [\"input\", \"disabled\"])\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(loading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_34, [\n _createVNode(_component_Loader)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: _unref(loading)\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_36),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_37)\n ]))\n ], 42, _hoisted_2)\n ])\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutEdition.vue?vue&type=style&index=0&id=20a704bc&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20a704bc\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"add-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { ComputedRef, computed } from 'vue'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const store = useStore()\n\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(WorkoutEdition, {\n authUser: _unref(authUser),\n sports: _unref(sports),\n isCreation: true,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"loading\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutChart.vue?vue&type=style&index=0&id=6f69d538&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=45d17286&lang=scss&scoped=true\"","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"edit-workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { computed, watch, onBeforeMount, ComputedRef } from 'vue'\n import { useRoute } from 'vue-router'\n\n import WorkoutEdition from '@/components/Workout/WorkoutEdition.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkoutData } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n\n onBeforeMount(() => {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: route.params.workoutId,\n })\n })\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (!newWorkoutId) {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(WorkoutEdition, {\n authUser: _unref(authUser),\n sports: _unref(sports),\n workout: _unref(workoutData).workout,\n loading: _unref(workoutData).loading\n }, null, 8, [\"authUser\", \"sports\", \"workout\", \"loading\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutMap.vue?vue&type=style&index=0&id=b4b3006a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutNotes.vue?vue&type=style&index=0&id=64197f7a&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./WorkoutEdition.vue?vue&type=style&index=0&id=20a704bc&lang=scss&scoped=true\"","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).toGeoJSON={})}(this,(function(e){\"use strict\";function t(e){return e&&e.normalize&&e.normalize(),e&&e.textContent||\"\"}function n(e,t){const n=e.getElementsByTagName(t);return n.length?n[0]:null}function o(e){const o={};if(e){const s=n(e,\"line\");if(s){const e=t(n(s,\"color\")),r=parseFloat(t(n(s,\"opacity\"))),i=parseFloat(t(n(s,\"width\")));e&&(o.stroke=e),isNaN(r)||(o[\"stroke-opacity\"]=r),isNaN(i)||(o[\"stroke-width\"]=96*i/25.4)}}return o}function s(e,o){const s={};let r,i;for(i=0;i1,g=Object.assign(r(e),o(n(e,\"extensions\")),{_gpxType:\"trk\"},i.length?{coordinateProperties:{times:c?i:i[0]}}:{});for(let e=0;enew Array(e.line.length).fill(null)))),t[n][e]=o):t[n]=o}}return{type:\"Feature\",properties:g,geometry:c?{type:\"MultiLineString\",coordinates:s}:{type:\"LineString\",coordinates:s[0]}}}function*g(e){const t=e.getElementsByTagName(\"trk\"),n=e.getElementsByTagName(\"rte\"),o=e.getElementsByTagName(\"wpt\");for(let e=0;eArray(e.length).fill(null)))),c[n][e]=t[n])}if(0!==s.length)return(r.length||i.length)&&(c.coordinateProperties=Object.assign(r.length?{times:1===s.length?r[0]:r}:{},i.length?{heart:1===s.length?i[0]:i}:{})),{type:\"Feature\",properties:c,geometry:{type:1===s.length?\"LineString\":\"MultiLineString\",coordinates:1===s.length?s[0]:s}}}function*y(e){const t=e.getElementsByTagName(\"Lap\");for(let e=0;e -
- {{ $t('workouts.NO_DATA_CLEANING') }} +
+
+ {{ $t('workouts.NO_DATA_CLEANING') }} +
+ +
+ +
@@ -61,6 +74,7 @@ const { t } = useI18n() let displayDistance = ref(true) + let beginElevationAtZero = ref(true) const datasets: ComputedRef = computed(() => getDatasets(props.workoutData.chartData, t) ) @@ -120,7 +134,7 @@ }, }, yElevation: { - beginAtZero: true, + beginAtZero: beginElevationAtZero.value, grid: { drawOnChartArea: false, }, @@ -206,7 +220,9 @@ padding: 0 $default-padding; } } - .no-data-cleaning { + .chart-info { + display: flex; + justify-content: space-between; font-size: 0.85em; font-style: italic; } @@ -215,8 +231,15 @@ @media screen and (max-width: $small-limit) { .card-content { padding: $default-padding 0; - .no-data-cleaning { - padding: 0 $default-padding * 2; + .chart-info { + display: flex; + flex-direction: column-reverse; + .elevation-start { + padding: $default-padding $default-padding * 1.5 0; + } + .no-data-cleaning { + padding: 0 $default-padding * 2; + } } } } diff --git a/fittrackee_client/src/locales/en/workouts.json b/fittrackee_client/src/locales/en/workouts.json index f18b2226..155b3942 100644 --- a/fittrackee_client/src/locales/en/workouts.json +++ b/fittrackee_client/src/locales/en/workouts.json @@ -51,6 +51,7 @@ "SPEED": "speed", "SPORT": "sport | sports", "START": "start", + "START_ELEVATION_AT_ZERO": "Elevation axis beginning at 0", "TITLE": "title", "TO": "to", "TOTAL_DURATION": "total duration", diff --git a/fittrackee_client/src/locales/fr/workouts.json b/fittrackee_client/src/locales/fr/workouts.json index 99ef7c93..6c8a3ccb 100644 --- a/fittrackee_client/src/locales/fr/workouts.json +++ b/fittrackee_client/src/locales/fr/workouts.json @@ -51,6 +51,7 @@ "SPEED": "vitesse", "SPORT": "sport | sports", "START": "début", + "START_ELEVATION_AT_ZERO": "Axe pour l'altitude démarrant à 0", "TITLE": "titre", "TO": "jusqu'au", "TOTAL_DURATION": "durée totale",