diff --git a/CHANGELOG.md b/CHANGELOG.md
index b5e29ba5..e161ca39 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,24 @@
# Change log
+## Version 0.7.17 (2023/06/03)
+
+### Translations
+
+* [PR#366](https://github.com/SamR1/FitTrackee/pull/366), [PR#369](https://github.com/SamR1/FitTrackee/pull/369) - Translations update from Hosted Weblate (Galician, thanks to @xmgz)
+* [PR#367](https://github.com/SamR1/FitTrackee/pull/367) - Translations update (Spanish, French)
+
+Translation status:
+- Dutch: 99%
+- English: 100%
+- French: 100%
+- Galician: 100%
+- German: 99%
+- Italian: 87%
+- Norwegian Bokmål: 36%
+- Polish: 3%
+- Spanish: 100%
+
+
## Version 0.7.16 (2023/05/29)
### Features and enhancements
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5c9f5a15..c92f555c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -40,7 +40,7 @@ see [Installations instructions](https://samr1.github.io/FitTrackee/installation
### Pull Requests
-Before starting, please open an issue to discuss implementation if the feature requires major changes or involves the addition of a new sport or language.
+**Note**: Before starting, please open an issue to discuss implementation if the feature requires major changes or involves the addition of a new sport or language.
Please make your changes from the development branch (`dev`).
@@ -73,7 +73,7 @@ Please make your changes from the development branch (`dev`).
$ make test-e2e
```
-* If needed, update translations.
+* If needed, update translations (at least add English strings).
* On client side, update files in `fittrackee_client/src/locales` folder.
* On API side (emails), to extract new strings into `messages.pot`:
```shell
@@ -102,6 +102,8 @@ Please make your changes from the development branch (`dev`).
* Ensure the pull requests description clearly describes the problem and solution. Include the relevant issue number if applicable.
+* Check that all tests have been successfully passed.
+
* If needed, [update your branch](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/keeping-your-pull-request-in-sync-with-the-base-branch).
diff --git a/VERSION b/VERSION
index bf7b715d..b22af294 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.7.16
+0.7.17
diff --git a/docs/.buildinfo b/docs/.buildinfo
index 510d8729..50a63c6a 100644
--- a/docs/.buildinfo
+++ b/docs/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: d573d60dbe9c41849a6a47899dd4f435
+config: 1082c44dc3fd60182581552b12505b63
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png
index c4614f3b..1af800ed 100644
Binary files a/docs/_images/fittrackee_screenshot-01.png and b/docs/_images/fittrackee_screenshot-01.png differ
diff --git a/docs/_images/fittrackee_screenshot-02.png b/docs/_images/fittrackee_screenshot-02.png
index cb4fa3fe..07eec035 100644
Binary files a/docs/_images/fittrackee_screenshot-02.png and b/docs/_images/fittrackee_screenshot-02.png differ
diff --git a/docs/_images/fittrackee_screenshot-03.png b/docs/_images/fittrackee_screenshot-03.png
index c48a29e9..77e8c65c 100644
Binary files a/docs/_images/fittrackee_screenshot-03.png and b/docs/_images/fittrackee_screenshot-03.png differ
diff --git a/docs/_images/fittrackee_screenshot-04.png b/docs/_images/fittrackee_screenshot-04.png
index 91c25598..e37ded3a 100644
Binary files a/docs/_images/fittrackee_screenshot-04.png and b/docs/_images/fittrackee_screenshot-04.png differ
diff --git a/docs/_images/fittrackee_screenshot-05.png b/docs/_images/fittrackee_screenshot-05.png
index 33b2933a..cc47f526 100644
Binary files a/docs/_images/fittrackee_screenshot-05.png and b/docs/_images/fittrackee_screenshot-05.png differ
diff --git a/docs/_images/fittrackee_screenshot-06.png b/docs/_images/fittrackee_screenshot-06.png
index eea2eb0d..9260b479 100644
Binary files a/docs/_images/fittrackee_screenshot-06.png and b/docs/_images/fittrackee_screenshot-06.png differ
diff --git a/docs/_images/fittrackee_screenshot-07.png b/docs/_images/fittrackee_screenshot-07.png
index 22bbb874..62e823d6 100644
Binary files a/docs/_images/fittrackee_screenshot-07.png and b/docs/_images/fittrackee_screenshot-07.png differ
diff --git a/docs/_images/fittrackee_screenshot-08.png b/docs/_images/fittrackee_screenshot-08.png
index 4a41e1fa..d80cf899 100644
Binary files a/docs/_images/fittrackee_screenshot-08.png and b/docs/_images/fittrackee_screenshot-08.png differ
diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt
index b5e29ba5..e161ca39 100644
--- a/docs/_sources/changelog.md.txt
+++ b/docs/_sources/changelog.md.txt
@@ -1,5 +1,24 @@
# Change log
+## Version 0.7.17 (2023/06/03)
+
+### Translations
+
+* [PR#366](https://github.com/SamR1/FitTrackee/pull/366), [PR#369](https://github.com/SamR1/FitTrackee/pull/369) - Translations update from Hosted Weblate (Galician, thanks to @xmgz)
+* [PR#367](https://github.com/SamR1/FitTrackee/pull/367) - Translations update (Spanish, French)
+
+Translation status:
+- Dutch: 99%
+- English: 100%
+- French: 100%
+- Galician: 100%
+- German: 99%
+- Italian: 87%
+- Norwegian Bokmål: 36%
+- Polish: 3%
+- Spanish: 100%
+
+
## Version 0.7.16 (2023/05/29)
### Features and enhancements
diff --git a/docs/_sources/features.rst.txt b/docs/_sources/features.rst.txt
index 649b2928..00c72ab7 100644
--- a/docs/_sources/features.rst.txt
+++ b/docs/_sources/features.rst.txt
@@ -207,6 +207,9 @@ Translations status on `Weblate `
.. figure:: https://hosted.weblate.org/widgets/fittrackee/-/multi-auto.svg
+.. note::
+ Polish is not yet available in **FitTrackee** interface.
+
Screenshots
^^^^^^^^^^^^
diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt
index 492e6754..bbf7a3d1 100644
--- a/docs/_sources/installation.rst.txt
+++ b/docs/_sources/installation.rst.txt
@@ -29,7 +29,7 @@ Prerequisites
- SMTP provider (if email sending is enabled)
- API key from a `weather data provider `__
- `Poetry `__ (for installation from sources only)
- - `Yarn `__ (for development only)
+ - `Node `__ 16+ and `Yarn `__ (for development only)
- Docker and Docker Compose (for development or evaluation purposes)
.. note::
@@ -509,13 +509,13 @@ Production environment
.. warning::
| Note that FitTrackee is under heavy development, some features may be unstable.
-- Download the last release (for now, it is the release v0.7.16):
+- Download the last release (for now, it is the release v0.7.17):
.. code:: bash
- $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.16.tar.gz
- $ tar -xzf v0.7.16.tar.gz
- $ mv FitTrackee-0.7.16 FitTrackee
+ $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.17.tar.gz
+ $ tar -xzf v0.7.17.tar.gz
+ $ mv FitTrackee-0.7.17 FitTrackee
$ cd FitTrackee
- Create **.env** from example and update it
@@ -635,13 +635,13 @@ Prod environment
- Change to the directory where FitTrackee directory is located
-- Download the last release (for now, it is the release v0.7.16) and overwrite existing files:
+- Download the last release (for now, it is the release v0.7.17) and overwrite existing files:
.. code:: bash
- $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.16.tar.gz
- $ tar -xzf v0.7.16.tar.gz
- $ cp -R FitTrackee-0.7.16/* FitTrackee/
+ $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.17.tar.gz
+ $ tar -xzf v0.7.17.tar.gz
+ $ cp -R FitTrackee-0.7.17/* FitTrackee/
$ cd FitTrackee
- Update **.env** if needed (see `Environment variables `__).
diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js
index e20ec2ff..6f1027ef 100644
--- a/docs/_static/documentation_options.js
+++ b/docs/_static/documentation_options.js
@@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: '0.7.16',
+ VERSION: '0.7.17',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/docs/api/auth.html b/docs/api/auth.html
index c9a6c275..a6027424 100644
--- a/docs/api/auth.html
+++ b/docs/api/auth.html
@@ -5,7 +5,7 @@
- Authentication and account — FitTrackee 0.7.16
+ Authentication and account — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -1469,7 +1469,7 @@ for other reasons.
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/configuration.html b/docs/api/configuration.html
index 16efa012..2cf837b9 100644
--- a/docs/api/configuration.html
+++ b/docs/api/configuration.html
@@ -5,7 +5,7 @@
- Configuration — FitTrackee 0.7.16
+ Configuration — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -159,7 +159,7 @@
"map_attribution" : "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" ,
"privacy_policy" : null ,
"privacy_policy_date" : null ,
- "version" : "0.7.16" ,
+ "version" : "0.7.17" ,
"weather_provider" : null
},
"status" : "success"
@@ -204,7 +204,7 @@
"map_attribution" : "© <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" ,
"privacy_policy" : null ,
"privacy_policy_date" : null ,
- "version" : "0.7.16" ,
+ "version" : "0.7.17" ,
"weather_provider" : null
},
"status" : "success"
@@ -290,7 +290,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/index.html b/docs/api/index.html
index 44d0464b..ba6fcb9a 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -5,7 +5,7 @@
- API documentation — FitTrackee 0.7.16
+ API documentation — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -161,7 +161,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/oauth2.html b/docs/api/oauth2.html
index 82a8e322..edc4c2e7 100644
--- a/docs/api/oauth2.html
+++ b/docs/api/oauth2.html
@@ -5,7 +5,7 @@
- OAuth2 — FitTrackee 0.7.16
+ OAuth2 — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -695,7 +695,7 @@ are supported by FitTrackee)
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/records.html b/docs/api/records.html
index 14fab3ce..f63098f4 100644
--- a/docs/api/records.html
+++ b/docs/api/records.html
@@ -5,7 +5,7 @@
- Records — FitTrackee 0.7.16
+ Records — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -263,7 +263,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/sports.html b/docs/api/sports.html
index d7d88bbd..46b07dc2 100644
--- a/docs/api/sports.html
+++ b/docs/api/sports.html
@@ -5,7 +5,7 @@
- Sports — FitTrackee 0.7.16
+ Sports — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -493,7 +493,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/stats.html b/docs/api/stats.html
index 829b1235..b2fe6138 100644
--- a/docs/api/stats.html
+++ b/docs/api/stats.html
@@ -5,7 +5,7 @@
- Statistics — FitTrackee 0.7.16
+ Statistics — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -420,7 +420,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/users.html b/docs/api/users.html
index 0e07eff2..2daf6a94 100644
--- a/docs/api/users.html
+++ b/docs/api/users.html
@@ -5,7 +5,7 @@
- Users — FitTrackee 0.7.16
+ Users — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -664,7 +664,7 @@ one admin.
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/api/workouts.html b/docs/api/workouts.html
index f393eea5..10e40725 100644
--- a/docs/api/workouts.html
+++ b/docs/api/workouts.html
@@ -5,7 +5,7 @@
- Workouts — FitTrackee 0.7.16
+ Workouts — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -1192,7 +1192,7 @@ must be provided with ascent)
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/changelog.html b/docs/changelog.html
index f473d5f0..a631f615 100644
--- a/docs/changelog.html
+++ b/docs/changelog.html
@@ -5,7 +5,7 @@
- Change log — FitTrackee 0.7.16
+ Change log — FitTrackee 0.7.17
documentation
@@ -42,7 +42,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -83,402 +83,406 @@
role="menu"
aria-labelledby="dLabelLocalToc">
Change log
-Version 0.7.16 (2023/05/29)
-Features and enhancements
-Bugs Fixed
+Version 0.7.17 (2023/06/03)
+Version 0.7.16 (2023/05/29)
+
Version 0.7.15 (2023/04/12)
Version 0.7.14 (2023/03/08)
Version 0.7.13 (2023/03/05)
Version 0.7.12 (2023/02/16)
Version 0.7.11 (2022/12/31)
Version 0.7.10 (2022/12/21)
Version 0.7.9 (2022/12/11)
-
-Version 0.7.8 (2022/11/30)
+Version 0.7.8 (2022/11/30)
+
Version 0.7.7 (2022/11/27)
Version 0.7.6 (2022/11/09)
Version 0.7.5 (2022/11/09)
Version 0.7.4 (2022/11/05)
Version 0.7.3 (2022/11/01)
-
-Version 0.7.2 (2022/09/21)
+Version 0.7.2 (2022/09/21)
+
Version 0.7.1 (2022/09/21)
Version 0.7.0 (2022/09/19)
Version 0.6.12 (2022/09/14)
Version 0.6.11 (2022/07/27)
-Issues Closed
-Bugs Fixed
+Issues Closed
-Pull Requests
+Pull Requests
Version 0.6.10 (2022/07/13)
-Issues Closed
-Bugs Fixed
+Issues Closed
-Pull Requests
Version 0.6.9 (2022/07/03)
-Issues Closed
Version 0.6.8 (2022/06/22)
-Issues Closed
Version 0.6.7 (2022/06/11)
-Issues Closed
Version 0.6.6 (2022/05/29)
Version 0.6.5 (2022/04/24)
-Issues Closed
Version 0.6.4 (2022/04/23)
-Issues Closed
Version 0.6.3 (2022/04/09)
-Pull Requests
Version 0.6.2 (2022/04/03)
-Issues Closed
Version 0.6.1 (2022/03/27)
-Issues Closed
Version 0.6.0 (2022/03/27)
-Issues Closed
-Features
-Bugs Fixed
+Issues Closed
-Pull Requests
Version 0.5.7 (2022/02/13)
-Issues Closed
-Misc
+Issues Closed
-Pull Requests
Version 0.5.6 (2022/02/05)
-Issues Closed
Version 0.5.5 (2022/01/19)
-Issues Closed
Version 0.5.4 (2022/01/01)
-Issues Closed
Version 0.5.3 (2022/01/01)
-Issues Closed
Version 0.5.2 (2021/12/19)
-Issues Closed
Version 0.5.1 (2021/11/30)
-Issues Closed
Version 0.5.0 (2021/11/14)
-Issues Closed
Version 0.4.9 (2021/07/16)
-Issues Closed
Version 0.4.8 (2021/07/03)
-Issues Closed
Version 0.4.7 (2021/04/07)
-Issues Closed
Version 0.4.6 (2021/02/21)
-Issues Closed
Version 0.4.5 (2021/02/17)
-Issues Closed
Version 0.4.4 (2021/01/31)
➡️ more informations: see documentation and current issues
-
-Issues Closed
-New Features
+Issues Closed
+
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/cli.html b/docs/cli.html
index 9b3b6b04..f1210722 100644
--- a/docs/cli.html
+++ b/docs/cli.html
@@ -5,7 +5,7 @@
- Command line interface — FitTrackee 0.7.16
+ Command line interface — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -378,7 +378,7 @@ Can be used if redis is not set (no dramatiq workers running).
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/features.html b/docs/features.html
index 9d0e508b..c8e821b0 100644
--- a/docs/features.html
+++ b/docs/features.html
@@ -5,7 +5,7 @@
- Features — FitTrackee 0.7.16
+ Features — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -428,6 +428,10 @@ A user with an inactive account cannot log in. (new in 0.6.0 ).
Translations status on Weblate (may differ from the released version):
+
+
Note
+
Polish is not yet available in FitTrackee interface.
+
Screenshots
@@ -480,7 +484,7 @@ A user with an inactive account cannot log in. (new in 0.6.0 ).
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/genindex.html b/docs/genindex.html
index f419be73..29727e83 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -4,7 +4,7 @@
- Index — FitTrackee 0.7.16
+ Index — FitTrackee 0.7.17
documentation
@@ -40,7 +40,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -191,7 +191,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/http-routingtable.html b/docs/http-routingtable.html
index e21b5c62..f88b5d64 100644
--- a/docs/http-routingtable.html
+++ b/docs/http-routingtable.html
@@ -4,7 +4,7 @@
- HTTP Routing Table — FitTrackee 0.7.16
+ HTTP Routing Table — FitTrackee 0.7.17
documentation
@@ -47,7 +47,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -431,7 +431,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/index.html b/docs/index.html
index 4802e7fc..b8434654 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -5,7 +5,7 @@
- FitTrackee — FitTrackee 0.7.16
+ FitTrackee — FitTrackee 0.7.17
documentation
@@ -42,7 +42,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -182,7 +182,7 @@ Map.
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/installation.html b/docs/installation.html
index 0572e168..6d425a6f 100644
--- a/docs/installation.html
+++ b/docs/installation.html
@@ -5,7 +5,7 @@
- Installation — FitTrackee 0.7.16
+ Installation — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -213,7 +213,7 @@
SMTP provider (if email sending is enabled)
API key from a weather data provider
Poetry (for installation from sources only)
-Yarn (for development only)
+Node 16+ and Yarn (for development only)
Docker and Docker Compose (for development or evaluation purposes)
@@ -829,11 +829,11 @@ $ make install-db
-Download the last release (for now, it is the release v0.7.16):
+Download the last release (for now, it is the release v0.7.17):
- $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.16.tar.gz
-$ tar -xzf v0.7.16.tar.gz
-$ mv FitTrackee-0.7.16 FitTrackee
+ $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.17.tar.gz
+$ tar -xzf v0.7.17.tar.gz
+$ mv FitTrackee-0.7.17 FitTrackee
$ cd FitTrackee
@@ -953,11 +953,11 @@ $ source .
Stop the application
Change to the directory where FitTrackee directory is located
-Download the last release (for now, it is the release v0.7.16) and overwrite existing files:
+Download the last release (for now, it is the release v0.7.17) and overwrite existing files:
-
$ wget https://github.com/SamR1/FitTrackee/archive/v0.7.16.tar.gz
-$ tar -xzf v0.7.16.tar.gz
-$ cp -R FitTrackee-0.7.16/* FitTrackee/
+ $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.17.tar.gz
+$ tar -xzf v0.7.17.tar.gz
+$ cp -R FitTrackee-0.7.17/* FitTrackee/
$ cd FitTrackee
@@ -1224,7 +1224,7 @@ $ make docker-test-python
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/oauth.html b/docs/oauth.html
index d317a1b2..445c6edc 100644
--- a/docs/oauth.html
+++ b/docs/oauth.html
@@ -5,7 +5,7 @@
-
OAuth 2.0 — FitTrackee 0.7.16
+ OAuth 2.0 — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -260,7 +260,7 @@ It is recommended to use PKCE to provide a better security.
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/objects.inv b/docs/objects.inv
index 3b0fda91..a6f6800c 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/search.html b/docs/search.html
index fbdb8065..4efd7ca2 100644
--- a/docs/search.html
+++ b/docs/search.html
@@ -4,7 +4,7 @@
-
Search — FitTrackee 0.7.16
+ Search — FitTrackee 0.7.17
documentation
@@ -47,7 +47,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -155,7 +155,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 9e92a9da..82479e91 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication and account", "Configuration", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "OAuth 2.0", "Third-party tools", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 14], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 13, 14], "regist": [0, 1, 9, 11, 13], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 13, 14, 17], "send": [0, 7, 9, 11, 13], "confirm": [0, 3, 9, 11, 13], "email": [0, 1, 7, 9, 10, 11, 16], "The": [0, 9, 10, 11, 13, 14], "newli": [0, 10, 13], "creat": [0, 3, 8, 9, 11, 13, 14], "i": [0, 1, 3, 8, 9, 10, 11, 12, 13, 14, 17], "inact": [0, 7, 11, 13], "must": [0, 1, 3, 5, 7, 8, 9, 11, 13, 14, 16], "hi": [0, 7, 9, 11], "activ": [0, 5, 7, 9, 10, 11, 12, 13], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 13, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13], "content": [0, 1, 3, 4, 5, 6, 7, 8, 9], "type": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8, 11], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "error": [0, 1, 3, 5, 7, 8, 9, 11, 13, 16], "registr": [0, 1, 9, 10, 11, 13, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 9, 10, 11, 13], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 16], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 9, 10, 13], "string": [0, 1, 3, 5, 6, 7, 8, 13, 14], "3": [0, 5, 6, 7, 8, 11, 13], "30": [0, 6], "charact": [0, 9], "requir": [0, 9, 13, 14], "password": [0, 7, 9, 10, 11, 13], "8": [0, 8, 11], "lang": [0, 9], "languag": [0, 7, 9, 11], "prefer": [0, 7, 9], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13], "fallback": 0, "en": [0, 7], "english": [0, 9, 11], "accepted_polici": 0, "boolean": [0, 1, 3, 7, 10], "true": [0, 1, 3, 5, 7, 9, 13], "accept": 0, "privaci": [0, 1, 9, 11], "polici": [0, 1, 9, 11], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": [0, 10], "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 13, 14], "alphanumer": [0, 9], "underscor": 0, "_": [0, 9], "allow": [0, 1, 8, 9, 10, 11, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 9, 10, 11, 13], "500": [0, 1, 5, 7, 8, 9], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 9, 11, 12], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 9], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 11], "administr": [0, 1, 7, 8, 14, 17], "after": [0, 3, 9, 11, 13, 14], "auth_token": 0, "web": [0, 12, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "resend": 0, "instruct": [0, 9, 11, 13], "If": [0, 3, 11, 13, 14], "thi": [0, 3, 8, 9, 10, 11, 12, 13], "endpoint": [0, 1, 3, 9, 13, 14], "avail": [0, 4, 10, 11, 13, 14, 15], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 9], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 9], "url": [0, 3, 9, 13, 14, 16], "wa": [0, 9], "login": 0, "an": [0, 1, 3, 5, 7, 9, 11, 13, 14, 16], "can": [0, 7, 9, 10, 11, 12, 13, 14, 16], "log": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 13, 16], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 13], "get": [0, 1, 3, 4, 5, 6, 7, 8, 14], "profil": [0, 3, 9, 14], "info": [0, 9, 11], "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 14], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "accepted_privacy_polici": 0, "admin": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 13], "fals": [0, 1, 3, 5, 7, 8, 13], "bio": [0, 7], "null": [0, 1, 5, 7, 8, 9], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8, 11], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 9], "gmt": [0, 3, 4, 7, 8], "date_format": 0, "dd": 0, "mm": 0, "yyyi": 0, "display_asc": 0, "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 13, 14], "email_to_confirm": 0, "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 13], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 5, 7, 8, 10, 11, 13], "pictur": [0, 7, 8, 9], "record": [0, 2, 7, 8, 9, 11], "id": [0, 3, 4, 5, 6, 7, 8, 14], "9": [0, 4, 7, 11, 13], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 11, 13, 14, 16], "18": [0, 4, 7, 8, 9], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 11, 13], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8, 10, 11, 13], "ha": [0, 4, 7, 8, 9, 11, 12], "43": [0, 4, 7, 8, 9], "97": [0, 4, 7, 8], "11": [0, 4, 7, 11, 13], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 11, 13], "start_elevation_at_zero": 0, "timezon": [0, 7, 8, 9, 11], "europ": [0, 7], "pari": [0, 7], "total_asc": [0, 6], "720": 0, "35": [0, 9], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 9, 13], "27": [0, 3, 7], "use_raw_gpx_spe": 0, "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 14], "author": [0, 1, 3, 4, 5, 6, 7, 8, 13, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 13], "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 13], "0": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 10], "edit": [0, 9, 11], "write": [0, 1, 3, 5, 7, 8, 14], "updat": [0, 1, 5, 7, 8, 9, 11, 13], "first": [0, 3, 11, 14], "name": [0, 3, 7, 9, 13], "last": [0, 9, 13], "biographi": 0, "birth": [0, 9], "date": [0, 6, 8, 9, 11], "format": [0, 6, 8, 9, 11], "y": [0, 6, 8, 13], "d": [0, 6, 8], "support": [0, 3, 9, 11, 13, 14, 16], "default": [0, 3, 6, 7, 8, 9, 11, 13], "date_str": 0, "correspond": [0, 13], "client": [0, 3, 9, 11, 13, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 9, 12, 13], "e": 0, "fr": [0, 7, 13], "gl": 0, "nl": 0, "de": [0, 13], "nb": 0, "us": [0, 3, 7, 8, 9, 10, 11, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 17], "app": [0, 3, 9, 11, 12, 13, 14], "highest": [0, 4, 11], "ascent": [0, 4, 8, 9, 11], "total": [0, 3, 9, 11], "distanc": [0, 4, 8, 9, 11], "imperi": [0, 9, 11], "unit": [0, 9, 13], "elev": [0, 8, 9, 11, 13], "plot": 0, "start": [0, 6, 8, 9, 11, 13, 17], "zero": [0, 9, 11], "time": [0, 6, 8, 9, 11], "zone": 0, "unfilt": 0, "gpx": [0, 3, 8, 9, 11, 12, 13, 15], "calcul": [0, 9, 11], "speed": [0, 4, 8, 9, 11, 13], "doe": [0, 6, 7, 8, 9], "week": [0, 6, 9, 11], "mondai": [0, 6, 11], "don": 0, "t": [0, 9, 16], "match": [0, 8, 9], "sport": [0, 2, 6, 8, 9, 13], "color": [0, 5, 9, 11], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 9, 10, 11, 13], "ad": [0, 9, 10, 11], "workout": [0, 2, 3, 4, 5, 6, 9, 12, 14, 15, 17], "float": [0, 8], "stop": [0, 9, 11, 13], "threshold": [0, 9, 11], "gpxpy": [0, 11, 13], "exist": [0, 6, 7, 8, 9, 11, 12, 13], "delet": [0, 3, 7, 8, 9, 10, 11], "reset": [0, 7, 9, 10, 11, 13], "given": [0, 3, 13], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 11, 13, 14], "No": [0, 3, 7, 8, 9, 12], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 9, 10, 11, 12, 13, 15, 17], "imag": [0, 7, 8, 9, 11, 13, 17], "extens": [0, 8, 13], "jpg": 0, "png": [0, 8, 13], "gif": 0, "part": [0, 8], "select": [0, 8, 11], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 11, 13], "dure": [0, 8], "size": [0, 1, 8, 9, 11, 13], "exce": [0, 8, 9], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 11, 13, 16], "process": [0, 9, 10, 13], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 11, 12, 14, 16], "enabl": [0, 1, 7, 11, 13], "chang": [0, 11, 12, 13], "one": [0, 7, 8, 11], "current": [0, 9], "address": [0, 11, 13], "inform": [0, 1, 9, 11, 12, 13], "anoth": [0, 7, 11, 13], "new": [0, 7, 10, 11, 13, 14], "new_password": 0, "miss": [0, 9], "logout": [0, 9], "blacklist": [0, 10], "out": 0, "access": [0, 3, 9, 13, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 13], "reason": 0, "export": [0, 9, 10, 11, 12, 13], "return": [0, 3, 4, 7, 8, 9, 13], "creation": [0, 9, 11], "in_progress": 0, "byte": 0, "wed": 0, "mar": 0, "2023": [0, 13], "31": [0, 8, 13], "17": [0, 8, 13], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 8, 9, 11], "file_s": 0, "924": 0, "ongo": 0, "complet": [0, 9], "download": [0, 8, 9, 11, 13, 17], "archiv": [0, 1, 9, 10, 11, 13], "archive_rgjsr3fhr5yp": 0, "x": [0, 8, 9, 13, 14], "gzip": 0, "filenam": 0, "config": [1, 9, 13, 16], "about": [1, 9, 11, 13, 14], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 13], "copi": [1, 13], "href": [1, 13], "www": [1, 13], "openstreetmap": [1, 9, 13], "org": [1, 13], "copyright": [1, 13], "contributor": [1, 9, 13, 15], "privacy_polici": 1, "privacy_policy_d": 1, "version": [1, 10, 11, 13], "7": [1, 8, 10, 11, 13, 14], "16": [1, 6, 8, 11, 13], "weather_provid": 1, "authent": [1, 2, 3, 4, 5, 7, 8, 14], "instanc": [1, 3, 9, 11, 13, 14], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 9, 10], "number": [1, 7, 8, 9, 10, 11, 13], "singl": [1, 7, 9, 11, 13], "you": [1, 5, 6, 7, 8, 11, 12, 13], "have": [1, 5, 6, 7, 8, 9], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 9, 13, 16], "pong": 1, "account": [2, 7, 9, 10, 13, 15], "configur": [2, 9, 11, 13, 14], "oauth2": [2, 14], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 10, 11, 13], "page": [3, 7, 8, 9, 11], "fittracke": [3, 10, 11, 13, 14, 15, 17], "parti": [3, 11, 12, 14], "without": [3, 6, 7, 8, 9, 11, 12], "client_descript": 3, "client_id": [3, 14], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 9], "import": [3, 9, 11, 13, 15], "redirect_uri": 3, "callback": [3, 14], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 13, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 9, 12, 13], "redirect": [3, 14], "descript": [3, 10, 13], "option": [3, 9, 10, 13, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 8, 9, 11, 13], "associ": 3, "issu": [3, 12, 13], "response_typ": [3, 14], "state": [3, 14], "uniqu": [3, 14], "prevent": [3, 13, 14], "cross": [3, 11, 13, 14], "site": [3, 14], "forgeri": [3, 14], "mandatori": [3, 8, 9, 10, 13, 14], "recommend": [3, 13, 14], "code_challeng": [3, 14], "gener": [3, 9, 10, 11, 13, 14], "from": [3, 6, 8, 9, 11, 12, 14, 15], "verifi": [3, 14], "pkce": [3, 14], "code_challenge_method": [3, 14], "method": [3, 13, 14], "challeng": [3, 14], "s256": [3, 14], "authlib": [3, 13, 14], "librari": [3, 13, 14], "refresh": [3, 9], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 14], "authorization_cod": [3, 14], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 17], "code_verifi": 3, "follow": [4, 10, 11, 13, 14, 15, 16], "averag": [4, 8, 9, 11], "farthest": [4, 9, 11], "longest": [4, 9, 11], "durat": [4, 8, 9, 11], "maximum": [4, 9, 10, 11], "non": [5, 12], "is_active_for_us": 5, "label": [5, 9], "cycl": [5, 9, 11], "transport": [5, 9, 11], "hike": [5, 9, 11], "mountain": [5, 9, 11], "bike": [5, 8, 9, 11], "run": [5, 9, 10, 11, 13, 14], "walk": [5, 9, 11], "has_workout": 5, "stat": [6, 9], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "203": 6, "156": [6, 9], "15": [6, 8, 10, 11, 13], "282": [6, 9], "12341": 6, "99": [6, 9], "150": 6, "178": [6, 9], "47": [6, 8, 9], "9960": 6, "95": [6, 9], "46": [6, 9], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 11], "month": [6, 9, 11], "year": [6, 11], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 13, 14], "some": [7, 8, 9, 11, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 9, 13], "q": 7, "order": [7, 8, 9, 14], "sort": [7, 8, 11], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 9, 13, 17], "jpeg": 7, "add": [7, 9, 10, 11, 12], "remov": [7, 9, 10, 11], "modifi": [7, 9, 10, 13], "new_email": 7, "reset_password": 7, "differ": [7, 9, 11], "than": [7, 9, 10], "curent": 7, "A": [7, 9, 10, 11, 13, 16], "own": [7, 11, 12], "except": [7, 13, 16], "he": 7, "": [7, 8, 9, 11, 13], "john_do": 7, "your": [7, 11, 12, 13], "02": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 9, 11], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 9, 11, 12, 17], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 9], "next_workout": 8, "note": [8, 9, 11, 13], "paus": [8, 9], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 9, 11], "titl": [8, 9, 11], "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 9, 11], "distance_from": 8, "minim": [8, 14], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 11], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "quert": 8, "ani": 8, "case": [8, 11, 13], "insensit": [8, 13], "workout_short_id": 8, "57": [8, 9], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 13], "chart_data": 8, "chart": [8, 9, 11, 13], "j": [8, 9, 13], "279": [8, 9], "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 9], "7380": 8, "280": [8, 9], "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 13], "tile": [8, 9, 11], "c": [8, 13], "4109": 8, "2930": 8, "subdomain": [8, 9, 13], "zoom": 8, "index": 8, "along": 8, "axi": [8, 9, 11], "xml": 8, "201": [8, 9], "doubl": 8, "quot": 8, "escap": 8, "no_gpx": 8, "uuid": [8, 9], "km": [8, 11], "second": 8, "pr": 9, "358": 9, "filter": [9, 11], "359": 9, "footer": 9, "overlap": 9, "350": 9, "host": [9, 13], "weblat": [9, 11], "galician": [9, 11], "352": 9, "dutch": [9, 11], "356": 9, "init": [9, 13], "polish": 9, "357": 9, "365": 9, "spanish": [9, 11], "german": [9, 11], "italian": [9, 11], "87": 9, "norwegian": [9, 11], "bokm\u00e5l": [9, 11], "36": 9, "yet": [9, 12], "interfac": [9, 12, 13], "thank": [9, 15], "bjornclauw": 9, "gallegonovato": 9, "gnu": 9, "ewm": 9, "jat255": 9, "xmgz": 9, "contain": [9, 11, 13], "databas": [9, 11, 13, 16], "migrat": [9, 10, 13], "see": [9, 11, 12, 13, 14, 16], "upgrad": 9, "among": 9, "now": [9, 10, 11, 13], "partial": 9, "below": [9, 13], "darkski": [9, 13], "sinc": [9, 13, 14], "servic": [9, 13], "shut": [9, 13], "down": [9, 13], "march": [9, 13], "319": 9, "cli": [9, 10, 11, 13], "329": 9, "make": [9, 13], "sticki": 9, "333": 9, "338": 9, "relev": 9, "328": 9, "altitud": [9, 11], "track": [9, 12], "incorrect": 9, "b29ed7a": 9, "dashboard": 9, "250": 9, "320": 9, "323": 9, "06ba975": 9, "bcc568e": 9, "ea0ac99": 9, "a458f5f": 9, "075aeb9": 9, "60e164d": 9, "98": 9, "318": 9, "weather": [9, 11], "comradekingu": 9, "qwerty287": 9, "lavoi": 9, "mondstern": 9, "314": 9, "fail": [9, 17], "315": 9, "agre": [9, 11], "custom": [9, 11, 13], "defin": [9, 11], "review": [9, 11], "upload": [9, 10, 11, 13, 15, 17], "lastli": 9, "addit": [9, 11, 13], "mai": [9, 11, 12, 13], "301": [9, 13], "304": 9, "305": 9, "307": 9, "modal": 9, "posit": [9, 11], "297": 9, "308": 9, "310": 9, "290": 9, "294": 9, "drop": 9, "postgresql10": 9, "depend": [9, 13], "265": 9, "implement": [9, 14], "altern": 9, "visualcross": 9, "environ": [9, 10, 16], "variabl": [9, 16], "set": [9, 10, 11, 13, 14, 16], "weather_api_provid": [9, 13], "287": 9, "289": 9, "dperruso": 9, "92": 9, "c88a515": 9, "f96dcef": 9, "278": 9, "270": 9, "nederland": 9, "258": 9, "pars": [9, 13], "link": [9, 13], "area": 9, "271": 9, "273": 9, "274": 9, "test": [9, 13], "parallel": 9, "275": 9, "worker": [9, 10, 13, 16], "entri": [9, 13], "point": [9, 13], "fittrackee_work": [9, 10, 13], "command": [9, 11, 12, 13], "flask": [9, 13], "dramatiq": [9, 10, 13], "3c8d9c2": 9, "trail": [9, 11], "comma": [9, 13], "dev": 9, "264": 9, "ui": 9, "white": 9, "grai": 9, "background": 9, "266": 9, "260": 9, "261": 9, "should": [9, 13], "limit": [9, 11], "still": [9, 11, 12, 13], "need": [9, 11, 13, 14], "89": 9, "b1536fc": 9, "257": 9, "bodi": [9, 13, 14], "nginx": [9, 11, 13, 14, 16], "112": 9, "244": 9, "virtual": [9, 11], "ride": 9, "246": 9, "postgresql": [9, 13, 16], "247": 9, "microsecond": 9, "252": 9, "242": 9, "241": 9, "strength": 9, "estim": 9, "packag": [9, 13], "239": 9, "cb9d02f": 9, "88": 9, "231": 9, "236": 9, "rate": 9, "232": 9, "hidden": [9, 11], "237": 9, "212": 9, "230": 9, "problem": 9, "225": 9, "grammar": 9, "skylan0916": 9, "In": [9, 11], "execut": 9, "lower": 9, "v0": [9, 13], "postgr": [9, 16], "213": 9, "measur": 9, "ft": 9, "mi": 9, "223": 9, "icon": [9, 13], "167": 9, "162": 9, "fmstrat": 9, "210": 9, "could": 9, "staticmap_subdomain": [9, 13], "209": 9, "multipl": 9, "gorgobacka": 9, "And": 9, "detect": 9, "browser": 9, "208": 9, "card": 9, "html": 9, "attribut": [9, 13], "197": 9, "196": 9, "manag": [9, 10, 13], "tool": [9, 12, 13], "190": 9, "were": 9, "193": 9, "192": 9, "instead": [9, 11], "191": 9, "layout": 9, "includ": 9, "195": 9, "affect": [9, 11], "previous": 9, "cc4287e": 9, "docker": 9, "env": [9, 13], "offset": 9, "refacto": 9, "befor": [9, 13], "introduc": 9, "possibl": [9, 11, 12, 13], "smtp": [9, 13], "reduc": 9, "pre": 9, "requisit": 9, "To": [9, 13, 14], "180": 9, "cannot": [9, 11], "tl": [9, 13], "177": 9, "small": 9, "screen": [9, 11], "175": 9, "173": 9, "171": 9, "correctli": 9, "sent": [9, 11, 13, 14], "155": 9, "106": 9, "169": 9, "161": 9, "160": 9, "sever": [9, 11, 12, 13], "danielsiersleben": 9, "report": 9, "initi": [9, 13], "149": 9, "initialis": [9, 13], "152": 9, "autoescap": 9, "jinja": 9, "templat": 9, "151": 9, "sanit": 9, "input": 9, "serv": [9, 13], "warn": [9, 11], "launch": 9, "w": 9, "script": 9, "entrypoint": 9, "avoid": 9, "product": 9, "dotenv": 9, "146": 9, "145": 9, "model": 9, "140": 9, "fullscreen": 9, "control": [9, 11, 13], "138": 9, "135": 9, "finish": 9, "marker": 9, "134": 9, "wind": [9, 11], "direct": [9, 11], "877fa0f": 9, "calendar": [9, 11], "resolut": 9, "131": 9, "129": 9, "127": [9, 13], "legitim": 9, "uri": 9, "localhost": [9, 13], "25": [9, 13], "123": 9, "121": 9, "snowsho": [9, 11], "116": 9, "better": [9, 14], "button": 9, "graph": 9, "115": 9, "91": 9, "min": 9, "90": 9, "seem": 9, "104": 9, "switch": 9, "agplv3": 9, "licens": [9, 12, 13], "101": 9, "full": [9, 11], "develop": [9, 10, 12], "109": 9, "slow": 9, "movement": 9, "84": 9, "93": 9, "paf38": 9, "83": 9, "static": [9, 11, 13], "keep": [9, 12, 13], "default_staticmap": [9, 13], "81": 9, "remain": 9, "textarea": 9, "82": 9, "dai": [9, 10, 11, 13], "80": [9, 13], "save": [9, 11], "79": 9, "rebuild": 9, "75": 9, "same": 9, "python": [9, 13, 14], "javascript": [9, 13], "due": 9, "sqlalchemi": [9, 13, 16], "engin": [9, 13, 16], "longer": [9, 16], "database_url": [9, 13], "72": 9, "exceed": 9, "71": 9, "greater": 9, "70": 9, "less": 9, "66": 9, "64": 9, "shown": [9, 14, 17], "62": 9, "refactor": 9, "evalu": [9, 13], "purpos": [9, 13], "standard": [9, 13], "term": [9, 13], "directori": [9, 11, 13], "also": [9, 10, 11, 12, 13], "59": 9, "major": 9, "instal": [9, 12], "becom": 9, "more": [9, 10, 11, 12, 13], "easi": 9, "been": [9, 12], "renam": 9, "layer": [9, 13], "replac": [9, 13], "thunderforest": [9, 13], "outdoor": [9, 11, 12, 13], "54": 9, "simplifi": [9, 14], "redi": [9, 10, 13], "side": 9, "4c3fc34": 9, "empti": [9, 10, 13], "34614d5": 9, "spinner": 9, "load": [9, 16], "b862a77": 9, "2e1ee2c": 9, "interceptor": 9, "rout": [9, 13], "definit": 9, "weekend": 9, "40": 9, "i18n": 9, "41": 9, "show": [9, 10, 13], "mous": 9, "over": 9, "choos": [9, 11], "33": 9, "37": 9, "34": 9, "anymor": 9, "poetri": [9, 13], "pipenv": 9, "28": 9, "26": 9, "tooltip": [9, 11], "montain": 9, "even": [9, 11], "enter": [9, 11], "kei": [9, 11, 13], "farest": 9, "search": 9, "owner": [9, 11, 13], "view": [9, 11, 13], "usag": [10, 13], "arg": [10, 13], "help": [10, 13], "exit": [10, 13], "deprec": 10, "next": [10, 11], "fittrackee_set_admin": 10, "fittrackee_upgrade_db": 10, "appli": 10, "relat": [10, 11, 13, 14], "argument": 10, "random": 10, "incomplet": 10, "store": [11, 12, 14], "For": [11, 13, 14], "kind": 11, "encrypt": 11, "With": [11, 13], "open": [11, 12, 13], "street": [11, 12], "electr": 11, "row": 11, "ski": 11, "alpin": 11, "countri": 11, "overridden": 11, "which": 11, "up": [11, 12], "metric": 11, "system": [11, 13], "origin": 11, "particular": 11, "visual": [11, 13], "sourc": 11, "arrow": 11, "indic": 11, "come": 11, "period": [11, 13], "dropdown": 11, "recent": 11, "On": [11, 13], "line": [11, 12, 13], "between": 11, "hide": 11, "minimum": 11, "exclud": 11, "extrem": 11, "gp": 11, "overrid": 11, "appear": 11, "third": [11, 12, 14], "individu": 11, "necessari": [11, 13], "like": [11, 13], "markdown": 11, "syntax": 11, "adapt": [11, 13], "discours": 11, "lock": 11, "via": 11, "french": 11, "releas": [11, 13], "mobil": 12, "them": 12, "android": 12, "exhaust": 12, "runner": 12, "gpl": 12, "v3": 12, "forrunn": 12, "opentrack": 12, "apach": 12, "fitotrack": 12, "under": [12, 13], "heavi": [12, 13], "featur": [12, 13], "unstabl": [12, 13], "document": [12, 13, 14, 16], "troubleshoot": 12, "written": 13, "typescript": 13, "staticmap": 13, "coordin": 13, "task": 13, "queue": 13, "vue3": 13, "vuex": 13, "logo": 13, "made": 13, "freepik": 13, "flaticon": 13, "fork": 13, "awesom": 13, "yarn": 13, "compos": 13, "step": 13, "describ": 13, "linux": 13, "debian": 13, "arch": 13, "o": 13, "encount": 13, "makefil": 13, "thei": [13, 14], "flask_app": 13, "modul": 13, "pwd": 13, "__main__": 13, "py": 13, "els": 13, "port": 13, "5000": 13, "app_set": 13, "productionconfig": 13, "app_secret_kei": 13, "strong": 13, "jwt": 13, "app_work": 13, "spawn": 13, "gunicorn": [13, 16], "app_log": 13, "path": [13, 16], "upload_fold": [13, 16], "absolut": [13, 16], "where": 13, "folder": 13, "application_directori": 13, "virtualenv": 13, "5432": 13, "begin": 13, "database_disable_pool": 13, "pool": 13, "directli": 13, "ui_url": 13, "email_url": [13, 16], "sender_email": 13, "sender": 13, "redis_url": 13, "workers_process": 13, "api_rate_limit": 13, "300": 13, "minut": 13, "tile_server_url": 13, "b": 13, "osm": 13, "franc": 13, "target": 13, "_blank": 13, "rel": 13, "noopen": 13, "noreferr": 13, "komoot": 13, "otherwis": 13, "weather_api_kei": 13, "weather_api": 13, "vue_app_api_url": 13, "unencrypt": 13, "ssl": 13, "465": 13, "starttl": 13, "587": 13, "office365": 13, "work": 13, "omit": 13, "old": 13, "adress": 13, "notif": 13, "readi": 13, "apikei": 13, "xxxx": 13, "expect": 13, "osmfr": 13, "fond": 13, "cart": 13, "par": 13, "mention": 13, "legal": 13, "nofollow": 13, "sou": 13, "nbsp": 13, "creativecommon": 13, "sa": 13, "licenc": 13, "cc": 13, "BY": 13, "chosen": 13, "randomli": 13, "base": 13, "ip": 13, "fix": 13, "window": 13, "strategi": 13, "subject": 13, "asset": 13, "notat": 13, "separ": [13, 14], "hour": 13, "mainten": 13, "diagnost": 13, "util": 13, "commmand": 13, "clear": 13, "specif": 13, "enumer": 13, "histor": 13, "hourli": 13, "discontinu": 13, "wai": 13, "pip": 13, "WITH": 13, "schema": 13, "privileg": 13, "nano": 13, "ftcli": 13, "db": 13, "systemd": 13, "archlinux": 13, "yai": 13, "project": 13, "clone": 13, "repo": 13, "git": 13, "github": 13, "samr1": 13, "cd": 13, "vue": 13, "3000": 13, "wget": 13, "tar": 13, "gz": 13, "xzf": 13, "mv": 13, "sql": 13, "backup": 13, "pg_dump": 13, "u": 13, "changelog": 13, "restart": 13, "pull": 13, "repositori": 13, "overwrit": 13, "cp": 13, "r": 13, "There": 13, "One": 13, "proxi": [13, 14], "pass": 13, "distribut": 13, "network": 13, "startlimitintervalsec": 13, "simpl": 13, "alwai": 13, "restartsec": 13, "standardoutput": 13, "syslog": 13, "standarderror": 13, "syslogidentifi": 13, "workingdirectori": 13, "home": 13, "execstart": 13, "venv": 13, "bin": 13, "create_app": 13, "logfil": 13, "wantedbi": 13, "multi": 13, "higher": 13, "timeout": [13, 16], "its": 13, "OF": 13, "listen": 13, "443": 13, "http2": 13, "server_nam": 13, "ssl_certif": 13, "fullchain": 13, "pem": 13, "ssl_certificate_kei": 13, "privkei": 13, "how": 13, "1mb": 13, "larger": [13, 16], "ll": 13, "uncom": 13, "want": 13, "client_max_body_s": [13, 16], "1m": 13, "proxy_pass": 13, "proxy_redirect": 13, "proxy_set_head": [13, 14], "real": 13, "remote_addr": 13, "forward": [13, 14], "proxy_add_x_forwarded_for": 13, "proto": [13, 14], "scheme": [13, 14], "request_uri": 13, "build": 13, "8025": 13, "mailhog": 13, "shell": 13, "insid": 13, "fittrackee_cli": 13, "lint": 13, "fittrackee_ynh": 13, "rest": 14, "whose": 14, "most": 14, "interact": 14, "tab": 14, "exchang": 14, "secur": 14, "3rd": 14, "fittrackee_host": 14, "space": 14, "3aread": 14, "3awrit": 14, "so": 14, "fetch": 14, "behind": 14, "aaron": 14, "parecki": 14, "oauthlib": 14, "session": 14, "strava": 15, "fit": 15, "exc": 16, "nosuchmoduleerror": 16, "plugin": 16, "dialect": 16, "invalidemailurlschem": 16, "increas": 16, "critic": 16, "todo": 18}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [3, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [4, 1, 1, "get--api-records", "/api/records"], [5, 1, 1, "get--api-sports", "/api/sports"], [5, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 1, 1, "get--api-stats-all", "/api/stats/all"], [7, 1, 1, "get--api-users", "/api/users"], [7, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 1, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [8, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [13, 4, 1, "-", "API_RATE_LIMITS"], [13, 4, 1, "-", "APP_LOG"], [13, 4, 1, "-", "APP_SECRET_KEY"], [13, 4, 1, "-", "APP_SETTINGS"], [13, 4, 1, "-", "APP_WORKERS"], [13, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [13, 4, 1, "-", "DATABASE_URL"], [13, 4, 1, "-", "DEFAULT_STATICMAP"], [13, 4, 1, "-", "EMAIL_URL"], [13, 4, 1, "-", "FLASK_APP"], [13, 4, 1, "-", "HOST"], [13, 4, 1, "-", "MAP_ATTRIBUTION"], [13, 4, 1, "-", "PORT"], [13, 4, 1, "-", "REDIS_URL"], [13, 4, 1, "-", "SENDER_EMAIL"], [13, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [13, 4, 1, "-", "TILE_SERVER_URL"], [13, 4, 1, "-", "UI_URL"], [13, 4, 1, "-", "UPLOAD_FOLDER"], [13, 4, 1, "-", "VUE_APP_API_URL"], [13, 4, 1, "-", "WEATHER_API_KEY"], [13, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [13, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "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"]}, "titleterms": {"authent": 0, "account": [0, 11], "configur": 1, "api": [2, 13], "document": [2, 9], "endpoint": 2, "oauth2": [3, 10], "record": 4, "sport": [5, 11], "statist": [6, 9, 11], "user": [7, 10, 11, 18], "workout": [8, 11, 16], "chang": 9, "log": 9, "version": 9, "0": [9, 14], "7": 9, "16": 9, "2023": 9, "05": 9, "29": 9, "featur": [9, 11], "enhanc": 9, "bug": 9, "fix": 9, "translat": [9, 11], "15": 9, "04": 9, "12": 9, "misc": 9, "14": 9, "03": 9, "08": 9, "13": 9, "02": 9, "11": 9, "2022": 9, "31": 9, "10": 9, "21": 9, "9": 9, "8": 9, "30": 9, "27": 9, "6": 9, "09": 9, "5": 9, "4": 9, "3": 9, "01": 9, "2": [9, 14], "1": 9, "19": 9, "issu": 9, "close": 9, "pull": 9, "request": 9, "07": 9, "06": 9, "22": 9, "24": 9, "23": 9, "secur": 9, "new": 9, "2021": 9, "17": 9, "2020": 9, "fittracke": [9, 12, 16], "pypi": [9, 13], "administr": [9, 11, 16], "improv": 9, "minor": 9, "avail": 9, "french": 9, "2019": 9, "first": 9, "releas": 9, "2018": 9, "command": 10, "line": 10, "interfac": 10, "databas": 10, "ftcli": 10, "db": 10, "drop": 10, "upgrad": [10, 13], "clean": 10, "clean_arch": 10, "clean_token": 10, "creat": 10, "export_arch": 10, "updat": 10, "prefer": 11, "applic": 11, "screenshot": 11, "dashboard": 11, "detail": [11, 16], "list": 11, "tabl": 12, "content": 12, "instal": 13, "prerequisit": 13, "environ": 13, "variabl": 13, "email": 13, "map": [13, 16], "tile": 13, "server": 13, "rate": 13, "limit": 13, "weather": 13, "data": 13, "from": 13, "sourc": 13, "dev": 13, "product": 13, "prod": 13, "deploy": 13, "docker": 13, "develop": 13, "yunohost": 13, "oauth": 14, "scope": 14, "flow": 14, "resourc": 14, "third": 15, "parti": 15, "tool": 15, "fail": 16, "start": 16, "imag": 16, "ar": 16, "displai": 16, "i": 16, "shown": 16, "upload": 16, "download": 16, "file": 16, "troubleshoot": 17}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"Authentication and account": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [10, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"], [11, "sports"]], "Statistics": [[6, "statistics"], [11, "statistics"]], "Users": [[7, "users"], [10, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [11, "workouts"]], "Change log": [[9, "change-log"]], "Version 0.7.16 (2023/05/29)": [[9, "version-0-7-16-2023-05-29"]], "Features and enhancements": [[9, "features-and-enhancements"], [9, "id1"], [9, "id6"], [9, "id11"], [9, "id13"], [9, "id15"], [9, "id18"], [9, "id28"], [9, "id34"]], "Bugs Fixed": [[9, "bugs-fixed"], [9, "id2"], [9, "id4"], [9, "id7"], [9, "id19"], [9, "id24"], [9, "id26"], [9, "id29"], [9, "id32"], [9, "id35"], [9, "id37"], [9, "id40"], [9, "id43"], [9, "id45"], [9, "id48"], [9, "id51"], [9, "id54"], [9, "id59"], [9, "id61"], [9, "id63"], [9, "id65"], [9, "id68"], [9, "id70"], [9, "id76"], [9, "id79"], [9, "id81"], [9, "id83"], [9, "id90"], [9, "id95"], [9, "id97"], [9, "id99"], [9, "id102"], [9, "id104"], [9, "id106"], [9, "id110"], [9, "id120"], [9, "id123"], [9, "id125"], [9, "id128"], [9, "id135"]], "Translations": [[9, "translations"], [9, "id3"], [9, "id5"], [9, "id8"], [9, "id9"], [9, "id12"], [9, "id14"], [9, "id16"], [9, "id17"], [9, "id20"], [9, "id22"], [9, "id25"], [9, "id27"], [9, "id30"], [9, "id31"], [9, "id33"], [9, "id36"], [9, "id49"], [11, "translations"]], "Version 0.7.15 (2023/04/12)": [[9, "version-0-7-15-2023-04-12"]], "Misc": [[9, "misc"], [9, "id10"], [9, "id21"], [9, "id23"], [9, "id38"], [9, "id52"], [9, "id55"], [9, "id72"], [9, "id74"], [9, "id91"], [9, "id100"], [9, "id107"], [9, "id111"], [9, "id118"], [9, "id129"], [9, "id132"]], "Version 0.7.14 (2023/03/08)": [[9, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (2023/03/05)": [[9, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (2023/02/16)": [[9, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (2022/12/31)": [[9, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (2022/12/21)": [[9, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[9, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[9, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[9, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (2022/11/09)": [[9, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[9, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[9, "version-0-7-4-2022-11-05"]], "Documentation": [[9, "documentation"]], "Version 0.7.3 (2022/11/01)": [[9, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[9, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[9, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[9, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[9, "version-0-6-12-2022-09-14"]], "Issues Closed": [[9, "issues-closed"], [9, "id39"], [9, "id42"], [9, "id46"], [9, "id50"], [9, "id53"], [9, "id56"], [9, "id58"], [9, "id62"], [9, "id64"], [9, "id66"], [9, "id71"], [9, "id75"], [9, "id78"], [9, "id80"], [9, "id82"], [9, "id84"], [9, "id86"], [9, "id88"], [9, "id93"], [9, "id96"], [9, "id98"], [9, "id101"], [9, "id103"], [9, "id105"], [9, "id108"], [9, "id112"], [9, "id114"], [9, "id116"], [9, "id119"], [9, "id121"], [9, "id124"], [9, "id126"], [9, "id130"], [9, "id133"], [9, "id136"]], "Pull Requests": [[9, "pull-requests"], [9, "id41"], [9, "id44"], [9, "id60"], [9, "id69"], [9, "id73"], [9, "id77"], [9, "id92"]], "Version 0.6.11 (2022/07/27)": [[9, "version-0-6-11-2022-07-27"]], "Features": [[9, "features"], [9, "id47"], [9, "id57"], [9, "id67"], [11, "features"]], "Version 0.6.10 (2022/07/13)": [[9, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[9, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[9, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[9, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[9, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[9, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[9, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[9, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[9, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[9, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[9, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[9, "version-0-5-7-2022-02-13"]], "Security": [[9, "security"]], "Version 0.5.6 (2022/02/05)": [[9, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[9, "version-0-5-5-2022-01-19"]], "New Features": [[9, "new-features"], [9, "id85"], [9, "id87"], [9, "id89"], [9, "id94"], [9, "id109"], [9, "id113"], [9, "id115"], [9, "id117"], [9, "id122"], [9, "id127"], [9, "id131"], [9, "id134"], [9, "id137"]], "Version 0.5.4 (2022/01/01)": [[9, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[9, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[9, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[9, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[9, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[9, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[9, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[9, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[9, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[9, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[9, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[9, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[9, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[9, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[9, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[9, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[9, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[9, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[9, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[9, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[9, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[9, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[9, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[9, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[10, "command-line-interface"]], "Database": [[10, "database"]], "ftcli db drop": [[10, "ftcli-db-drop"]], "ftcli db upgrade": [[10, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[10, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[10, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[10, "ftcli-users-clean-tokens"]], "ftcli users create": [[10, "ftcli-users-create"]], "ftcli users export_archives": [[10, "ftcli-users-export-archives"]], "ftcli users update": [[10, "ftcli-users-update"]], "Account & preferences": [[11, "account-preferences"]], "Administration": [[11, "administration"], [11, "id1"]], "Application": [[11, "application"]], "Screenshots": [[11, "screenshots"]], "Dashboard": [[11, "dashboard"]], "Workout detail": [[11, "workout-detail"]], "Workouts list": [[11, "workouts-list"]], "FitTrackee": [[12, "fittrackee"]], "Table of contents": [[12, "table-of-contents"]], "Installation": [[13, "installation"], [13, "id2"], [13, "id6"]], "Prerequisites": [[13, "prerequisites"]], "Environment variables": [[13, "environment-variables"]], "Emails": [[13, "emails"]], "Map tile server": [[13, "map-tile-server"]], "API rate limits": [[13, "api-rate-limits"]], "Weather data": [[13, "weather-data"]], "From PyPI": [[13, "from-pypi"], [13, "id3"]], "From sources": [[13, "from-sources"], [13, "id4"]], "Dev environment": [[13, "dev-environment"], [13, "id5"]], "Production environment": [[13, "production-environment"]], "Upgrade": [[13, "upgrade"]], "Prod environment": [[13, "prod-environment"]], "Deployment": [[13, "deployment"]], "Docker": [[13, "docker"]], "Development": [[13, "development"]], "Yunohost": [[13, "yunohost"]], "OAuth 2.0": [[14, "oauth-2-0"]], "Scopes": [[14, "scopes"]], "Flow": [[14, "flow"]], "Resources": [[14, "resources"]], "Third-party tools": [[15, "third-party-tools"]], "Administrator": [[16, "administrator"]], "FitTrackee fails to start": [[16, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[16, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Failed to upload or download files": [[16, "failed-to-upload-or-download-files"]], "Troubleshooting": [[17, "troubleshooting"]], "User": [[18, "user"]]}, "indexentries": {"api_rate_limits": [[13, "envvar-API_RATE_LIMITS"]], "app_log": [[13, "envvar-APP_LOG"]], "app_secret_key": [[13, "envvar-APP_SECRET_KEY"]], "app_settings": [[13, "envvar-APP_SETTINGS"]], "app_workers": [[13, "envvar-APP_WORKERS"]], "database_disable_pooling": [[13, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[13, "envvar-DATABASE_URL"]], "default_staticmap": [[13, "envvar-DEFAULT_STATICMAP"]], "email_url": [[13, "envvar-EMAIL_URL"]], "flask_app": [[13, "envvar-FLASK_APP"]], "host": [[13, "envvar-HOST"]], "map_attribution": [[13, "envvar-MAP_ATTRIBUTION"]], "port": [[13, "envvar-PORT"]], "redis_url": [[13, "envvar-REDIS_URL"]], "sender_email": [[13, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[13, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[13, "envvar-TILE_SERVER_URL"]], "ui_url": [[13, "envvar-UI_URL"]], "upload_folder": [[13, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[13, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[13, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[13, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[13, "envvar-WORKERS_PROCESSES"]], "environment variable": [[13, "envvar-API_RATE_LIMITS"], [13, "envvar-APP_LOG"], [13, "envvar-APP_SECRET_KEY"], [13, "envvar-APP_SETTINGS"], [13, "envvar-APP_WORKERS"], [13, "envvar-DATABASE_DISABLE_POOLING"], [13, "envvar-DATABASE_URL"], [13, "envvar-DEFAULT_STATICMAP"], [13, "envvar-EMAIL_URL"], [13, "envvar-FLASK_APP"], [13, "envvar-HOST"], [13, "envvar-MAP_ATTRIBUTION"], [13, "envvar-PORT"], [13, "envvar-REDIS_URL"], [13, "envvar-SENDER_EMAIL"], [13, "envvar-STATICMAP_SUBDOMAINS"], [13, "envvar-TILE_SERVER_URL"], [13, "envvar-UI_URL"], [13, "envvar-UPLOAD_FOLDER"], [13, "envvar-VUE_APP_API_URL"], [13, "envvar-WEATHER_API_KEY"], [13, "envvar-WEATHER_API_PROVIDER"], [13, "envvar-WORKERS_PROCESSES"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication and account", "Configuration", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "OAuth 2.0", "Third-party tools", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 14], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 13, 14], "regist": [0, 1, 9, 11, 13], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 13, 14, 17], "send": [0, 7, 9, 11, 13], "confirm": [0, 3, 9, 11, 13], "email": [0, 1, 7, 9, 10, 11, 16], "The": [0, 9, 10, 11, 13, 14], "newli": [0, 10, 13], "creat": [0, 3, 8, 9, 11, 13, 14], "i": [0, 1, 3, 8, 9, 10, 11, 12, 13, 14, 17], "inact": [0, 7, 11, 13], "must": [0, 1, 3, 5, 7, 8, 9, 11, 13, 14, 16], "hi": [0, 7, 9, 11], "activ": [0, 5, 7, 9, 10, 11, 12, 13], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 13, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13], "content": [0, 1, 3, 4, 5, 6, 7, 8, 9], "type": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8, 11], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "error": [0, 1, 3, 5, 7, 8, 9, 11, 13, 16], "registr": [0, 1, 9, 10, 11, 13, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 9, 10, 11, 13], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 16], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 9, 10, 13], "string": [0, 1, 3, 5, 6, 7, 8, 13, 14], "3": [0, 5, 6, 7, 8, 11, 13], "30": [0, 6], "charact": [0, 9], "requir": [0, 9, 13, 14], "password": [0, 7, 9, 10, 11, 13], "8": [0, 8, 11], "lang": [0, 9], "languag": [0, 7, 9, 11], "prefer": [0, 7, 9], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13], "fallback": 0, "en": [0, 7], "english": [0, 9, 11], "accepted_polici": 0, "boolean": [0, 1, 3, 7, 10], "true": [0, 1, 3, 5, 7, 9, 13], "accept": 0, "privaci": [0, 1, 9, 11], "polici": [0, 1, 9, 11], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": [0, 10], "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 13, 14], "alphanumer": [0, 9], "underscor": 0, "_": [0, 9], "allow": [0, 1, 8, 9, 10, 11, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 9, 10, 11, 13], "500": [0, 1, 5, 7, 8, 9], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 9, 11, 12], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 9], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 11], "administr": [0, 1, 7, 8, 14, 17], "after": [0, 3, 9, 11, 13, 14], "auth_token": 0, "web": [0, 12, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "resend": 0, "instruct": [0, 9, 11, 13], "If": [0, 3, 11, 13, 14], "thi": [0, 3, 8, 9, 10, 11, 12, 13], "endpoint": [0, 1, 3, 9, 13, 14], "avail": [0, 4, 10, 11, 13, 14, 15], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 9], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 9], "url": [0, 3, 9, 13, 14, 16], "wa": [0, 9], "login": 0, "an": [0, 1, 3, 5, 7, 9, 11, 13, 14, 16], "can": [0, 7, 9, 10, 11, 12, 13, 14, 16], "log": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 13, 16], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 13], "get": [0, 1, 3, 4, 5, 6, 7, 8, 14], "profil": [0, 3, 9, 14], "info": [0, 9, 11], "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 14], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "accepted_privacy_polici": 0, "admin": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 13], "fals": [0, 1, 3, 5, 7, 8, 13], "bio": [0, 7], "null": [0, 1, 5, 7, 8, 9], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8, 11], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 9], "gmt": [0, 3, 4, 7, 8], "date_format": 0, "dd": 0, "mm": 0, "yyyi": 0, "display_asc": 0, "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 13, 14], "email_to_confirm": 0, "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 13], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 5, 7, 8, 10, 11, 13], "pictur": [0, 7, 8, 9], "record": [0, 2, 7, 8, 9, 11], "id": [0, 3, 4, 5, 6, 7, 8, 14], "9": [0, 4, 7, 11, 13], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 11, 13, 14, 16], "18": [0, 4, 7, 8, 9], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 11, 13], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8, 10, 11, 13], "ha": [0, 4, 7, 8, 9, 11, 12], "43": [0, 4, 7, 8, 9], "97": [0, 4, 7, 8], "11": [0, 4, 7, 11, 13], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 11, 13], "start_elevation_at_zero": 0, "timezon": [0, 7, 8, 9, 11], "europ": [0, 7], "pari": [0, 7], "total_asc": [0, 6], "720": 0, "35": [0, 9], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 9, 13], "27": [0, 3, 7], "use_raw_gpx_spe": 0, "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 14], "author": [0, 1, 3, 4, 5, 6, 7, 8, 13, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 13], "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 12, 13], "0": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 10], "edit": [0, 9, 11], "write": [0, 1, 3, 5, 7, 8, 14], "updat": [0, 1, 5, 7, 8, 9, 11, 13], "first": [0, 3, 11, 14], "name": [0, 3, 7, 9, 13], "last": [0, 9, 13], "biographi": 0, "birth": [0, 9], "date": [0, 6, 8, 9, 11], "format": [0, 6, 8, 9, 11], "y": [0, 6, 8, 13], "d": [0, 6, 8], "support": [0, 3, 9, 11, 13, 14, 16], "default": [0, 3, 6, 7, 8, 9, 11, 13], "date_str": 0, "correspond": [0, 13], "client": [0, 3, 9, 11, 13, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 9, 12, 13], "e": 0, "fr": [0, 7, 13], "gl": 0, "nl": 0, "de": [0, 13], "nb": 0, "us": [0, 3, 7, 8, 9, 10, 11, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 17], "app": [0, 3, 9, 11, 12, 13, 14], "highest": [0, 4, 11], "ascent": [0, 4, 8, 9, 11], "total": [0, 3, 9, 11], "distanc": [0, 4, 8, 9, 11], "imperi": [0, 9, 11], "unit": [0, 9, 13], "elev": [0, 8, 9, 11, 13], "plot": 0, "start": [0, 6, 8, 9, 11, 13, 17], "zero": [0, 9, 11], "time": [0, 6, 8, 9, 11], "zone": 0, "unfilt": 0, "gpx": [0, 3, 8, 9, 11, 12, 13, 15], "calcul": [0, 9, 11], "speed": [0, 4, 8, 9, 11, 13], "doe": [0, 6, 7, 8, 9], "week": [0, 6, 9, 11], "mondai": [0, 6, 11], "don": 0, "t": [0, 9, 16], "match": [0, 8, 9], "sport": [0, 2, 6, 8, 9, 13], "color": [0, 5, 9, 11], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 9, 10, 11, 13], "ad": [0, 9, 10, 11], "workout": [0, 2, 3, 4, 5, 6, 9, 12, 14, 15, 17], "float": [0, 8], "stop": [0, 9, 11, 13], "threshold": [0, 9, 11], "gpxpy": [0, 11, 13], "exist": [0, 6, 7, 8, 9, 11, 12, 13], "delet": [0, 3, 7, 8, 9, 10, 11], "reset": [0, 7, 9, 10, 11, 13], "given": [0, 3, 13], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 11, 13, 14], "No": [0, 3, 7, 8, 9, 12], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 9, 10, 11, 12, 13, 15, 17], "imag": [0, 7, 8, 9, 11, 13, 17], "extens": [0, 8, 13], "jpg": 0, "png": [0, 8, 13], "gif": 0, "part": [0, 8], "select": [0, 8, 11], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 11, 13], "dure": [0, 8], "size": [0, 1, 8, 9, 11, 13], "exce": [0, 8, 9], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 11, 13, 16], "process": [0, 9, 10, 13], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 11, 12, 14, 16], "enabl": [0, 1, 7, 11, 13], "chang": [0, 11, 12, 13], "one": [0, 7, 8, 11], "current": [0, 9], "address": [0, 11, 13], "inform": [0, 1, 9, 11, 12, 13], "anoth": [0, 7, 11, 13], "new": [0, 7, 10, 11, 13, 14], "new_password": 0, "miss": [0, 9], "logout": [0, 9], "blacklist": [0, 10], "out": 0, "access": [0, 3, 9, 13, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 13], "reason": 0, "export": [0, 9, 10, 11, 12, 13], "return": [0, 3, 4, 7, 8, 9, 13], "creation": [0, 9, 11], "in_progress": 0, "byte": 0, "wed": 0, "mar": 0, "2023": [0, 13], "31": [0, 8, 13], "17": [0, 1, 8, 13], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 8, 9, 11], "file_s": 0, "924": 0, "ongo": 0, "complet": [0, 9], "download": [0, 8, 9, 11, 13, 17], "archiv": [0, 1, 9, 10, 11, 13], "archive_rgjsr3fhr5yp": 0, "x": [0, 8, 9, 13, 14], "gzip": 0, "filenam": 0, "config": [1, 9, 13, 16], "about": [1, 9, 11, 13, 14], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 13], "copi": [1, 13], "href": [1, 13], "www": [1, 13], "openstreetmap": [1, 9, 13], "org": [1, 13], "copyright": [1, 13], "contributor": [1, 9, 13, 15], "privacy_polici": 1, "privacy_policy_d": 1, "version": [1, 10, 11, 13], "7": [1, 8, 10, 11, 13, 14], "weather_provid": 1, "authent": [1, 2, 3, 4, 5, 7, 8, 14], "instanc": [1, 3, 9, 11, 13, 14], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 9, 10], "number": [1, 7, 8, 9, 10, 11, 13], "singl": [1, 7, 9, 11, 13], "you": [1, 5, 6, 7, 8, 11, 12, 13], "have": [1, 5, 6, 7, 8, 9], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 9, 13, 16], "pong": 1, "account": [2, 7, 9, 10, 13, 15], "configur": [2, 9, 11, 13, 14], "oauth2": [2, 14], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 10, 11, 13], "page": [3, 7, 8, 9, 11], "fittracke": [3, 10, 11, 13, 14, 15, 17], "parti": [3, 11, 12, 14], "without": [3, 6, 7, 8, 9, 11, 12], "client_descript": 3, "client_id": [3, 14], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 9], "import": [3, 9, 11, 13, 15], "redirect_uri": 3, "callback": [3, 14], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 13, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 9, 12, 13], "redirect": [3, 14], "descript": [3, 10, 13], "option": [3, 9, 10, 13, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 8, 9, 11, 13], "associ": 3, "issu": [3, 12, 13], "response_typ": [3, 14], "state": [3, 14], "uniqu": [3, 14], "prevent": [3, 13, 14], "cross": [3, 11, 13, 14], "site": [3, 14], "forgeri": [3, 14], "mandatori": [3, 8, 9, 10, 13, 14], "recommend": [3, 13, 14], "code_challeng": [3, 14], "gener": [3, 9, 10, 11, 13, 14], "from": [3, 6, 8, 9, 11, 12, 14, 15], "verifi": [3, 14], "pkce": [3, 14], "code_challenge_method": [3, 14], "method": [3, 13, 14], "challeng": [3, 14], "s256": [3, 14], "authlib": [3, 13, 14], "librari": [3, 13, 14], "refresh": [3, 9], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 14], "authorization_cod": [3, 14], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 17], "code_verifi": 3, "follow": [4, 10, 11, 13, 14, 15, 16], "averag": [4, 8, 9, 11], "farthest": [4, 9, 11], "longest": [4, 9, 11], "durat": [4, 8, 9, 11], "maximum": [4, 9, 10, 11], "non": [5, 12], "is_active_for_us": 5, "label": [5, 9], "cycl": [5, 9, 11], "transport": [5, 9, 11], "hike": [5, 9, 11], "mountain": [5, 9, 11], "bike": [5, 8, 9, 11], "run": [5, 9, 10, 11, 13, 14], "walk": [5, 9, 11], "has_workout": 5, "stat": [6, 9], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "203": 6, "156": [6, 9], "15": [6, 8, 10, 11, 13], "282": [6, 9], "12341": 6, "16": [6, 8, 11, 13], "99": [6, 9], "150": 6, "178": [6, 9], "47": [6, 8, 9], "9960": 6, "95": [6, 9], "46": [6, 9], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 11], "month": [6, 9, 11], "year": [6, 11], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 13, 14], "some": [7, 8, 9, 11, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 9, 13], "q": 7, "order": [7, 8, 9, 14], "sort": [7, 8, 11], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 9, 13, 17], "jpeg": 7, "add": [7, 9, 10, 11, 12], "remov": [7, 9, 10, 11], "modifi": [7, 9, 10, 13], "new_email": 7, "reset_password": 7, "differ": [7, 9, 11], "than": [7, 9, 10], "curent": 7, "A": [7, 9, 10, 11, 13, 16], "own": [7, 11, 12], "except": [7, 13, 16], "he": 7, "": [7, 8, 9, 11, 13], "john_do": 7, "your": [7, 11, 12, 13], "02": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 9, 11], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 9, 11, 12, 17], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 9], "next_workout": 8, "note": [8, 9, 11, 13], "paus": [8, 9], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 9, 11], "titl": [8, 9, 11], "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 9, 11], "distance_from": 8, "minim": [8, 14], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 11], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "quert": 8, "ani": 8, "case": [8, 11, 13], "insensit": [8, 13], "workout_short_id": 8, "57": [8, 9], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 13], "chart_data": 8, "chart": [8, 9, 11, 13], "j": [8, 9, 13], "279": [8, 9], "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 9], "7380": 8, "280": [8, 9], "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 13], "tile": [8, 9, 11], "c": [8, 13], "4109": 8, "2930": 8, "subdomain": [8, 9, 13], "zoom": 8, "index": 8, "along": 8, "axi": [8, 9, 11], "xml": 8, "201": [8, 9], "doubl": 8, "quot": 8, "escap": 8, "no_gpx": 8, "uuid": [8, 9], "km": [8, 11], "second": 8, "pr": 9, "366": 9, "369": 9, "host": [9, 13], "weblat": [9, 11], "galician": [9, 11], "thank": [9, 15], "xmgz": 9, "367": 9, "spanish": [9, 11], "dutch": [9, 11], "german": [9, 11], "italian": [9, 11], "87": 9, "norwegian": [9, 11], "bokm\u00e5l": [9, 11], "36": 9, "polish": [9, 11], "358": 9, "filter": [9, 11], "359": 9, "footer": 9, "overlap": 9, "350": 9, "352": 9, "356": 9, "init": [9, 13], "357": 9, "365": 9, "yet": [9, 11, 12], "interfac": [9, 11, 12, 13], "bjornclauw": 9, "gallegonovato": 9, "gnu": 9, "ewm": 9, "jat255": 9, "contain": [9, 11, 13], "databas": [9, 11, 13, 16], "migrat": [9, 10, 13], "see": [9, 11, 12, 13, 14, 16], "upgrad": 9, "among": 9, "now": [9, 10, 11, 13], "partial": 9, "below": [9, 13], "darkski": [9, 13], "sinc": [9, 13, 14], "servic": [9, 13], "shut": [9, 13], "down": [9, 13], "march": [9, 13], "319": 9, "cli": [9, 10, 11, 13], "329": 9, "make": [9, 13], "sticki": 9, "333": 9, "338": 9, "relev": 9, "328": 9, "altitud": [9, 11], "track": [9, 12], "incorrect": 9, "b29ed7a": 9, "dashboard": 9, "250": 9, "320": 9, "323": 9, "06ba975": 9, "bcc568e": 9, "ea0ac99": 9, "a458f5f": 9, "075aeb9": 9, "60e164d": 9, "98": 9, "318": 9, "weather": [9, 11], "comradekingu": 9, "qwerty287": 9, "lavoi": 9, "mondstern": 9, "314": 9, "fail": [9, 17], "315": 9, "agre": [9, 11], "custom": [9, 11, 13], "defin": [9, 11], "review": [9, 11], "upload": [9, 10, 11, 13, 15, 17], "lastli": 9, "addit": [9, 11, 13], "mai": [9, 11, 12, 13], "301": [9, 13], "304": 9, "305": 9, "307": 9, "modal": 9, "posit": [9, 11], "297": 9, "308": 9, "310": 9, "290": 9, "294": 9, "drop": 9, "postgresql10": 9, "depend": [9, 13], "265": 9, "implement": [9, 14], "altern": 9, "visualcross": 9, "environ": [9, 10, 16], "variabl": [9, 16], "set": [9, 10, 11, 13, 14, 16], "weather_api_provid": [9, 13], "287": 9, "289": 9, "dperruso": 9, "92": 9, "c88a515": 9, "f96dcef": 9, "278": 9, "270": 9, "nederland": 9, "258": 9, "pars": [9, 13], "link": [9, 13], "area": 9, "271": 9, "273": 9, "274": 9, "test": [9, 13], "parallel": 9, "275": 9, "worker": [9, 10, 13, 16], "entri": [9, 13], "point": [9, 13], "fittrackee_work": [9, 10, 13], "command": [9, 11, 12, 13], "flask": [9, 13], "dramatiq": [9, 10, 13], "3c8d9c2": 9, "trail": [9, 11], "comma": [9, 13], "dev": 9, "264": 9, "ui": 9, "white": 9, "grai": 9, "background": 9, "266": 9, "260": 9, "261": 9, "should": [9, 13], "limit": [9, 11], "still": [9, 11, 12, 13], "need": [9, 11, 13, 14], "89": 9, "b1536fc": 9, "257": 9, "bodi": [9, 13, 14], "nginx": [9, 11, 13, 14, 16], "112": 9, "244": 9, "virtual": [9, 11], "ride": 9, "246": 9, "postgresql": [9, 13, 16], "247": 9, "microsecond": 9, "252": 9, "242": 9, "241": 9, "strength": 9, "estim": 9, "packag": [9, 13], "239": 9, "cb9d02f": 9, "88": 9, "231": 9, "236": 9, "rate": 9, "232": 9, "hidden": [9, 11], "237": 9, "212": 9, "230": 9, "problem": 9, "225": 9, "grammar": 9, "skylan0916": 9, "In": [9, 11], "execut": 9, "lower": 9, "v0": [9, 13], "postgr": [9, 16], "213": 9, "measur": 9, "ft": 9, "mi": 9, "223": 9, "icon": [9, 13], "167": 9, "162": 9, "fmstrat": 9, "210": 9, "could": 9, "staticmap_subdomain": [9, 13], "209": 9, "multipl": 9, "gorgobacka": 9, "And": 9, "detect": 9, "browser": 9, "208": 9, "card": 9, "html": 9, "attribut": [9, 13], "197": 9, "196": 9, "manag": [9, 10, 13], "tool": [9, 12, 13], "190": 9, "were": 9, "193": 9, "192": 9, "instead": [9, 11], "191": 9, "layout": 9, "includ": 9, "195": 9, "affect": [9, 11], "previous": 9, "cc4287e": 9, "docker": 9, "env": [9, 13], "offset": 9, "refacto": 9, "befor": [9, 13], "introduc": 9, "possibl": [9, 11, 12, 13], "smtp": [9, 13], "reduc": 9, "pre": 9, "requisit": 9, "To": [9, 13, 14], "180": 9, "cannot": [9, 11], "tl": [9, 13], "177": 9, "small": 9, "screen": [9, 11], "175": 9, "173": 9, "171": 9, "correctli": 9, "sent": [9, 11, 13, 14], "155": 9, "106": 9, "169": 9, "161": 9, "160": 9, "sever": [9, 11, 12, 13], "danielsiersleben": 9, "report": 9, "initi": [9, 13], "149": 9, "initialis": [9, 13], "152": 9, "autoescap": 9, "jinja": 9, "templat": 9, "151": 9, "sanit": 9, "input": 9, "serv": [9, 13], "warn": [9, 11], "launch": 9, "w": 9, "script": 9, "entrypoint": 9, "avoid": 9, "product": 9, "dotenv": 9, "146": 9, "145": 9, "model": 9, "140": 9, "fullscreen": 9, "control": [9, 11, 13], "138": 9, "135": 9, "finish": 9, "marker": 9, "134": 9, "wind": [9, 11], "direct": [9, 11], "877fa0f": 9, "calendar": [9, 11], "resolut": 9, "131": 9, "129": 9, "127": [9, 13], "legitim": 9, "uri": 9, "localhost": [9, 13], "25": [9, 13], "123": 9, "121": 9, "snowsho": [9, 11], "116": 9, "better": [9, 14], "button": 9, "graph": 9, "115": 9, "91": 9, "min": 9, "90": 9, "seem": 9, "104": 9, "switch": 9, "agplv3": 9, "licens": [9, 12, 13], "101": 9, "full": [9, 11], "develop": [9, 10, 12], "109": 9, "slow": 9, "movement": 9, "84": 9, "93": 9, "paf38": 9, "83": 9, "static": [9, 11, 13], "keep": [9, 12, 13], "default_staticmap": [9, 13], "81": 9, "remain": 9, "textarea": 9, "82": 9, "dai": [9, 10, 11, 13], "80": [9, 13], "save": [9, 11], "79": 9, "rebuild": 9, "75": 9, "same": 9, "python": [9, 13, 14], "javascript": [9, 13], "due": 9, "sqlalchemi": [9, 13, 16], "engin": [9, 13, 16], "longer": [9, 16], "database_url": [9, 13], "72": 9, "exceed": 9, "71": 9, "greater": 9, "70": 9, "less": 9, "66": 9, "64": 9, "shown": [9, 14, 17], "62": 9, "refactor": 9, "evalu": [9, 13], "purpos": [9, 13], "standard": [9, 13], "term": [9, 13], "directori": [9, 11, 13], "also": [9, 10, 11, 12, 13], "59": 9, "major": 9, "instal": [9, 12], "becom": 9, "more": [9, 10, 11, 12, 13], "easi": 9, "been": [9, 12], "renam": 9, "layer": [9, 13], "replac": [9, 13], "thunderforest": [9, 13], "outdoor": [9, 11, 12, 13], "54": 9, "simplifi": [9, 14], "redi": [9, 10, 13], "side": 9, "4c3fc34": 9, "empti": [9, 10, 13], "34614d5": 9, "spinner": 9, "load": [9, 16], "b862a77": 9, "2e1ee2c": 9, "interceptor": 9, "rout": [9, 13], "definit": 9, "weekend": 9, "40": 9, "i18n": 9, "41": 9, "show": [9, 10, 13], "mous": 9, "over": 9, "choos": [9, 11], "33": 9, "37": 9, "34": 9, "anymor": 9, "poetri": [9, 13], "pipenv": 9, "28": 9, "26": 9, "tooltip": [9, 11], "montain": 9, "even": [9, 11], "enter": [9, 11], "kei": [9, 11, 13], "farest": 9, "search": 9, "owner": [9, 11, 13], "view": [9, 11, 13], "usag": [10, 13], "arg": [10, 13], "help": [10, 13], "exit": [10, 13], "deprec": 10, "next": [10, 11], "fittrackee_set_admin": 10, "fittrackee_upgrade_db": 10, "appli": 10, "relat": [10, 11, 13, 14], "argument": 10, "random": 10, "incomplet": 10, "store": [11, 12, 14], "For": [11, 13, 14], "kind": 11, "encrypt": 11, "With": [11, 13], "open": [11, 12, 13], "street": [11, 12], "electr": 11, "row": 11, "ski": 11, "alpin": 11, "countri": 11, "overridden": 11, "which": 11, "up": [11, 12], "metric": 11, "system": [11, 13], "origin": 11, "particular": 11, "visual": [11, 13], "sourc": 11, "arrow": 11, "indic": 11, "come": 11, "period": [11, 13], "dropdown": 11, "recent": 11, "On": [11, 13], "line": [11, 12, 13], "between": 11, "hide": 11, "minimum": 11, "exclud": 11, "extrem": 11, "gp": 11, "overrid": 11, "appear": 11, "third": [11, 12, 14], "individu": 11, "necessari": [11, 13], "like": [11, 13], "markdown": 11, "syntax": 11, "adapt": [11, 13], "discours": 11, "lock": 11, "via": 11, "french": 11, "releas": [11, 13], "mobil": 12, "them": 12, "android": 12, "exhaust": 12, "runner": 12, "gpl": 12, "v3": 12, "forrunn": 12, "opentrack": 12, "apach": 12, "fitotrack": 12, "under": [12, 13], "heavi": [12, 13], "featur": [12, 13], "unstabl": [12, 13], "document": [12, 13, 14, 16], "troubleshoot": 12, "written": 13, "typescript": 13, "staticmap": 13, "coordin": 13, "task": 13, "queue": 13, "vue3": 13, "vuex": 13, "logo": 13, "made": 13, "freepik": 13, "flaticon": 13, "fork": 13, "awesom": 13, "node": 13, "yarn": 13, "compos": 13, "step": 13, "describ": 13, "linux": 13, "debian": 13, "arch": 13, "o": 13, "encount": 13, "makefil": 13, "thei": [13, 14], "flask_app": 13, "modul": 13, "pwd": 13, "__main__": 13, "py": 13, "els": 13, "port": 13, "5000": 13, "app_set": 13, "productionconfig": 13, "app_secret_kei": 13, "strong": 13, "jwt": 13, "app_work": 13, "spawn": 13, "gunicorn": [13, 16], "app_log": 13, "path": [13, 16], "upload_fold": [13, 16], "absolut": [13, 16], "where": 13, "folder": 13, "application_directori": 13, "virtualenv": 13, "5432": 13, "begin": 13, "database_disable_pool": 13, "pool": 13, "directli": 13, "ui_url": 13, "email_url": [13, 16], "sender_email": 13, "sender": 13, "redis_url": 13, "workers_process": 13, "api_rate_limit": 13, "300": 13, "minut": 13, "tile_server_url": 13, "b": 13, "osm": 13, "franc": 13, "target": 13, "_blank": 13, "rel": 13, "noopen": 13, "noreferr": 13, "komoot": 13, "otherwis": 13, "weather_api_kei": 13, "weather_api": 13, "vue_app_api_url": 13, "unencrypt": 13, "ssl": 13, "465": 13, "starttl": 13, "587": 13, "office365": 13, "work": 13, "omit": 13, "old": 13, "adress": 13, "notif": 13, "readi": 13, "apikei": 13, "xxxx": 13, "expect": 13, "osmfr": 13, "fond": 13, "cart": 13, "par": 13, "mention": 13, "legal": 13, "nofollow": 13, "sou": 13, "nbsp": 13, "creativecommon": 13, "sa": 13, "licenc": 13, "cc": 13, "BY": 13, "chosen": 13, "randomli": 13, "base": 13, "ip": 13, "fix": 13, "window": 13, "strategi": 13, "subject": 13, "asset": 13, "notat": 13, "separ": [13, 14], "hour": 13, "mainten": 13, "diagnost": 13, "util": 13, "commmand": 13, "clear": 13, "specif": 13, "enumer": 13, "histor": 13, "hourli": 13, "discontinu": 13, "wai": 13, "pip": 13, "WITH": 13, "schema": 13, "privileg": 13, "nano": 13, "ftcli": 13, "db": 13, "systemd": 13, "archlinux": 13, "yai": 13, "project": 13, "clone": 13, "repo": 13, "git": 13, "github": 13, "samr1": 13, "cd": 13, "vue": 13, "3000": 13, "wget": 13, "tar": 13, "gz": 13, "xzf": 13, "mv": 13, "sql": 13, "backup": 13, "pg_dump": 13, "u": 13, "changelog": 13, "restart": 13, "pull": 13, "repositori": 13, "overwrit": 13, "cp": 13, "r": 13, "There": 13, "One": 13, "proxi": [13, 14], "pass": 13, "distribut": 13, "network": 13, "startlimitintervalsec": 13, "simpl": 13, "alwai": 13, "restartsec": 13, "standardoutput": 13, "syslog": 13, "standarderror": 13, "syslogidentifi": 13, "workingdirectori": 13, "home": 13, "execstart": 13, "venv": 13, "bin": 13, "create_app": 13, "logfil": 13, "wantedbi": 13, "multi": 13, "higher": 13, "timeout": [13, 16], "its": 13, "OF": 13, "listen": 13, "443": 13, "http2": 13, "server_nam": 13, "ssl_certif": 13, "fullchain": 13, "pem": 13, "ssl_certificate_kei": 13, "privkei": 13, "how": 13, "1mb": 13, "larger": [13, 16], "ll": 13, "uncom": 13, "want": 13, "client_max_body_s": [13, 16], "1m": 13, "proxy_pass": 13, "proxy_redirect": 13, "proxy_set_head": [13, 14], "real": 13, "remote_addr": 13, "forward": [13, 14], "proxy_add_x_forwarded_for": 13, "proto": [13, 14], "scheme": [13, 14], "request_uri": 13, "build": 13, "8025": 13, "mailhog": 13, "shell": 13, "insid": 13, "fittrackee_cli": 13, "lint": 13, "fittrackee_ynh": 13, "rest": 14, "whose": 14, "most": 14, "interact": 14, "tab": 14, "exchang": 14, "secur": 14, "3rd": 14, "fittrackee_host": 14, "space": 14, "3aread": 14, "3awrit": 14, "so": 14, "fetch": 14, "behind": 14, "aaron": 14, "parecki": 14, "oauthlib": 14, "session": 14, "strava": 15, "fit": 15, "exc": 16, "nosuchmoduleerror": 16, "plugin": 16, "dialect": 16, "invalidemailurlschem": 16, "increas": 16, "critic": 16, "todo": 18}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [3, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [4, 1, 1, "get--api-records", "/api/records"], [5, 1, 1, "get--api-sports", "/api/sports"], [5, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 1, 1, "get--api-stats-all", "/api/stats/all"], [7, 1, 1, "get--api-users", "/api/users"], [7, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 1, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [8, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [13, 4, 1, "-", "API_RATE_LIMITS"], [13, 4, 1, "-", "APP_LOG"], [13, 4, 1, "-", "APP_SECRET_KEY"], [13, 4, 1, "-", "APP_SETTINGS"], [13, 4, 1, "-", "APP_WORKERS"], [13, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [13, 4, 1, "-", "DATABASE_URL"], [13, 4, 1, "-", "DEFAULT_STATICMAP"], [13, 4, 1, "-", "EMAIL_URL"], [13, 4, 1, "-", "FLASK_APP"], [13, 4, 1, "-", "HOST"], [13, 4, 1, "-", "MAP_ATTRIBUTION"], [13, 4, 1, "-", "PORT"], [13, 4, 1, "-", "REDIS_URL"], [13, 4, 1, "-", "SENDER_EMAIL"], [13, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [13, 4, 1, "-", "TILE_SERVER_URL"], [13, 4, 1, "-", "UI_URL"], [13, 4, 1, "-", "UPLOAD_FOLDER"], [13, 4, 1, "-", "VUE_APP_API_URL"], [13, 4, 1, "-", "WEATHER_API_KEY"], [13, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [13, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "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"]}, "titleterms": {"authent": 0, "account": [0, 11], "configur": 1, "api": [2, 13], "document": [2, 9], "endpoint": 2, "oauth2": [3, 10], "record": 4, "sport": [5, 11], "statist": [6, 9, 11], "user": [7, 10, 11, 18], "workout": [8, 11, 16], "chang": 9, "log": 9, "version": 9, "0": [9, 14], "7": 9, "17": 9, "2023": 9, "06": 9, "03": 9, "translat": [9, 11], "16": 9, "05": 9, "29": 9, "featur": [9, 11], "enhanc": 9, "bug": 9, "fix": 9, "15": 9, "04": 9, "12": 9, "misc": 9, "14": 9, "08": 9, "13": 9, "02": 9, "11": 9, "2022": 9, "31": 9, "10": 9, "21": 9, "9": 9, "8": 9, "30": 9, "27": 9, "6": 9, "09": 9, "5": 9, "4": 9, "3": 9, "01": 9, "2": [9, 14], "1": 9, "19": 9, "issu": 9, "close": 9, "pull": 9, "request": 9, "07": 9, "22": 9, "24": 9, "23": 9, "secur": 9, "new": 9, "2021": 9, "2020": 9, "fittracke": [9, 12, 16], "pypi": [9, 13], "administr": [9, 11, 16], "improv": 9, "minor": 9, "avail": 9, "french": 9, "2019": 9, "first": 9, "releas": 9, "2018": 9, "command": 10, "line": 10, "interfac": 10, "databas": 10, "ftcli": 10, "db": 10, "drop": 10, "upgrad": [10, 13], "clean": 10, "clean_arch": 10, "clean_token": 10, "creat": 10, "export_arch": 10, "updat": 10, "prefer": 11, "applic": 11, "screenshot": 11, "dashboard": 11, "detail": [11, 16], "list": 11, "tabl": 12, "content": 12, "instal": 13, "prerequisit": 13, "environ": 13, "variabl": 13, "email": 13, "map": [13, 16], "tile": 13, "server": 13, "rate": 13, "limit": 13, "weather": 13, "data": 13, "from": 13, "sourc": 13, "dev": 13, "product": 13, "prod": 13, "deploy": 13, "docker": 13, "develop": 13, "yunohost": 13, "oauth": 14, "scope": 14, "flow": 14, "resourc": 14, "third": 15, "parti": 15, "tool": 15, "fail": 16, "start": 16, "imag": 16, "ar": 16, "displai": 16, "i": 16, "shown": 16, "upload": 16, "download": 16, "file": 16, "troubleshoot": 17}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"Authentication and account": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [10, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"], [11, "sports"]], "Statistics": [[6, "statistics"], [11, "statistics"]], "Users": [[7, "users"], [10, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [11, "workouts"]], "Change log": [[9, "change-log"]], "Version 0.7.17 (2023/06/03)": [[9, "version-0-7-17-2023-06-03"]], "Translations": [[9, "translations"], [9, "id1"], [9, "id4"], [9, "id6"], [9, "id9"], [9, "id10"], [9, "id13"], [9, "id15"], [9, "id17"], [9, "id18"], [9, "id21"], [9, "id23"], [9, "id26"], [9, "id28"], [9, "id31"], [9, "id32"], [9, "id34"], [9, "id37"], [9, "id50"], [11, "translations"]], "Version 0.7.16 (2023/05/29)": [[9, "version-0-7-16-2023-05-29"]], "Features and enhancements": [[9, "features-and-enhancements"], [9, "id2"], [9, "id7"], [9, "id12"], [9, "id14"], [9, "id16"], [9, "id19"], [9, "id29"], [9, "id35"]], "Bugs Fixed": [[9, "bugs-fixed"], [9, "id3"], [9, "id5"], [9, "id8"], [9, "id20"], [9, "id25"], [9, "id27"], [9, "id30"], [9, "id33"], [9, "id36"], [9, "id38"], [9, "id41"], [9, "id44"], [9, "id46"], [9, "id49"], [9, "id52"], [9, "id55"], [9, "id60"], [9, "id62"], [9, "id64"], [9, "id66"], [9, "id69"], [9, "id71"], [9, "id77"], [9, "id80"], [9, "id82"], [9, "id84"], [9, "id91"], [9, "id96"], [9, "id98"], [9, "id100"], [9, "id103"], [9, "id105"], [9, "id107"], [9, "id111"], [9, "id121"], [9, "id124"], [9, "id126"], [9, "id129"], [9, "id136"]], "Version 0.7.15 (2023/04/12)": [[9, "version-0-7-15-2023-04-12"]], "Misc": [[9, "misc"], [9, "id11"], [9, "id22"], [9, "id24"], [9, "id39"], [9, "id53"], [9, "id56"], [9, "id73"], [9, "id75"], [9, "id92"], [9, "id101"], [9, "id108"], [9, "id112"], [9, "id119"], [9, "id130"], [9, "id133"]], "Version 0.7.14 (2023/03/08)": [[9, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (2023/03/05)": [[9, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (2023/02/16)": [[9, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (2022/12/31)": [[9, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (2022/12/21)": [[9, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[9, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[9, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[9, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (2022/11/09)": [[9, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[9, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[9, "version-0-7-4-2022-11-05"]], "Documentation": [[9, "documentation"]], "Version 0.7.3 (2022/11/01)": [[9, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[9, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[9, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[9, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[9, "version-0-6-12-2022-09-14"]], "Issues Closed": [[9, "issues-closed"], [9, "id40"], [9, "id43"], [9, "id47"], [9, "id51"], [9, "id54"], [9, "id57"], [9, "id59"], [9, "id63"], [9, "id65"], [9, "id67"], [9, "id72"], [9, "id76"], [9, "id79"], [9, "id81"], [9, "id83"], [9, "id85"], [9, "id87"], [9, "id89"], [9, "id94"], [9, "id97"], [9, "id99"], [9, "id102"], [9, "id104"], [9, "id106"], [9, "id109"], [9, "id113"], [9, "id115"], [9, "id117"], [9, "id120"], [9, "id122"], [9, "id125"], [9, "id127"], [9, "id131"], [9, "id134"], [9, "id137"]], "Pull Requests": [[9, "pull-requests"], [9, "id42"], [9, "id45"], [9, "id61"], [9, "id70"], [9, "id74"], [9, "id78"], [9, "id93"]], "Version 0.6.11 (2022/07/27)": [[9, "version-0-6-11-2022-07-27"]], "Features": [[9, "features"], [9, "id48"], [9, "id58"], [9, "id68"], [11, "features"]], "Version 0.6.10 (2022/07/13)": [[9, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[9, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[9, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[9, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[9, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[9, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[9, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[9, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[9, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[9, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[9, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[9, "version-0-5-7-2022-02-13"]], "Security": [[9, "security"]], "Version 0.5.6 (2022/02/05)": [[9, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[9, "version-0-5-5-2022-01-19"]], "New Features": [[9, "new-features"], [9, "id86"], [9, "id88"], [9, "id90"], [9, "id95"], [9, "id110"], [9, "id114"], [9, "id116"], [9, "id118"], [9, "id123"], [9, "id128"], [9, "id132"], [9, "id135"], [9, "id138"]], "Version 0.5.4 (2022/01/01)": [[9, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[9, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[9, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[9, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[9, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[9, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[9, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[9, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[9, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[9, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[9, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[9, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[9, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[9, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[9, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[9, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[9, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[9, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[9, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[9, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[9, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[9, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[9, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[9, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[10, "command-line-interface"]], "Database": [[10, "database"]], "ftcli db drop": [[10, "ftcli-db-drop"]], "ftcli db upgrade": [[10, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[10, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[10, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[10, "ftcli-users-clean-tokens"]], "ftcli users create": [[10, "ftcli-users-create"]], "ftcli users export_archives": [[10, "ftcli-users-export-archives"]], "ftcli users update": [[10, "ftcli-users-update"]], "Account & preferences": [[11, "account-preferences"]], "Administration": [[11, "administration"], [11, "id1"]], "Application": [[11, "application"]], "Screenshots": [[11, "screenshots"]], "Dashboard": [[11, "dashboard"]], "Workout detail": [[11, "workout-detail"]], "Workouts list": [[11, "workouts-list"]], "FitTrackee": [[12, "fittrackee"]], "Table of contents": [[12, "table-of-contents"]], "Installation": [[13, "installation"], [13, "id2"], [13, "id6"]], "Prerequisites": [[13, "prerequisites"]], "Environment variables": [[13, "environment-variables"]], "Emails": [[13, "emails"]], "Map tile server": [[13, "map-tile-server"]], "API rate limits": [[13, "api-rate-limits"]], "Weather data": [[13, "weather-data"]], "From PyPI": [[13, "from-pypi"], [13, "id3"]], "From sources": [[13, "from-sources"], [13, "id4"]], "Dev environment": [[13, "dev-environment"], [13, "id5"]], "Production environment": [[13, "production-environment"]], "Upgrade": [[13, "upgrade"]], "Prod environment": [[13, "prod-environment"]], "Deployment": [[13, "deployment"]], "Docker": [[13, "docker"]], "Development": [[13, "development"]], "Yunohost": [[13, "yunohost"]], "OAuth 2.0": [[14, "oauth-2-0"]], "Scopes": [[14, "scopes"]], "Flow": [[14, "flow"]], "Resources": [[14, "resources"]], "Third-party tools": [[15, "third-party-tools"]], "Administrator": [[16, "administrator"]], "FitTrackee fails to start": [[16, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[16, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Failed to upload or download files": [[16, "failed-to-upload-or-download-files"]], "Troubleshooting": [[17, "troubleshooting"]], "User": [[18, "user"]]}, "indexentries": {"api_rate_limits": [[13, "envvar-API_RATE_LIMITS"]], "app_log": [[13, "envvar-APP_LOG"]], "app_secret_key": [[13, "envvar-APP_SECRET_KEY"]], "app_settings": [[13, "envvar-APP_SETTINGS"]], "app_workers": [[13, "envvar-APP_WORKERS"]], "database_disable_pooling": [[13, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[13, "envvar-DATABASE_URL"]], "default_staticmap": [[13, "envvar-DEFAULT_STATICMAP"]], "email_url": [[13, "envvar-EMAIL_URL"]], "flask_app": [[13, "envvar-FLASK_APP"]], "host": [[13, "envvar-HOST"]], "map_attribution": [[13, "envvar-MAP_ATTRIBUTION"]], "port": [[13, "envvar-PORT"]], "redis_url": [[13, "envvar-REDIS_URL"]], "sender_email": [[13, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[13, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[13, "envvar-TILE_SERVER_URL"]], "ui_url": [[13, "envvar-UI_URL"]], "upload_folder": [[13, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[13, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[13, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[13, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[13, "envvar-WORKERS_PROCESSES"]], "environment variable": [[13, "envvar-API_RATE_LIMITS"], [13, "envvar-APP_LOG"], [13, "envvar-APP_SECRET_KEY"], [13, "envvar-APP_SETTINGS"], [13, "envvar-APP_WORKERS"], [13, "envvar-DATABASE_DISABLE_POOLING"], [13, "envvar-DATABASE_URL"], [13, "envvar-DEFAULT_STATICMAP"], [13, "envvar-EMAIL_URL"], [13, "envvar-FLASK_APP"], [13, "envvar-HOST"], [13, "envvar-MAP_ATTRIBUTION"], [13, "envvar-PORT"], [13, "envvar-REDIS_URL"], [13, "envvar-SENDER_EMAIL"], [13, "envvar-STATICMAP_SUBDOMAINS"], [13, "envvar-TILE_SERVER_URL"], [13, "envvar-UI_URL"], [13, "envvar-UPLOAD_FOLDER"], [13, "envvar-VUE_APP_API_URL"], [13, "envvar-WEATHER_API_KEY"], [13, "envvar-WEATHER_API_PROVIDER"], [13, "envvar-WORKERS_PROCESSES"]]}})
\ No newline at end of file
diff --git a/docs/third_party_tools.html b/docs/third_party_tools.html
index 8a416781..2df2f359 100644
--- a/docs/third_party_tools.html
+++ b/docs/third_party_tools.html
@@ -5,7 +5,7 @@
- Third-party tools — FitTrackee 0.7.16
+ Third-party tools — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -153,7 +153,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html
index 07673149..4210d84b 100644
--- a/docs/troubleshooting/administrator.html
+++ b/docs/troubleshooting/administrator.html
@@ -5,7 +5,7 @@
- Administrator — FitTrackee 0.7.16
+ Administrator — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -183,7 +183,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html
index f91fa82e..193f742c 100644
--- a/docs/troubleshooting/index.html
+++ b/docs/troubleshooting/index.html
@@ -5,7 +5,7 @@
- Troubleshooting — FitTrackee 0.7.16
+ Troubleshooting — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -159,7 +159,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html
index 2b36c466..fc288c7a 100644
--- a/docs/troubleshooting/user.html
+++ b/docs/troubleshooting/user.html
@@ -5,7 +5,7 @@
- User — FitTrackee 0.7.16
+ User — FitTrackee 0.7.17
documentation
@@ -43,7 +43,7 @@
FitTrackee
- 0.7.16
+ 0.7.17
@@ -149,7 +149,7 @@
© Copyright 2018 - 2023, SamR1 .
- Last updated on May 29, 2023.
+ Last updated on Jun 03, 2023.
Created using Sphinx 5.3.0.
diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png
index c4614f3b..1af800ed 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-01.png and b/docsrc/source/_images/fittrackee_screenshot-01.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-02.png b/docsrc/source/_images/fittrackee_screenshot-02.png
index cb4fa3fe..07eec035 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-02.png and b/docsrc/source/_images/fittrackee_screenshot-02.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-03.png b/docsrc/source/_images/fittrackee_screenshot-03.png
index c48a29e9..77e8c65c 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-03.png and b/docsrc/source/_images/fittrackee_screenshot-03.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-04.png b/docsrc/source/_images/fittrackee_screenshot-04.png
index 91c25598..e37ded3a 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-04.png and b/docsrc/source/_images/fittrackee_screenshot-04.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-05.png b/docsrc/source/_images/fittrackee_screenshot-05.png
index 33b2933a..cc47f526 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-05.png and b/docsrc/source/_images/fittrackee_screenshot-05.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-06.png b/docsrc/source/_images/fittrackee_screenshot-06.png
index eea2eb0d..9260b479 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-06.png and b/docsrc/source/_images/fittrackee_screenshot-06.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-07.png b/docsrc/source/_images/fittrackee_screenshot-07.png
index 22bbb874..62e823d6 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-07.png and b/docsrc/source/_images/fittrackee_screenshot-07.png differ
diff --git a/docsrc/source/_images/fittrackee_screenshot-08.png b/docsrc/source/_images/fittrackee_screenshot-08.png
index 4a41e1fa..d80cf899 100644
Binary files a/docsrc/source/_images/fittrackee_screenshot-08.png and b/docsrc/source/_images/fittrackee_screenshot-08.png differ
diff --git a/docsrc/source/features.rst b/docsrc/source/features.rst
index 649b2928..00c72ab7 100644
--- a/docsrc/source/features.rst
+++ b/docsrc/source/features.rst
@@ -207,6 +207,9 @@ Translations status on `Weblate `
.. figure:: https://hosted.weblate.org/widgets/fittrackee/-/multi-auto.svg
+.. note::
+ Polish is not yet available in **FitTrackee** interface.
+
Screenshots
^^^^^^^^^^^^
diff --git a/docsrc/source/installation.rst b/docsrc/source/installation.rst
index 492e6754..bbf7a3d1 100644
--- a/docsrc/source/installation.rst
+++ b/docsrc/source/installation.rst
@@ -29,7 +29,7 @@ Prerequisites
- SMTP provider (if email sending is enabled)
- API key from a `weather data provider `__
- `Poetry `__ (for installation from sources only)
- - `Yarn `__ (for development only)
+ - `Node `__ 16+ and `Yarn `__ (for development only)
- Docker and Docker Compose (for development or evaluation purposes)
.. note::
@@ -509,13 +509,13 @@ Production environment
.. warning::
| Note that FitTrackee is under heavy development, some features may be unstable.
-- Download the last release (for now, it is the release v0.7.16):
+- Download the last release (for now, it is the release v0.7.17):
.. code:: bash
- $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.16.tar.gz
- $ tar -xzf v0.7.16.tar.gz
- $ mv FitTrackee-0.7.16 FitTrackee
+ $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.17.tar.gz
+ $ tar -xzf v0.7.17.tar.gz
+ $ mv FitTrackee-0.7.17 FitTrackee
$ cd FitTrackee
- Create **.env** from example and update it
@@ -635,13 +635,13 @@ Prod environment
- Change to the directory where FitTrackee directory is located
-- Download the last release (for now, it is the release v0.7.16) and overwrite existing files:
+- Download the last release (for now, it is the release v0.7.17) and overwrite existing files:
.. code:: bash
- $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.16.tar.gz
- $ tar -xzf v0.7.16.tar.gz
- $ cp -R FitTrackee-0.7.16/* FitTrackee/
+ $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.17.tar.gz
+ $ tar -xzf v0.7.17.tar.gz
+ $ cp -R FitTrackee-0.7.17/* FitTrackee/
$ cd FitTrackee
- Update **.env** if needed (see `Environment variables `__).
diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py
index b2ed6664..f0e5e1d3 100644
--- a/fittrackee/__init__.py
+++ b/fittrackee/__init__.py
@@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix
from fittrackee.emails.email import EmailService
from fittrackee.request import CustomRequest
-VERSION = __version__ = '0.7.16'
+VERSION = __version__ = '0.7.17'
REDIS_URL = os.getenv('REDIS_URL', 'redis://')
API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split(
','
diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py
index 4d996b97..0d037138 100644
--- a/fittrackee/application/app_config.py
+++ b/fittrackee/application/app_config.py
@@ -52,7 +52,7 @@ def get_application_config() -> Union[Dict, HttpResponse]:
"map_attribution": "© OpenStreetMap contributors",
"privacy_policy": null,
"privacy_policy_date": null,
- "version": "0.7.16",
+ "version": "0.7.17",
"weather_provider": null
},
"status": "success"
@@ -108,7 +108,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]:
"map_attribution": "© OpenStreetMap contributors",
"privacy_policy": null,
"privacy_policy_date": null,
- "version": "0.7.16",
+ "version": "0.7.17",
"weather_provider": null
},
"status": "success"
diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html
index 9cef850b..bfd66371 100644
--- a/fittrackee/dist/index.html
+++ b/fittrackee/dist/index.html
@@ -1 +1 @@
-FitTrackee We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.
\ No newline at end of file
+FitTrackee We're sorry but FitTrackee doesn't work properly without JavaScript enabled. Please enable it to continue.
\ No newline at end of file
diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js
index cd08a1ad..19132793 100644
--- a/fittrackee/dist/service-worker.js
+++ b/fittrackee/dist/service-worker.js
@@ -1,2 +1,2 @@
-if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let l={};const n=s=>e(s,a),c={module:{uri:a},exports:l,require:n};i[a]=Promise.all(t.map((s=>c[s]||n(s)))).then((s=>(r(...s),l)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"2cd86fbf5da6abd0e05b7f31a55ad132"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.3193986e.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.567acd35.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.66742279.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.03fdd6a3.js",revision:null},{url:"/static/js/431.e117da19.js",revision:null},{url:"/static/js/633.3c920340.js",revision:null},{url:"/static/js/858.8fd585ad.js",revision:null},{url:"/static/js/93.df2db3a3.js",revision:null},{url:"/static/js/admin.757bc8af.js",revision:null},{url:"/static/js/app.a977dc90.js",revision:null},{url:"/static/js/chunk-vendors.7fdd7d99.js",revision:null},{url:"/static/js/password.b8efc50f.js",revision:null},{url:"/static/js/password.de.d164c0cb.js",revision:null},{url:"/static/js/password.en.4b788215.js",revision:null},{url:"/static/js/password.es.0fdfd7ae.js",revision:null},{url:"/static/js/password.fr.eca0ec1d.js",revision:null},{url:"/static/js/password.it.9fae932a.js",revision:null},{url:"/static/js/profile.e3100ccf.js",revision:null},{url:"/static/js/reset.6e5293e6.js",revision:null},{url:"/static/js/statistics.ec64386f.js",revision:null},{url:"/static/js/workouts.eea9f0ee.js",revision:null}],{})}));
+if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let l={};const n=s=>e(s,a),c={module:{uri:a},exports:l,require:n};i[a]=Promise.all(t.map((s=>c[s]||n(s)))).then((s=>(r(...s),l)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"4a76a2a207ecf3d3c9d6d2e18b66f174"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.3193986e.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.567acd35.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.66742279.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.03fdd6a3.js",revision:null},{url:"/static/js/431.e117da19.js",revision:null},{url:"/static/js/633.3c920340.js",revision:null},{url:"/static/js/858.8fd585ad.js",revision:null},{url:"/static/js/93.df2db3a3.js",revision:null},{url:"/static/js/admin.757bc8af.js",revision:null},{url:"/static/js/app.0fecb360.js",revision:null},{url:"/static/js/chunk-vendors.7fdd7d99.js",revision:null},{url:"/static/js/password.b8efc50f.js",revision:null},{url:"/static/js/password.de.d164c0cb.js",revision:null},{url:"/static/js/password.en.4b788215.js",revision:null},{url:"/static/js/password.es.0fdfd7ae.js",revision:null},{url:"/static/js/password.fr.eca0ec1d.js",revision:null},{url:"/static/js/password.it.9fae932a.js",revision:null},{url:"/static/js/profile.e3100ccf.js",revision:null},{url:"/static/js/reset.f26118ce.js",revision:null},{url:"/static/js/statistics.ec64386f.js",revision:null},{url:"/static/js/workouts.eea9f0ee.js",revision:null}],{})}));
//# sourceMappingURL=service-worker.js.map
diff --git a/fittrackee/dist/service-worker.js.map b/fittrackee/dist/service-worker.js.map
index 8c5540e6..fbe80ea3 100644
--- a/fittrackee/dist/service-worker.js.map
+++ b/fittrackee/dist/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/e3c96d8ea51b8a5c910d5c830e1638e0/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"2cd86fbf5da6abd0e05b7f31a55ad132\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.3193986e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.567acd35.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.66742279.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.03fdd6a3.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.e117da19.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.3c920340.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.8fd585ad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.df2db3a3.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.757bc8af.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.a977dc90.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.7fdd7d99.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.b8efc50f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.de.d164c0cb.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.en.4b788215.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.es.0fdfd7ae.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.fr.eca0ec1d.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.it.9fae932a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.e3100ccf.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.6e5293e6.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.ec64386f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.eea9f0ee.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"}
\ No newline at end of file
+{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/1cf4ec116b8b90e167de260d448025a1/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"4a76a2a207ecf3d3c9d6d2e18b66f174\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.3193986e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.567acd35.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.66742279.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.03fdd6a3.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.e117da19.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.3c920340.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.8fd585ad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.df2db3a3.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.757bc8af.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.0fecb360.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.7fdd7d99.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.b8efc50f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.de.d164c0cb.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.en.4b788215.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.es.0fdfd7ae.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.fr.eca0ec1d.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.it.9fae932a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.e3100ccf.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.f26118ce.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.ec64386f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.eea9f0ee.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,qCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"}
\ No newline at end of file
diff --git a/fittrackee/dist/static/js/app.a977dc90.js b/fittrackee/dist/static/js/app.0fecb360.js
similarity index 99%
rename from fittrackee/dist/static/js/app.a977dc90.js
rename to fittrackee/dist/static/js/app.0fecb360.js
index a2e34bba..2d4bbca1 100644
--- a/fittrackee/dist/static/js/app.a977dc90.js
+++ b/fittrackee/dist/static/js/app.0fecb360.js
@@ -1,2 +1,2 @@
-(function(){var e={5167:function(e,n,r){"use strict";var t=r(6154),o=r(8566),a=r(2894),i=r(5801),s=r(2024);const l=t.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const n=new AbortController;e.signal=n.signal;const r=(0,o.a)(e);o.j.set(r,n);const t=a.Z.getters[i.YN.GETTERS.AUTH_TOKEN];if(t){const n=`Bearer ${t}`;e.headers&&e.headers.Authorization!==n&&(e.headers.Authorization=`Bearer ${t}`)}return e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,o.a)(e.config),e)),(e=>("canceled"!==e.message&&e.response&&(0,o.a)(e.response.config),Promise.reject(e)))),n["Z"]=l},8566:function(e,n,r){"use strict";r.d(n,{a:function(){return a},j:function(){return t}});const t=new Map,o=e=>{const{method:n,url:r,params:t={},data:o={}}=e;return[n,r,JSON.stringify(t),JSON.stringify(o)].join("")},a=e=>{const n=o(e);if(t.has(n)){const e=t.get(n)||{};e?.abort(),t.delete(n)}return n}},2540:function(e,n,r){"use strict";var t=r(9150);const o=["pl"];function a(){const e=r(4612),n={};return e.keys().forEach((r=>{const t=r.match(/([A-Za-z0-9-_]+)\./i);if(t&&t.length>1&&!o.includes(t[1])){const o=t[1];n[o]=e(r).default}})),n}n["Z"]=(0,t.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:a()})},3010:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Über diese Instanz"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["unter ",r(t(0))," Lizenz "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Quellcode"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Wetterdaten von:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Zusätzliche Informationen, die für deine Nutzer nützlich sein könnten. Markdown-Syntax wird unterstützt."])},TEXT:e=>{const{normalize:n}=e;return n(["Detaillierte Instanz-Informationen"])}},ACTION:e=>{const{normalize:n}=e;return n(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Aktiv"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Kontakt-E-Mail des Administrators"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Max. Dateianzahl im zip Archiv"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Max. Anzahl aktiver Nutzer"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Möchtest du wirklich das ",r(t(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Möchtest du wirklich das ",r(t(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Neue E-Mail"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Kein Text eingegeben"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Das wasswort wurde zurückgesetzt."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Füge deine eigene Datenschutzrichtlinie hinzu oder leer lassen, um die standardmäßige zu verwenden. Markdown-Syntax wird unterstützt."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["Trainings existieren"])},IMAGE:e=>{const{normalize:n}=e;return n(["Bild"])},LABEL:e=>{const{normalize:n}=e;return n(["Titel"])}},TITLE:e=>{const{normalize:n}=e;return n(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Aktualisiere Anwemdungskonfiguration."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:n}=e;return n(["Nutzer"])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["Adminstatus"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["Accountstatus"])},USERNAME:e=>{const{normalize:n}=e;return n(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["Trainingsanzahl"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Administratorrechte entfernen"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Die E-Mail Adresse wurde aktualisiert."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["-Element fehlt in der .gpx-Datei."])},"Network Error":e=>{const{normalize:n}=e;return n(["Netzwerkfehler."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Eine Anfrage zum vollständigen Export existiert bereits."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Fehler beim Einlesen der GPX-Datei"])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Fehler bei der GPX-Verarbeitung."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Fehler beim Abrufen der Konfiguration."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Fehler beim Speichern des Workouts."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Fehler beim Aktualisieren der Konfiguration"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["Die Datei ist größer als erlaubt."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["Die .gpx-Datei ist ungültig."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Ungültiges Token, bitte erneut anmelden."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden"])},"no file part":e=>{const{normalize:n}=e;return n(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:n}=e;return n(["Keine Datei ausgewählt."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Kein Track () in der .gpx-Datei."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Eine Anfrage zum Datenexport existiert bereits."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Gebe ein gültiges Authentifizierungstoken an."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Sportart existiert nicht."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Registrierung erfolgreich."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Du hast keine Berechtigung."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["Nächste"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["Vorhergehende"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Bestätigungs-E-Mail erneut senden"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorisieren"])},BACK:e=>{const{normalize:n}=e;return n(["Zurück"])},CANCEL:e=>{const{normalize:n}=e;return n(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:n}=e;return n(["Deaktivieren"])},EDIT:e=>{const{normalize:n}=e;return n(["Bearbeiten"])},ENABLE:e=>{const{normalize:n}=e;return n(["Aktivieren"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Anmelden"])},NO:e=>{const{normalize:n}=e;return n(["Nein"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registrieren"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Daten-Export anfragen"])},RESET:e=>{const{normalize:n}=e;return n(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Speichern"])},YES:e=>{const{normalize:n}=e;return n(["Ja"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["Über"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bestätigung"])},CONTACT:e=>{const{normalize:n}=e;return n(["Kontakt"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["Tag"]),n(["Tage"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["Dokumentation (en)"])},HERE:e=>{const{normalize:n}=e;return n(["hier"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Versteckt"])},HOME:e=>{const{normalize:n}=e;return n(["Startseite"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["aufsteigend"])},DESC:e=>{const{normalize:n}=e;return n(["absteigend"])},LABEL:e=>{const{normalize:n}=e;return n(["sortieren"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["sortiert nach"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["pro Seite"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Dieser Monat"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein. Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Etwas lief schief"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["ID"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Erstellt am"])},NAME:e=>{const{normalize:n}=e;return n(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Geltungsbereich"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Lesezugriff auf auth
-Endpunkte"])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf auth
-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Lesezugriff auf users
-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf users
-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Lesezugriff auf workouts
-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf workouts
-Endpunkte"])}},URL:e=>{const{normalize:n}=e;return n(["Anwendungs-URL"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["OAuth2-Anwendungen"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Die Anwendung ",r(t(0))," fragt an:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n([r(t(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:n}=e;return n(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(["Du kannst die Löschung deines Kontos jederzeit anfragen, indem du (nach dem Anmelden) zu dieser Adresse gehst und auf den „Mein Konto löschen“-Button in der Accountbearbeitung klickst."])},TITLE:e=>{const{normalize:n}=e;return n(["Account löschen"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Wenn wir uns dazu entschließen, unsere Datenschutzrichtlinie zu ändern, werden wir die Änderungen auf dieser Seite posten.\n\nDieses Dokument ist unter der [CC-BY-SA-Lizenz](https://creativecommons.org/licenses/by-sa/4.0/). Angepasst von der Datenschutzrichtlinie von [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Änderungen unserer Datenschutzrichtlinie"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Die folgenden Informationen werden gesammelt:\n- Accountinformationen (Benutzername, E-Mail-Adresse und Password). Du kannst auch zusätzliche Profilinformationen wie Vor- und Nachname, Geburtsdatum, Standort und Biographie eingeben und ein Profilbild hochladen.\n- [GPX](https://de.wikipedia.org/wiki/GPS_Exchange_Format)-Dateien. Diese Dateien enthalten Daten, die mit deinen Aktivitäten zusammenhängen (geographische Koordinaten, Datum, Distanz, Dauer, maximale und durchschnittliche Geschwindigkeit, Höhe, Pulsrate...). Wenn du einige dieser Daten nicht preisgeben möchtest, kannst du die Dateien vor dem Hochladen bereinigen oder Workouts ohne GPX-Dateien hochladen.\n- Workout-Daten (Sportart, Titel, Datum, Dauer, Distanz, An- und Abstieg, Notizen).\n- Technische Informationen (Browser und Betriebssystem)."])},TITLE:e=>{const{normalize:n}=e;return n(["Welche Informationen sammeln wir?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Wir verkaufen deine personenbezogenen Informationen nicht und übertragen sie auch nicht an Dritte.\n\nDies enthält nicht vertrauliche Dritte die uns beim Betreiben dieser Seiten helfen, solange diese Parteien zustimmen, die Informationen vertraulich zu behandeln.\n\nWir können auch Informationen preisgeben, wenn wir denken, dass dieses Preisgeben angemessen ist, um mit dem Gesetz übereinzustimmen, unsere Seitenrichtlinien durchzusetzen oder um unsere oder die Rechte und Sicherheit anderer zu schützen.\n\nWenn du einer Anwendung von Dritten die Berechtigung gibst, deinen Account zu nutzen, abhängig von den Berechtigungen, denen du zustimmst, können sie möglicherweise auf Profilinformationen oder Workouts zugreifen. Anwendungen können niemals dein Passwort einsehen."])},TITLE:e=>{const{normalize:n}=e;return n(["Geben wir Informationen an Außenstehende weiter?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Informationen zu gewährleisten, wenn du diese eingibst oder auf sie zugreifst."])},TITLE:e=>{const{normalize:n}=e;return n(["Wie schützen wir deinen Informationen?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Diese gesammelten Informationen können verwendet werden, um die Kernfunktionen von **FitTrackee** zu gewährleisten:\n- GPX-Dateien werden verwendet, um Workouts zu erstellen, Tracks auf Karten (mit [OpenStreetMap](https://www.openstreetmap.org) und dem konfigurierten Tile-Server) und Diagrammen darzustellen, Karten-Thumbnails zu erstellen, Rekorde zu berechnen und Wetterdaten zu erhalten (wenn ein Wetteranbieter gesetzt wurde).\n- Profilinformationen und Workouts werden nicht öffentlich angezeigt. Ein registrierter Nutzen kann nur seine eigenen Workouts anzeigen.\n- Die E-Mail-Adresse, die du angibst, kann verwendet werden, um dir Informationen oder Bestätigungen zu Accountänderungen zu schicken."])},TITLE:e=>{const{normalize:n}=e;return n(["Für was verwenden wir deine Informationen?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Wenn dieser Server in der EU oder EEA steht: Unsere Seite und Services sind für Personen, die mindestens 16 Jahre alt sind. Wenn du unter 16 bist, benutze diese Seite gemäß den Bestimmungen der [DSGVO](https://de.wikipedia.org/wiki/Datenschutz-Grundverordnung) (Datenschutz-Grundverordnung) nicht.\n\nWenn dieser Server in den USA steht: Unsere Seite und Services sind für Personen, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, benutze diese Seite gemäß den Bestimmungen der [COPPA](https://de.wikipedia.org/wiki/Children%E2%80%99s_Online_Privacy_Protection_Act) (Children’s Online Privacy Protection Act) nicht.\n\nGesetzliche Anforderungen können in anderen Rechtsbereichen anders sein."])},TITLE:e=>{const{normalize:n}=e;return n(["Seitennutzung durch Kinder"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Durch das Benutzen unserer Seite stimmst du der Datenschutzrichtlinie der Webseite zu."])},TITLE:e=>{const{normalize:n}=e;return n(["Deine Zustimmung"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Letztes Update"])},TITLE:e=>{const{normalize:n}=e;return n(["Datenschutzrichtlinie"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Radfahren (Virtuell)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken (elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Bergsteigen"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Rudern"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Gehen"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistik"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["Monat"])},week:e=>{const{normalize:n}=e;return n(["Woche"])},year:e=>{const{normalize:n}=e;return n(["Jahr"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:n}=e;return n(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Gebe ein Passwort ein"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Datenexport"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Archiv herunterladen"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["generiere Link..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Du kannst alle 24 Stunden ein Archiv anfragen"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["fehlgeschlagen (bitte frage einen anderen Export an)"])},in_progress:e=>{const{normalize:n}=e;return n(["in Arbeit..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Ungültiges Token, bitte fordere ein neues Passworts an."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Ich möchte meinen Account löschen"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Sprache"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Die Datenschutzrichtlinie wurde aktualisiert, bitte ",r(t(0))," sie vor dem Fortfahren."])},LOGIN:e=>{const{normalize:n}=e;return n(["Anmeldung"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Abmelden"])},LOG_IN:e=>{const{normalize:n}=e;return n(["Anmelden"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Passwort vergessen?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["mittel"])},GOOD:e=>{const{normalize:n}=e;return n(["gut"])},LABEL:e=>{const{normalize:n}=e;return n(["Passwortstärke"])},STRONG:e=>{const{normalize:n}=e;return n(["start"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Schreibe einige, aber nicht alle Buchstaben groß."])},anotherWord:e=>{const{normalize:n}=e;return n(["Füge weitere weniger gebräuchliche Wörter hinzu."])},associatedYears:e=>{const{normalize:n}=e;return n(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},capitalization:e=>{const{normalize:n}=e;return n(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:n}=e;return n(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},l33t:e=>{const{normalize:n}=e;return n(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},noNeed:e=>{const{normalize:n}=e;return n(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:n}=e;return n(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])},recentYears:e=>{const{normalize:n}=e;return n(["Vermeide Angabe von letzten Jahreszahlen."])},repeated:e=>{const{normalize:n}=e;return n(["Vermeide wiederholungen von Wörtern und Zeichen."])},reverseWords:e=>{const{normalize:n}=e;return n(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},sequences:e=>{const{normalize:n}=e;return n(["Vermeide gebräuchliche Zeichenfolgen."])},useWords:e=>{const{normalize:n}=e;return n(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])}},WEAK:e=>{const{normalize:n}=e;return n(["schwach"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Dein Passwort wurde aktualisiert. Klicke ",r(t(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Kontoausgabe"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Zurück zum Profil"])},BIO:e=>{const{normalize:n}=e;return n(["Biographie"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Geburtsdatum"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Datumsanzeigeformat"])},EDIT:e=>{const{normalize:n}=e;return n(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Einstellungen für Sportarten ändern"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Höhendiagramm startet bei"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Minimale Höhe"])},ZERO:e=>{const{normalize:n}=e;return n(["Null"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Bitte ",r(t(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Erster Tag der Woche"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Vorname"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Sprache"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Nachname"])},LOCATION:e=>{const{normalize:n}=e;return n(["Ort"])},MONDAY:e=>{const{normalize:n}=e;return n(["Montag"])},PICTURE:e=>{const{normalize:n}=e;return n(["Bild"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Bildausgabe"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Bild entfernen"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Bild aktualisieren"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Einstellungsausgabe"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Datenschutzrichtlinie"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Registrierungsdatum"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["Aktion"])},COLOR:e=>{const{normalize:n}=e;return n(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["aktiv"])},LABEL:e=>{const{normalize:n}=e;return n(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["Geschwindigkeitsschwellenwert für Stopp"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Sportarten-Einstellungsausgabe"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Dein Konto wurde erfolgreich aktualisiert."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["Konto"])},APPS:e=>{const{normalize:n}=e;return n(["Anwendungen"])},PICTURE:e=>{const{normalize:n}=e;return n(["Bild"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["Einstellungen"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["Datenschutzrichtlinie"])},PROFILE:e=>{const{normalize:n}=e;return n(["Profil"])},SPORTS:e=>{const{normalize:n}=e;return n(["Sportarten"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Zeitzone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Imperiales System (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Einheiten für die Distanz"])},METRIC:e=>{const{normalize:n}=e;return n(["Metrisches System (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Gefiltert"])},LABEL:e=>{const{normalize:n}=e;return n(["Höchstgeschwindigkeitsstrategie"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Rau"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Ich habe die ",r(t(0))," gelesen und stimme ihr zu."])},REGISTER:e=>{const{normalize:n}=e;return n(["Registrieren"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Entschuldigung, die Registrierung ist deaktiviert."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["E-Mail zur Kontobestätigung erneut senden"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort zurücksetzen"])},REVIEW:e=>{const{normalize:n}=e;return n(["überprüfen"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Dieser Account ist inaktiv."])},USERNAME:e=>{const{normalize:n}=e;return n(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(["3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["Benutzerbild"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Du hast die ",r(t(0))," akzeptiert."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["Analyse"])},ASCENT:e=>{const{normalize:n}=e;return n(["Aufstieg"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["Durchschnittsgeschwindigkeit"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["Durchschn. Geschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["zurück zum Training"])},DATE:e=>{const{normalize:n}=e;return n(["Datum"])},DESCENT:e=>{const{normalize:n}=e;return n(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["zeige Filter"])},DISTANCE:e=>{const{normalize:n}=e;return n(["Entfernung"])},DURATION:e=>{const{normalize:n}=e;return n(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:n}=e;return n(["Höhe"])},END:e=>{const{normalize:n}=e;return n(["Ende"])},FROM:e=>{const{normalize:n}=e;return n(["Von"])},GPX_FILE:e=>{const{normalize:n}=e;return n([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["verberge Filter"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["Die Distanz muss größer als 0 sein"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["Die Dauer muss größer als 0 Sekunden sein"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Nächstes Training"])},NOTES:e=>{const{normalize:n}=e;return n(["Anmerkungen"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Keine Trainings."])},PAUSES:e=>{const{normalize:n}=e;return n(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Vorheriges Training"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["Aufzeichnung"]),n(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Weiteste Entfernung"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Höchster Anstieg"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["verbleibende Zeichen"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["Segment"]),n(["Segmente"])])},SPEED:e=>{const{normalize:n}=e;return n(["Geschwindigkeit"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["Sportart"]),n(["Sportarten"])])},START:e=>{const{normalize:n}=e;return n(["Start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:n}=e;return n(["Titel"])},TO:e=>{const{normalize:n}=e;return n(["bis"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Füge erstes Training hinzu!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["klarer Tag"])},"clear-night":e=>{const{normalize:n}=e;return n(["klare Nacht"])},cloudy:e=>{const{normalize:n}=e;return n(["wolkig"])},fog:e=>{const{normalize:n}=e;return n(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:n}=e;return n(["Regen"])},sleet:e=>{const{normalize:n}=e;return n(["Schneeregen"])},snow:e=>{const{normalize:n}=e;return n(["Schnee"])},wind:e=>{const{normalize:n}=e;return n(["Wind"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["Temperatur"])},WIND:e=>{const{normalize:n}=e;return n(["Wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["O"])},ENE:e=>{const{normalize:n}=e;return n(["ONO"])},ESE:e=>{const{normalize:n}=e;return n(["OSO"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NO"])},NNE:e=>{const{normalize:n}=e;return n(["NNO"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SO"])},SSE:e=>{const{normalize:n}=e;return n(["SSO"])},SSW:e=>{const{normalize:n}=e;return n(["SSW"])},SW:e=>{const{normalize:n}=e;return n(["SW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["ohne .gpx Datei"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["mit .gpx Datei"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["Training"]),n(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["oder .zip Datei mit .gpx Dateien"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},2709:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["About this instance"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["under ",r(t(0))," license "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Source code"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Weather data from:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Any additional information that may be useful to your users. Markdown syntax can be used."])},TEXT:e=>{const{normalize:n}=e;return n(["Detailed instance information"])}},ACTION:e=>{const{normalize:n}=e;return n(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activate account"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Active"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Add/remove admin rights, delete user account."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Administrator email for contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Max. files of zip archive"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["If 0, no limitation on registration."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Max. number of active users"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Are you sure you want to delete ",r(t(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Are you sure you want to reset ",r(t(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Current email"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["New email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["No text entered"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["The password has been reset."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Add your own privacy policy or leave blank to use the default one. Markdown syntax can be used."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Active"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["workouts exist"])},IMAGE:e=>{const{normalize:n}=e;return n(["Image"])},LABEL:e=>{const{normalize:n}=e;return n(["Label"])}},TITLE:e=>{const{normalize:n}=e;return n(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Update application configuration."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Update email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["user"]),n(["users"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["admin status"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["registration date"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["account status"])},USERNAME:e=>{const{normalize:n}=e;return n(["username"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["workout count"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Remove admin rights"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["The email address has been updated."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n([" element is missing in .gpx file."])},"Network Error":e=>{const{normalize:n}=e;return n(["Network Error."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Please try again or contact the administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["At least one file in zip archive exceeds size limit, please check the archive."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["A completed export request already exists."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: valid email must be provided."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Error during gpx file parsing."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Error during gpx processing."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Error on getting configuration."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Error when saving workout."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["File size is greater than the allowed size."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["The .gpx file is invalid."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Invalid credentials."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Invalid token, please log in again."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:n}=e;return n(["No file provided."])},"no selected file":e=>{const{normalize:n}=e;return n(["No selected file."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["No track () in .gpx file."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["A data export request already exists."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Provide a valid auth token."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Signature expired. Please log in again."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Sport does not exist."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Successfully registered."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["The number of files in the archive exceeds the limit."])},"user does not exist":e=>{const{normalize:n}=e;return n(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["You do not have permissions."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["next"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["previous"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Resend confirmation email"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Authorize"])},BACK:e=>{const{normalize:n}=e;return n(["Back"])},CANCEL:e=>{const{normalize:n}=e;return n(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Delete my account"])},DISABLE:e=>{const{normalize:n}=e;return n(["Disable"])},EDIT:e=>{const{normalize:n}=e;return n(["Edit"])},ENABLE:e=>{const{normalize:n}=e;return n(["Enable"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Log in"])},NO:e=>{const{normalize:n}=e;return n(["No"])},REGISTER:e=>{const{normalize:n}=e;return n(["Register"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Request data export"])},RESET:e=>{const{normalize:n}=e;return n(["Reset"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Submit"])},YES:e=>{const{normalize:n}=e;return n(["Yes"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["about"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmation"])},CONTACT:e=>{const{normalize:n}=e;return n(["contact"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["day"]),n(["days"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Displayed"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentation"])},HERE:e=>{const{normalize:n}=e;return n(["here"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Hidden"])},HOME:e=>{const{normalize:n}=e;return n(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascending"])},DESC:e=>{const{normalize:n}=e;return n(["descending"])},LABEL:e=>{const{normalize:n}=e;return n(["sort"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["order by"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["par page"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["This month"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["The application seems to have encountered some issues. Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Page not found"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Something went wrong"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Please try again or contact the administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Secret"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Application description"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Issue at"])},NAME:e=>{const{normalize:n}=e;return n(["Application name"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants read access to auth
endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to auth
endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants read access to users
endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to users
endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants read access to workouts
endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to workouts
endpoints."])}},URL:e=>{const{normalize:n}=e;return n(["Application URL"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["OAuth2 applications"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["The application ",r(t(0))," is requesting:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Authorize ",r(t(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Delete application"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Add an application"])},NO_APP:e=>{const{normalize:n}=e;return n(["Application not found!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["All existing associated tokens have been revoked."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['You can request the deletion of your account at any time by going to this address (after logging in) and clicking on "Delete My Account" button in your account edition.'])},TITLE:e=>{const{normalize:n}=e;return n(["Account deletion"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["If we decide to change our privacy policy, we will post those changes on this page.\n\nThis document is under [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) license. Originally adapted from the [Discourse](https://github.com/discourse/discourse) privacy policy."])},TITLE:e=>{const{normalize:n}=e;return n(["Changes to our Privacy Policy"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["The following information are collected:\n- Account information (username, e-mail address and password). You may also enter additional profile information such as a first name, last name, birth date, location, biography and upload a profile picture.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) files. These files contain data related to your activities (geographic coordinates, date, distance, duration, max and average speeds, elevation, heart rate…). If you don't want to expose some data, clean them before upload or add workouts without GPX files.\n- Workout data (sport, title, date, duration, distance, ascent, descent, notes).\n- Technical information (browser name and operating system)."])},TITLE:e=>{const{normalize:n}=e;return n(["What information do we collect?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["We do not sell, trade or otherwise transfer to outside parties your personally identifiable information.\n\nThis does not include trusted third parties who assist us in operating our site and servicing you, so long as those parties agree to keep this information confidential. \n\nWe may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.\n\nWhen you authorize a third-party application to use your account, depending on the scope of permissions you approve, it may access your profile information or your workouts. Applications can never access your password."])},TITLE:e=>{const{normalize:n}=e;return n(["Do we disclose any information to outside parties?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information."])},TITLE:e=>{const{normalize:n}=e;return n(["How do we protect your information?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Any of the information we collect from you may be used to provide the core functionality of **FitTrackee**:\n- GPX files are used to create workouts, display tracks on map (with [OpenStreetMap](https://www.openstreetmap.org) and the configured tile server) and charts, generate map thumbnails, calculate records and get weather data (if a weather provider is set).\n- Profile information and workouts are not displayed publicly. A registered user can only display his own workouts.\n- The email address you provide may be used to send you information or confirm your account modifications."])},TITLE:e=>{const{normalize:n}=e;return n(["What do we use your information for?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["If this server is in the EU or the EEA: Our site and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation) do not use this site.\n\nIf this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act) do not use this site.\n\nLaw requirements can be different if this server is in another jurisdiction."])},TITLE:e=>{const{normalize:n}=e;return n(["Site usage by children"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["By using our site, you consent to our web site privacy policy."])},TITLE:e=>{const{normalize:n}=e;return n(["Your Consent"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Last update"])},TITLE:e=>{const{normalize:n}=e;return n(["privacy policy"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Cycling (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking (Electric)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Mountaineering"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Rowing"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Walking"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistics"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["month"])},week:e=>{const{normalize:n}=e;return n(["week"])},year:e=>{const{normalize:n}=e;return n(["year"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Current password"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Enter a password"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Data export"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Download archive"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["generating link..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["You can request an archive by 24 hours"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["errored (please request another export)"])},in_progress:e=>{const{normalize:n}=e;return n(["in progres..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["hide password"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Invalid token, please request a new password reset."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["I want to delete my account"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Language"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["The privacy policy has been updated, please ",r(t(0))," it before proceeding."])},LOGIN:e=>{const{normalize:n}=e;return n(["Login"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Logout"])},LOG_IN:e=>{const{normalize:n}=e;return n(["log in"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["New password"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["No users found."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Forgot password?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["At least 8 characters required."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["average"])},GOOD:e=>{const{normalize:n}=e;return n(["good"])},LABEL:e=>{const{normalize:n}=e;return n(["password strength"])},STRONG:e=>{const{normalize:n}=e;return n(["strong"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Capitalize some, but not all letters."])},anotherWord:e=>{const{normalize:n}=e;return n(["Add more words that are less common."])},associatedYears:e=>{const{normalize:n}=e;return n(["Avoid years that are associated with you."])},capitalization:e=>{const{normalize:n}=e;return n(["Capitalize more than the first letter."])},dates:e=>{const{normalize:n}=e;return n(["Avoid dates and years that are associated with you."])},l33t:e=>{const{normalize:n}=e;return n(["Avoid predictable letter substitutions like ","@"," for a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Use longer keyboard patterns and change typing direction multiple times."])},noNeed:e=>{const{normalize:n}=e;return n(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:n}=e;return n(["If you use this password elsewhere, you should change it."])},recentYears:e=>{const{normalize:n}=e;return n(["Avoid recent years."])},repeated:e=>{const{normalize:n}=e;return n(["Avoid repeated words and characters."])},reverseWords:e=>{const{normalize:n}=e;return n(["Avoid reversed spellings of common words."])},sequences:e=>{const{normalize:n}=e;return n(["Avoid common character sequences."])},useWords:e=>{const{normalize:n}=e;return n(["Use multiple words, but avoid common phrases."])}},WEAK:e=>{const{normalize:n}=e;return n(["weak"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Your password have been updated. Click ",r(t(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Account edition"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Ascent-related data (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Back to profile"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Birth date"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Date display format"])},EDIT:e=>{const{normalize:n}=e;return n(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Edit sports preferences"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Elevation chart starts at"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Minimum altitude"])},ZERO:e=>{const{normalize:n}=e;return n(["Zero"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Please ",r(t(0))," to change your email address again or contact the administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["First day of week"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["First name"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Language"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Last name"])},LOCATION:e=>{const{normalize:n}=e;return n(["Location"])},MONDAY:e=>{const{normalize:n}=e;return n(["Monday"])},PICTURE:e=>{const{normalize:n}=e;return n(["Picture"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Picture edition"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Remove picture"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Update picture"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Preferences edition"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Privacy policy"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Registration date"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["action"])},COLOR:e=>{const{normalize:n}=e;return n(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["active"])},LABEL:e=>{const{normalize:n}=e;return n(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["stopped speed threshold"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Sports preferences edition"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Your account has been updated successfully."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["account"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["picture"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferences"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["privacy policy"])},PROFILE:e=>{const{normalize:n}=e;return n(["profile"])},SPORTS:e=>{const{normalize:n}=e;return n(["sports"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Imperial system (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Units for distance"])},METRIC:e=>{const{normalize:n}=e;return n(["Metric system (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtered"])},HELP:e=>{const{normalize:n}=e;return n(["If filtered, it excludes extreme values (which may be GPS errors) when calculating the maximum speed."])},LABEL:e=>{const{normalize:n}=e;return n(["GPX max speed strategy"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Raw"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["I have read and agree to the ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["Register"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Sorry, registration is disabled."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Resend account confirmation email"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset your password"])},REVIEW:e=>{const{normalize:n}=e;return n(["review"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["This user account is inactive."])},USERNAME:e=>{const{normalize:n}=e;return n(["Username"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["user picture"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["You have accepted the ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Add a workout"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analysis"])},ASCENT:e=>{const{normalize:n}=e;return n(["ascent"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["average speed"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["ave. speed"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["back to workout"])},DATE:e=>{const{normalize:n}=e;return n(["date"])},DESCENT:e=>{const{normalize:n}=e;return n(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["display filters"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distance"])},DURATION:e=>{const{normalize:n}=e;return n(["duration"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Edit the workout"])},ELEVATION:e=>{const{normalize:n}=e;return n(["elevation"])},END:e=>{const{normalize:n}=e;return n(["end"])},FROM:e=>{const{normalize:n}=e;return n(["from"])},GPX_FILE:e=>{const{normalize:n}=e;return n([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["hide filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Both elevation values must be provided and be greater than or equal to 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["The distance must be greater than 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["The duration must be greater than 0 seconds"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["max. altitude"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["max files"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["max size"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Next workout"])},NOTES:e=>{const{normalize:n}=e;return n(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["No file provided"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["no folder inside"])},NO_MAP:e=>{const{normalize:n}=e;return n(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["No next workout"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["No previous workout"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["No records."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["No workouts."])},PAUSES:e=>{const{normalize:n}=e;return n(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Previous workout"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["records"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Ave. speed"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Farthest distance"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Highest ascent"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Longest duration"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["remaining characters"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segments"])])},SPEED:e=>{const{normalize:n}=e;return n(["speed"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sports"])])},START:e=>{const{normalize:n}=e;return n(["start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["start elevation axis at zero"])},TITLE:e=>{const{normalize:n}=e;return n(["title"])},TO:e=>{const{normalize:n}=e;return n(["to"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Upload one!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["clear day"])},"clear-night":e=>{const{normalize:n}=e;return n(["clear night"])},cloudy:e=>{const{normalize:n}=e;return n(["cloudy"])},fog:e=>{const{normalize:n}=e;return n(["fog"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["partly cloudy night"])},rain:e=>{const{normalize:n}=e;return n(["rain"])},sleet:e=>{const{normalize:n}=e;return n(["sleet"])},snow:e=>{const{normalize:n}=e;return n(["snow"])},wind:e=>{const{normalize:n}=e;return n(["wind"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humidity"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperature"])},WIND:e=>{const{normalize:n}=e;return n(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSW"])},SW:e=>{const{normalize:n}=e;return n(["SW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["without .gpx file"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["with .gpx file"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["workout"]),n(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["or .zip file containing .gpx files"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},3429:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Sobre esta instancia"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacta con la administración"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee es un gestor de actividades en exterior autohospedado."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["con licencia ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Código fuente"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Datos meteorología:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Cualquier tipo de información adicional que pueda ser útil para tus usuarios. Puedes usar Markdown."])},TEXT:e=>{const{normalize:n}=e;return n(["Información detallada sobre la instancia"])}},ACTION:e=>{const{normalize:n}=e;return n(["Acción"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activar cuenta"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Activa"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administración"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Añadir/Retirar derechos de aministración, eliminar cuenta de usuario."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Aplicación"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Contacto por email con la administración"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Núm. máximo de ficheros en el zip"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Si 0, no hay límite para los registros."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Núm. máximo de usuarios activos"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["sin email de contacto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño máx. de los ficheros subidos (en Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Configuración de la aplicación"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño máx. del fichero zip (en Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Volver a admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["¿Seguro que quieres eliminar la cuenta ",r(t(0)),"? Se borrarán todos los datos y no será reversible."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["¿Seguro que quieres restablecer la contraseña de ",r(t(0)),"?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Email actual"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Eliminar usuario"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["El envío de email está desactivado."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Activar/desactivar deportes."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nuevo email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["No hay texto"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Se ha restablecido la contraseña."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Añade tu propia política de privacidad o déjalo en blanco para usar una por defecto. Puedes usar Markdown."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Actualmente está desactivada la creación de cuentas."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Actualmente está abierta la creación de cuentas."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablecer contraseña"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Activa"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["ya existe el entrenamiento"])},IMAGE:e=>{const{normalize:n}=e;return n(["Imagen"])},LABEL:e=>{const{normalize:n}=e;return n(["Etiqueta"])}},TITLE:e=>{const{normalize:n}=e;return n(["Administrar deportes"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Actualizar la configuración de la aplicación."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Actualizar email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["usuario"]),n(["usuarios"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["estatus de admin"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["data de registro"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["tipo de cuenta"])},USERNAME:e=>{const{normalize:n}=e;return n(["identificador"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["número de entramientos"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Otorgar permiso de admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Retirar permiso de admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["La dirección de email ha sido actualizada."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["Falta el elemento en el archivo .gpx."])},"Network Error":e=>{const{normalize:n}=e;return n(["Error en la red."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Inténtalo de nuevo o contacta con la administración."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Por lo menos uno de los ficheros dentro del archivo zip excede el límite de tamaño, comprueba el archivo."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Ya existe una solicitud de exportación completa."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: debes proporcionar un email válido."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Error al procesar el fichero gpx."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Error en el procesado del gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Error al obtener la configuración."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Error al guardar el entrenamiento."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Error al actualizar la configuración"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Error, inténtalo de nuevo más tarde o contacta con la administración."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Error, no se permiten nuevos registros."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Extensión de fichero no permitida."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["El tamaño del fichero es mayor del permitido."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["El archivo .gpx no es válido."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Credenciales no válidas."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Los datos proporcionados no son válidos."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Token no válido, por favor vuelve a iniciar sesión."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Token no válido, inicia sesión de nuevo."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["El nuevo email tiene que ser diferente al email actual"])},"no file part":e=>{const{normalize:n}=e;return n(["Sin fichero."])},"no selected file":e=>{const{normalize:n}=e;return n(["Sin fichero seleccionado."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["No hay pista () en el archivo .gpx."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Ya existe una solicitud de exportación."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Contraseña: la contraseña y la confirmación no coinciden."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Proporciona un auth token válido."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Firma caducada. Inicia sesión de nuevo."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Lo sentimos, pero el nombre de usuario ya está en uso."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["No existe este deporte."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Cuenta creada correctamente."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["El número de ficheros en el archivo excede el límite."])},"user does not exist":e=>{const{normalize:n}=e;return n(["No existe el usuario."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Debes proporcionar un email válido para el contacto de administración"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["No puedes eliminar tu cuenta, ninguna otra tiene permisos de administración."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["No tienes permiso."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["siguiente"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["anterior"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Reenviar correo de confirmación"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorizar"])},BACK:e=>{const{normalize:n}=e;return n(["Volver"])},CANCEL:e=>{const{normalize:n}=e;return n(["Cancelar"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Eliminar filtros"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Eliminar mi cuenta"])},DISABLE:e=>{const{normalize:n}=e;return n(["Desactivar"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar"])},ENABLE:e=>{const{normalize:n}=e;return n(["Activar"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtro"])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceder"])},NO:e=>{const{normalize:n}=e;return n(["No"])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear cuenta"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Solicitar exportación de datos"])},RESET:e=>{const{normalize:n}=e;return n(["Restablecer"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Enviar"])},YES:e=>{const{normalize:n}=e;return n(["Si"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["acerca de"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmación"])},CONTACT:e=>{const{normalize:n}=e;return n(["contacto"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["día"]),n(["días"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Mostrado"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentación"])},HERE:e=>{const{normalize:n}=e;return n(["aquí"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Oculto"])},HOME:e=>{const{normalize:n}=e;return n(["Inicio"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascenso"])},DESC:e=>{const{normalize:n}=e;return n(["descenso"])},LABEL:e=>{const{normalize:n}=e;return n(["ordenar"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["ordenar por"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["por página"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Tablero"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Este mes"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Parece que hay algún problema con la aplicación. Por favor inténtalo de nuevo más tarde o contacta con la administración."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["No se encuentra la página"])},WORKOUT:e=>{const{normalize:n}=e;return n(["No se encuentra el entrenamiento"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Ha habido un error"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Inténtalo de nuevo o contacta con la administración."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Añadir aplicación OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Clave secreta"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Descripción de la aplicación"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Edición en"])},NAME:e=>{const{normalize:n}=e;return n(["Nombre de la aplicación"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL de redirección"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Ámbito"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de escritura a la aplicación configurada."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a puntos de acceso auth
."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a los puntos de acceso auth
."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a los puntos de acceso users
."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de escritura a los puntos de acceso users
."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a los puntos de acceso workouts
."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de escritura a los puntos de acceso workouts
."])}},URL:e=>{const{normalize:n}=e;return n(["URL de la aplicación"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Aplicaciones OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Aplicación creada correctamente. Asegúrate de que copias la clave secreta, no volverá a ser mostrada."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["¿Estás seguro de que quieres eliminar esta app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La aplicación ",r(t(0))," solicita:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["¿Autorizar a ",r(t(0))," a usar tu cuenta?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copiar al portapapeles"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Eliminar aplicación"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Añadir una aplicación"])},NO_APP:e=>{const{normalize:n}=e;return n(["No se encuentra la aplicación!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["sin aplicaciones"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["sin descripción"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Revocar todas las claves"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["¿Estás seguro de revocar todas las claves?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Todas las claves asociadas han sido revocadas."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['Puedes solicitar en cualquier momento la eliminación de tu cuenta yendo a esta dirección (tras iniciar sesión) y pulsando en el botón "Eliminar mi Cuenta" en los ajustes de la cuenta.'])},TITLE:e=>{const{normalize:n}=e;return n(["Eliminación de la cuenta"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Si decidimos cambiar nuestra política de privacidad, anunciaremos los cambios en esta página.\n\nEste documento está bajo licencia [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptado de la política de privacidad original de [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Cambios en la Política de Privacidad"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Recogemos la siguiente información:\n- Información de la cuenta (nombre de usuario, dirección de correo electrónico y contraseña). También información opcional de tu perfil como podría ser el nombre, apellido, fecha de nacimiento, localización, biografía y la imagen de perfil subida. \n- Ficheros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estos ficheros contienen datos relacionados con tus actividades (coordenadas geográficas, fecha, distancia, duración, velocidades máxima y media, altitud, ritmo cardíaco...). Si non quieres exponer estos datos, bórralos antes de subirlos o bien añade los entrenamientos sin fichero GPX. \n- Datos de entrenamiento (deporte, título, fecha, duranción, distancia, ascenso, descenso, notas). \n- Información técnica (navegador y sistema operativo)."])},TITLE:e=>{const{normalize:n}=e;return n(["¿Qué información recopilamos?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["No vendemos, negociamos o transferimos de otro modo a terceras partes los datos que te identifican personalmente.\n\nEsto no incluye a terceras partes que nos ayudan a gestionar nuestra web y darte servicio, siempre que esas terceras partes mantengan el compromiso de confidencialidad.\n\nPodríamos también liberar esta información si al hacerlo creemos que estamos cumpliendo con la ley, reforzando las políticas de nuestra web o protegiendo nuestros y vuestros derechos, propiedad o seguridad.\n\nCuando autorizas a una aplicación de terceros a usar tu cuenta, dependiendo del ámbito de los permisos concedidos, ésta podría acceder a la información de tu perfil o entrenamientos. Las aplicaciones nunca tienen acceso a tu contraseña."])},TITLE:e=>{const{normalize:n}=e;return n(["¿Mostramos algún tipo de información a terceras partes externas?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Implementamos una variedad de medidas de seguridad para mantener tu información personal segura cuando escribes, envías o accedes a tu información personal."])},TITLE:e=>{const{normalize:n}=e;return n(["¿De qué modo protegemos tu información?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Toda la información que recogemos de ti podría usarse para proporcionar las funciones básicas de **FitTrackee**: \n- Los ficheros GPX se usan para crear los entrenamientos, mostrar rutas en el mapa (con [OpenStreetMap](https://www.openstreetmap.org) y el servidor de imágenes de mapa configurado) y gráficos, crear miniaturas de mapa, calcular records e obtener datos de meteorología (si se configura el servicio). \n- Los entrenamientos e información de perfil no se muestran públicamente. Un usuario registrado sólo puede ver sus propios entrenamientos. \n- La dirección de correo electrónico proporcionada podría utilizarse para enviarte información o para confirmar las modificaciones en tu cuenta."])},TITLE:e=>{const{normalize:n}=e;return n(["¿Para qué utilizamos tus datos?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Si este servidor está en la UE o el AEE: nuestra web y servicios están dirigidos a personas de al menos 16 años de edad. Si no tienes 16 años cumplidos, por requerimiento de la [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation) no uses este sitio web.\n\nSi este servidor está en EEUU de América: nuestra web, productos y servicios están orientados a personas de al menos 13 años de edad. Si no tienes 13 cumplidos, por requerimiento de la [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act) no uses esta web.\n\nLos requerimientos legales pueden ser diferentes si este servidor se encuentra en otros lugares."])},TITLE:e=>{const{normalize:n}=e;return n(["Uso de esta web por menores"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Al utilizar nuestra web, aceptas la política de privacidad de nuestra web."])},TITLE:e=>{const{normalize:n}=e;return n(["Tu consentimiento"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Última actualización"])},TITLE:e=>{const{normalize:n}=e;return n(["política de privacidad"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Deportivo)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Transporte)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Senderismo"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Bicicleta por Montaña"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Bicicleta (Eléctrica) por Montaña"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Montañismo"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Remo"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Correr"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí de travesía"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Raquetas de nieve"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Ruta"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Caminar"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Estadísticas"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mes"])},week:e=>{const{normalize:n}=e;return n(["semana"])},year:e=>{const{normalize:n}=e;return n(["año"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["¿No has recibido instrucciones?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Comprueba el correo. Se ha enviado un nuevo email de confirmación a la dirección proporcionada."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["¿Ya tienes una cuenta?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["¿Seguro que quieres eliminar tu cuenta? Se borrarán todos los datos, la decisión no es reversible."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Contraseña actual"])},EMAIL:e=>{const{normalize:n}=e;return n(["Correo electrónico"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Escribe una dirección válida de correo."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Escribe una contraseña"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Exportar datos"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Descargar archivo"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["creando enlace..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Puedes solicitar un archivo cada 24 horas"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["ha fallado (solicita una nueva exportación)"])},in_progress:e=>{const{normalize:n}=e;return n(["en progreso..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrar por nombre de usuario"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["ocultar contraseña"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Clave secreta no válida, solicita un nuevo restablecimiento de contraseña."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Quiero eliminar mi cuenta"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La política de privacidad ha sido actualizada, ",r(t(0))," antes de continuar."])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceder"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Cerrar sesión"])},LOG_IN:e=>{const{normalize:n}=e;return n(["iniciar sesión"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nueva contraseña"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["No hay usuarios."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Contraseña"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["¿Has olvidado la contraseña?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Se requieren 8 caracteres como mínimo."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Restablecer la contraseña"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Comprueba tu email. Si la dirección está en nuestra base de datos recibirás un email con un enlace para restablecer tu contraseña."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["media"])},GOOD:e=>{const{normalize:n}=e;return n(["buena"])},LABEL:e=>{const{normalize:n}=e;return n(["fortaleza de la contraseña"])},STRONG:e=>{const{normalize:n}=e;return n(["fuerte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Usa alguna mayúscula, pero no todas."])},anotherWord:e=>{const{normalize:n}=e;return n(["Añade más palabras poco comunes."])},associatedYears:e=>{const{normalize:n}=e;return n(["Evita los años asociados a ti."])},capitalization:e=>{const{normalize:n}=e;return n(["Usa alguna mayúscula más que en la primera."])},dates:e=>{const{normalize:n}=e;return n(["Evita fechas y años que se puedan asociar a ti."])},l33t:e=>{const{normalize:n}=e;return n(["Evita substituciones evidentes de letras como ","@"," por la a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Usa patrones de teclado más largos y cambia de dirección de escritura varias veces."])},noNeed:e=>{const{normalize:n}=e;return n(["Puedes crear contraseñas fuertes sin usar símbolos, números o letras mayúsculas."])},pwned:e=>{const{normalize:n}=e;return n(["Si utilizas esta contraseña en otros lugares, deberías cambiarla."])},recentYears:e=>{const{normalize:n}=e;return n(["Evita años recientes."])},repeated:e=>{const{normalize:n}=e;return n(["Evita palabras y caracteres repetidos."])},reverseWords:e=>{const{normalize:n}=e;return n(["Evita palabras del revés o palabras comunes."])},sequences:e=>{const{normalize:n}=e;return n(["Evita secuencias comunes de caracteres."])},useWords:e=>{const{normalize:n}=e;return n(["Usa varias palabras, pero evita frases comunes."])}},WEAK:e=>{const{normalize:n}=e;return n(["débil"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Se ha actualizado tu contraseña. Pulsa ",r(t(0))," para iniciar sesión."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Edición de la cuenta"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Datos de ascensión (récords, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Volver al perfil"])},BIO:e=>{const{normalize:n}=e;return n(["Biografía"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Fecha de nacimiento"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Formato de la fecha"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar perfil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias de los deportes"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["La elevación del gráfico empieza en"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Altitud mínima"])},ZERO:e=>{const{normalize:n}=e;return n(["Cero"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Por favor, ",r(t(0))," para cambiar su dirección de correo electrónico de nuevo o póngase en contacto con el administrador"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Primer día de la semana"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Nombre"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Apellido"])},LOCATION:e=>{const{normalize:n}=e;return n(["Localización"])},MONDAY:e=>{const{normalize:n}=e;return n(["Lunes"])},PICTURE:e=>{const{normalize:n}=e;return n(["Fotografía"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Editar la foto"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Eliminar la foto"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Actualizar la foto"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Política de privacidad"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Editar perfil"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Fecha de registro"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["acción"])},COLOR:e=>{const{normalize:n}=e;return n(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["desactivada por admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["activa"])},LABEL:e=>{const{normalize:n}=e;return n(["etiqueta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["límite para detectar detención"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Editar preferencias de los deportes"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Se ha actualizado correctamente tu cuenta. Comprueba tu email para confirmar tu nueva dirección de correo electrónico."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Se ha creado correctamente tu cuenta."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Se ha enviado un enlace en un email a tu correo electrónico para activar la cuenta."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Tu cuenta ha sido actualizada correctamente."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Domingo"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["cuenta"])},APPS:e=>{const{normalize:n}=e;return n(["aplicaciones"])},PICTURE:e=>{const{normalize:n}=e;return n(["fotografía"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferencias"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["política de privacidad"])},PROFILE:e=>{const{normalize:n}=e;return n(["perfil"])},SPORTS:e=>{const{normalize:n}=e;return n(["deportes"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Zona horaria"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Sistema Imperial (ft, mi, mph, ºF)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unidades de distancia"])},METRIC:e=>{const{normalize:n}=e;return n(["Sistema Métrico (m, km, m/s, ºC)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrado"])},LABEL:e=>{const{normalize:n}=e;return n(["Estrategia de velocidad máxima"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["En bruto"])},HELP:e=>{const{normalize:n}=e;return n(["Si se filtra, excluye los valores extremos (que pueden ser errores del GPS) al calcular la velocidad máxima."])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["He leído y aceptado la ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear cuenta"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Lo sentimos, no se admiten nuevas cuentas."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Reenviar email de confirmación de cuenta"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablecer contraseña"])},REVIEW:e=>{const{normalize:n}=e;return n(["revisar"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["mostrar contraseña"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Esta cuenta de usuario no está activa."])},USERNAME:e=>{const{normalize:n}=e;return n(["Nombre de usuario"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['Se requieren entre 3 y 30 caracteres, sólo se permiten alfanuméricos y guión bajo "_".'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["foto del usuario"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Has aceptado la ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Añadir entrenamiento"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["análisis"])},ASCENT:e=>{const{normalize:n}=e;return n(["ascenso"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["velocidad media"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["volver al entrenamiento"])},DATE:e=>{const{normalize:n}=e;return n(["fecha"])},DESCENT:e=>{const{normalize:n}=e;return n(["descenso"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["mostrar filtros"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distancia"])},DURATION:e=>{const{normalize:n}=e;return n(["tiempo"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Editar el entranamiento"])},ELEVATION:e=>{const{normalize:n}=e;return n(["altitud"])},END:e=>{const{normalize:n}=e;return n(["fin"])},FROM:e=>{const{normalize:n}=e;return n(["desde"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["fichero .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["ocultar filtros"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Debes proporcionar ambos valores de altura y tienen que ser igual o superior a 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["La distancia debe ser mayor de 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["La duración debe ser mayor que 0 segundos"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Últimos entrenamientos"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Cargar más entrenamientos"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitud máxima"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["máx. de ficheros"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["tamaño máximo"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["velocidad máxima"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitud mínima"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Sin tramo siguiente"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Siguiente entrenamiento"])},NOTES:e=>{const{normalize:n}=e;return n(["notas"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["datos desde gpx, sin comprobar"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Sin fichero proporcionado"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["no hay carpeta dentro"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Sin mapa"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["No hay tramo siguiente"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["No hay entrenamiento siguiente"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Sin notas"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["No hay tramo anterior"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["No hay entrenamiento anterior"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Sin registros."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Sin entrenamientos."])},PAUSES:e=>{const{normalize:n}=e;return n(["pausas"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Tramo anterior"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Entrenamiento anterior"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["registro"]),n(["registros"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vel. media"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Distancia mayor"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Ascenso mayor"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Duración más larga"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Velocidad máxima"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["caracteres restantes"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["tramo"]),n(["tramos"])])},SPEED:e=>{const{normalize:n}=e;return n(["velocidad"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["deporte"]),n(["deportes"])])},START:e=>{const{normalize:n}=e;return n(["inicio"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Inicio y final"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["poner la altitud de inicio en el cero del gráfico"])},TITLE:e=>{const{normalize:n}=e;return n(["título"])},TO:e=>{const{normalize:n}=e;return n(["para"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["duración total"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Una subida!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["día despejado"])},"clear-night":e=>{const{normalize:n}=e;return n(["noche despejada"])},cloudy:e=>{const{normalize:n}=e;return n(["nublado"])},fog:e=>{const{normalize:n}=e;return n(["niebla"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["día parcialmente nublado"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["noche parcialmente nublada"])},rain:e=>{const{normalize:n}=e;return n(["lluvia"])},sleet:e=>{const{normalize:n}=e;return n(["granizo"])},snow:e=>{const{normalize:n}=e;return n(["nieve"])},wind:e=>{const{normalize:n}=e;return n(["viento"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humedad"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatura"])},WIND:e=>{const{normalize:n}=e;return n(["viento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNO"])},NW:e=>{const{normalize:n}=e;return n(["NO"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSO"])},SW:e=>{const{normalize:n}=e;return n(["SO"])},W:e=>{const{normalize:n}=e;return n(["O"])},WNW:e=>{const{normalize:n}=e;return n(["ONO"])},WSW:e=>{const{normalize:n}=e;return n(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["sin fichero .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["con fichero .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["entrenamiento"]),n(["entrenamientos"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["fecha del entrenamiento"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["¿Seguro que quieres eliminar este entrenamiento?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["fichero .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["o fichero .zip que contiene ficheros .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},5479:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["A propos de cette instance"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["sous licence ",r(t(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Code source (en)"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Source des données météo :"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Toute information supplémentaire qui peut être utile à vos utilisateurs. La syntaxe Markdown peut être utilisée."])},TEXT:e=>{const{normalize:n}=e;return n(["Information détaillée de l'instance"])}},ACTION:e=>{const{normalize:n}=e;return n(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activer le compte"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Actif"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Email de l'administrateur pour contact "])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Nombre max. de fichiers dans une archive zip "])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Si égal à 0, pas limite d'inscription"])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Nombre maximum d'utilisateurs actifs "])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:n}=e;return n(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Taille max. des archives zip (en Mo) "])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",r(t(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",r(t(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nouvelle adresse email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["pas de texte saisi"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Le mot de passe a été réinitialisé."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Ajouter votre propre politique de confidentialité ou laisser vider pour utiliser la politique par défaut. La syntaxe Markdown peut être utilisée."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["des séances existent"])},IMAGE:e=>{const{normalize:n}=e;return n(["Image"])},LABEL:e=>{const{normalize:n}=e;return n(["Label"])}},TITLE:e=>{const{normalize:n}=e;return n(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Configurer l'application."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Changer l'email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["utilisateur"]),n(["utilisateurs"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["status administrateur"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["statut du compte"])},USERNAME:e=>{const{normalize:n}=e;return n(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["nombre de séances"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Retirer les droits d'admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["L'adresse email a été mise à jour."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["Elément manquant dans le fichier .gpx."])},"Network Error":e=>{const{normalize:n}=e;return n(["Erreur réseau."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Une demande d'export terminée existe déjà."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Erreur lors de l'analyse du fichier."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Erreur lors du traitement du fichier gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Erreur lors de la récupération de la configuration."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Erreur lors de l'enregistrement de la séance."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["La taille du fichier est supérieure à la limite autorisée."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["Le fichier .gpx est invalide."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Jeton de connexion, merci de vous reconnecter."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"no file part":e=>{const{normalize:n}=e;return n(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:n}=e;return n(["Pas de fichier sélectionné."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Pas de trace () dans le fichier .gpx"])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Une demande d'exportation de données existe déjà."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Merci de fournir un jeton de connexion valide."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Ce sport n'existe pas."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Inscription validée."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Le nombre de fichiers de l'archive dépasse la limite."])},"user does not exist":e=>{const{normalize:n}=e;return n(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["suivant"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["précédent"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Renvoyer le message de confirmation"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autoriser"])},BACK:e=>{const{normalize:n}=e;return n(["Retour"])},CANCEL:e=>{const{normalize:n}=e;return n(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:n}=e;return n(["Désactiver"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifier"])},ENABLE:e=>{const{normalize:n}=e;return n(["Activer"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtrer"])},LOGIN:e=>{const{normalize:n}=e;return n(["Se connecter"])},NO:e=>{const{normalize:n}=e;return n(["Non"])},REGISTER:e=>{const{normalize:n}=e;return n(["S'inscrire"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Demander un export de données"])},RESET:e=>{const{normalize:n}=e;return n(["Réinit."])},SUBMIT:e=>{const{normalize:n}=e;return n(["Valider"])},YES:e=>{const{normalize:n}=e;return n(["Oui"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["à propos"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmation"])},CONTACT:e=>{const{normalize:n}=e;return n(["contact"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["jour"]),n(["jours"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Affiché"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentation (en)"])},HERE:e=>{const{normalize:n}=e;return n(["ici"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Masqué"])},HOME:e=>{const{normalize:n}=e;return n(["Accueil"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascendant"])},DESC:e=>{const{normalize:n}=e;return n(["descendant"])},LABEL:e=>{const{normalize:n}=e;return n(["tri"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["trier par "])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["par page"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Ce mois-ci"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["L'application semble rencontrer quelques problèmes. Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Page introuvable"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Une erreur s'est produite"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erreur. Veuillez réessayer ou contacter l'administrateur."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Secret"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Créée le"])},NAME:e=>{const{normalize:n}=e;return n(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en lecture aux routes auth
."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture aux routes auth
."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en lecture aux routes users
."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture aux routes users
."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en lecture aux routes workouts
."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture aux routes workouts
."])}},URL:e=>{const{normalize:n}=e;return n(["URL de l'application"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Applications OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["L'application ",r(t(0))," demande les accès suivants :"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Autoriser ",r(t(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Ajouter une application"])},NO_APP:e=>{const{normalize:n}=e;return n(["Application introuvable !"])},NO_APPS:e=>{const{normalize:n}=e;return n(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Tous les jetons associés existants ont été révoqués."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['Vous pouvez demander à tout moment la suppression de votre compte en vous rendant à cette adresse (après vous être connecté à votre compte), puis en cliquant sur le bouton sous "Supprimer mon compte" dans l\'espace de mise à jour de votre compte.'])},TITLE:e=>{const{normalize:n}=e;return n(["Suppression du compte"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Si nous décidons de changer notre politique de confidentialité, nous afficherons ces modifications sur cette page.\n\nCe document est sous licence [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptée de la politique de confidentialité de [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Modifications de notre politique de confidentialité"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Les informations suivantes sont collectées :\n- Informations liées au compte (nom d'utilisateur, courriel et mot de passe). Vous pouvez également saisir les informations du profil tel que le prénom, le nom de famille, la date de naissance, la localisation, une biographie et envoyer une image de profil.\n- Fichiers [GPX](https://fr.wikipedia.org/wiki/GPX_(format_de_fichier). Ces fichiers contiennent les données liées à vos activités (coordonnées géographiques, date, distance, durée, vitesses maximale et moyenne, altitude, rythme cardiaque…). Si vous ne souhaitez pas exposer certaines données, nettoyer les fichiers avant de les envoyer ou ajouter des activités sans fichier GPX.\n- Données d'activités (sport, titre, date, durée, distance, dénivelé positif et négatif, notes).\n- Données techniques (nom du navigateur et du système d'exploitation)."])},TITLE:e=>{const{normalize:n}=e;return n(["Quelles sont les informations que nous recueillons ?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Nous ne vendons pas, ni échangeons ou même transférons vos renseignements personnelles à des tiers.\n\nCeci n’inclut pas les tiers de confiance qui nous aident à exploiter notre site ou vous servir, tant que ces parties conviennent à garder ces informations confidentielles.\n\nNous pouvons également divulguer vos informations lorsque nous croyons nécessaire de se conformer à la loi, appliquer nos politiques de site, ou la nôtre ou d’autres droits, la propriété ou la sécurité.\n\nSi vous autorisez une application tierce à utiliser votre compte, selon le périmètre des permissions accordées, elle pourra avoir accès à vos informations de profil ou vos activités. Les applications tierces ne peuvent jamais accéder à votre mot de passe."])},TITLE:e=>{const{normalize:n}=e;return n(["Divulguons-nous des informations à des tiers ?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Nous mettons en œuvre une variété de mesures de sécurité pour maintenir la sécurité de vos informations personnelles lorsque vous saisissez, soumettez ou d’accédez à vos renseignements personnels."])},TITLE:e=>{const{normalize:n}=e;return n(["Comment protégeons-nous vos informations ?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Toutes les informations que nous recueillons auprès de vous peuvent être utilisées afin de fournir les fonctionnalités de **FitTrackee** :\n- Les fichiers GPX sont utilisés pour créer des activités, afficher des traces sur une carte (avec [OpenStreetMap](https://www.openstreetmap.org) et le serveur de tuiles configuré) et des graphiques, générer des vignettes de cartes, calculer des records et obtenir des données météo (si un fournisseur de données météorologiques est configuré).\n- Les informations du profil et les activités ne sont pas affichées publiquement. Un utilisateur enregistré ne peut voir que ses propres activités.\n- Le courriel que vous avez fourni peut être utilisé pour vous envoyer des informations ou confirmer des actions de modification de votre compte."])},TITLE:e=>{const{normalize:n}=e;return n(["Comment utilisons-nous vos informations ?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Si ce serveur est localisé dans l'Union Européenne (UE) ou l'Espace Economique Européen (EEA) : notre site et nos services sont tous destinés aux personnes âgées d'au moins 16 ans. Si vous avez moins de 16 ans, conformément aux exigences du [RGPD](https://fr.wikipedia.org/wiki/R%C3%A8glement_g%C3%A9n%C3%A9ral_sur_la_protection_des_donn%C3%A9es) (Règlement général sur la protection des données), n'utilisez pas ce site.\n\nSi ce serveur se trouve aux États-Unis : notre site et nos services sont tous destinés à des personnes âgées d'au moins 13 ans. Si vous avez moins de 13 ans, conformément aux exigences de la loi [COPPA](https://fr.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), n'utilisez pas ce site.\n\nLes exigences légales peuvent être différentes si ce serveur se trouve dans une autre juridiction."])},TITLE:e=>{const{normalize:n}=e;return n(["Protection des mineurs"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["En utilisant notre site, vous acceptez la politique de confidentialité de notre site web."])},TITLE:e=>{const{normalize:n}=e;return n(["Votre consentement"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Dernière mise à jour"])},TITLE:e=>{const{normalize:n}=e;return n(["politique de confidentialité"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Vélo (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Vélo (Virtuel)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["VTT (Électrique)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Alpinisme"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Aviron"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Marche"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistiques"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mois"])},week:e=>{const{normalize:n}=e;return n(["semaine"])},year:e=>{const{normalize:n}=e;return n(["année"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacées."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:n}=e;return n(["Courriel"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Saisissez un mot de passe"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Export des données"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Télécharger l'archive"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["lien en cours de génération..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Vous pouvez demander un export par 24h"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["en erreur (veuillez demander une nouvelle archive)"])},in_progress:e=>{const{normalize:n}=e;return n(["en cours..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Je souhaite supprimer mon compte"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Langue"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La politique de confidentialité a été mise à jour. Veuillez l'",r(t(0))," avant de poursuivre."])},LOGIN:e=>{const{normalize:n}=e;return n(["Se connecter"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Se déconnecter"])},LOG_IN:e=>{const{normalize:n}=e;return n(["connecter"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Mot de passe oublié ?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["8 caractères minimum."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["moyenne"])},GOOD:e=>{const{normalize:n}=e;return n(["bonne"])},LABEL:e=>{const{normalize:n}=e;return n(["robustesse du mot de passe"])},STRONG:e=>{const{normalize:n}=e;return n(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Mettez quelques lettres en majuscules, mais pas toutes."])},anotherWord:e=>{const{normalize:n}=e;return n(["Ajoutez des mots moins courants."])},associatedYears:e=>{const{normalize:n}=e;return n(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},capitalization:e=>{const{normalize:n}=e;return n(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:n}=e;return n(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},l33t:e=>{const{normalize:n}=e;return n(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},noNeed:e=>{const{normalize:n}=e;return n(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:n}=e;return n(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])},recentYears:e=>{const{normalize:n}=e;return n(["Évitez les dernières années."])},repeated:e=>{const{normalize:n}=e;return n(["Évitez les mots et les caractères répétés."])},reverseWords:e=>{const{normalize:n}=e;return n(["Évitez les orthographes inversées des mots courants."])},sequences:e=>{const{normalize:n}=e;return n(["Évitez les séquences de caractères courantes."])},useWords:e=>{const{normalize:n}=e;return n(["Utilisez plusieurs mots, mais évitez les phrases courantes."])}},WEAK:e=>{const{normalize:n}=e;return n(["faible"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Votre mot de passe a été mis à jour. Cliquez ",r(t(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour du compte"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Données relatives au dénivelé positif (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Revenir au profil"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Date de naissance"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Format d'affichage de la date"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifier les préférences des sports"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Début de l'axe pour le graphe affichant l'altitude"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Altitude minimale"])},ZERO:e=>{const{normalize:n}=e;return n(["0"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Veuillez vous ",r(t(0))," pour changer de nouveau votre adresse électronique ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Prénom"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Langue"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Nom"])},LOCATION:e=>{const{normalize:n}=e;return n(["Lieu"])},MONDAY:e=>{const{normalize:n}=e;return n(["Lundi"])},PICTURE:e=>{const{normalize:n}=e;return n(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour de l'image de profil"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Supprimer"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Mettre à jour l'image"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour des préférences"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Politique de confidentialité"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Date d'inscription"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["action"])},COLOR:e=>{const{normalize:n}=e;return n(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["actif"])},LABEL:e=>{const{normalize:n}=e;return n(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["seuil de vitesse arrêtée"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour des préférences des sports"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Votre compte a été modifié avec succès."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["compte"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["image"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["préférences"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["politique de confidentialité"])},PROFILE:e=>{const{normalize:n}=e;return n(["profil"])},SPORTS:e=>{const{normalize:n}=e;return n(["sports"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Fuseau horaire"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Système impérial (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unités pour les distances"])},METRIC:e=>{const{normalize:n}=e;return n(["Système métrique (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtré"])},HELP:e=>{const{normalize:n}=e;return n(["Si filtré, les valeurs extrêmes (qui peuvent être des erreurs GPS) sont exclues lors du calcul de la vitesse maximale."])},LABEL:e=>{const{normalize:n}=e;return n(["Calcul de la vitesse maximale"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Brut"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["J'ai lu et accepte la ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Envoyer à nouveau le courriel de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Réinitialiser votre mot de passe"])},REVIEW:e=>{const{normalize:n}=e;return n(["accepter"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Le compte de cet utilisateur est inactif."])},USERNAME:e=>{const{normalize:n}=e;return n(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(["3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés."])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["photo de l'utilisateur"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Vous avez accepté la ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analyse"])},ASCENT:e=>{const{normalize:n}=e;return n(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["revenir à la séance"])},DATE:e=>{const{normalize:n}=e;return n(["date"])},DESCENT:e=>{const{normalize:n}=e;return n(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["afficher les filtres"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distance"])},DURATION:e=>{const{normalize:n}=e;return n(["durée"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Modifier la séance"])},ELEVATION:e=>{const{normalize:n}=e;return n(["altitude"])},END:e=>{const{normalize:n}=e;return n(["fin"])},FROM:e=>{const{normalize:n}=e;return n(["à partir de"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["masquer les filtres"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["La distance doit être supérieure à 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["La durée doit être supérieure à 0 secondes"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitude max"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["taille max. "])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Séance suivante"])},NOTES:e=>{const{normalize:n}=e;return n(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["pas de répertoire"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Pas de séances."])},PAUSES:e=>{const{normalize:n}=e;return n(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Séance précédente"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["records"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Distance la + longue"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Dénivelé positif le + élevé"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segments"])])},SPEED:e=>{const{normalize:n}=e;return n(["vitesse"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sports"])])},START:e=>{const{normalize:n}=e;return n(["début"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:n}=e;return n(["titre"])},TO:e=>{const{normalize:n}=e;return n(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Ajoutez votre première séance !"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["ensoleillé"])},"clear-night":e=>{const{normalize:n}=e;return n(["nuit claire"])},cloudy:e=>{const{normalize:n}=e;return n(["nuageux"])},fog:e=>{const{normalize:n}=e;return n(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:n}=e;return n(["pluie"])},sleet:e=>{const{normalize:n}=e;return n(["neige fondue"])},snow:e=>{const{normalize:n}=e;return n(["neige"])},wind:e=>{const{normalize:n}=e;return n(["venteux"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humidité"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["température"])},WIND:e=>{const{normalize:n}=e;return n(["vent"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNO"])},NW:e=>{const{normalize:n}=e;return n(["NO"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSO"])},SW:e=>{const{normalize:n}=e;return n(["SO"])},W:e=>{const{normalize:n}=e;return n(["O"])},WNW:e=>{const{normalize:n}=e;return n(["ONO"])},WSW:e=>{const{normalize:n}=e;return n(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["sans fichier .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["avec un fichier .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["séance"]),n(["séances"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["ou une archive .zip contenant des fichiers .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},6338:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Acerca desta instancia"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacta coa administración"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee é un xestor autohospedado de actividades en exterior."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["con licenza ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Código fonte"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Datos meteoroloxía:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Calquera información adicional que puidese ser útil para as túas usuarias. Podes usar Markdown."])},TEXT:e=>{const{normalize:n}=e;return n(["Información detallada sobre a instancia"])}},ACTION:e=>{const{normalize:n}=e;return n(["Acción"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activar conta"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Activa"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administración"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Engadir/Eliminar permiso de admin, eliminar conta de usuarias."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Aplicación"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Email de contacto da administración"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Num. máximo ficheiros arquivo zip"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Se 0, non hai límite de rexistros."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Número máx. de usuarias activas"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["sen correo de contacto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño Máx. dos ficheiros subidos (en MB)"])},TITLE:e=>{const{normalize:n}=e;return n(["Configuración da aplicación"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño Máx. do arquivo zip (en MB)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Volver a admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Tes a certeza de querer eliminar a conta ",r(t(0)),"? Borraranse todos os datos, non hai volta atrás."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Tes certeza de querer restablecer o contrasinal de ",r(t(0)),"?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Email actual"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Eliminar usuaria"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["O envío de correos está desactivado."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Activar/desactivar deportes."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Novo email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Non escribiches texto"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Restableceuse o contrasinal."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Engade a túa propia política de privacidade ou déixaa baleira para usar unha por defecto. Podes usar Markdown."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Actualmente non se poden crear máis contas."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Actualmente pódense crear novas contas."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablecer contrasinal"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Activo"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["xa existe o adestramento"])},IMAGE:e=>{const{normalize:n}=e;return n(["Imaxe"])},LABEL:e=>{const{normalize:n}=e;return n(["Etiqueta"])}},TITLE:e=>{const{normalize:n}=e;return n(["Administrar deportes"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Actualizar configuración da aplicación."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Actualizar email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["usuaria"]),n(["usuarias"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["rol de admin"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["data de rexistro"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["estado da conta"])},USERNAME:e=>{const{normalize:n}=e;return n(["identificador"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["número adestramentos"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Conceder permisos admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Retirar permisos admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Actualizouse o enderezo de email."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["falta o elemento no ficheiro .gpx."])},"Network Error":e=>{const{normalize:n}=e;return n(["Erro na rede."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erro. Inténtao outra vez ou contacta coa administración."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Polo menos un ficheiro no arquivo .zip excede o tamaño máximo, comproba o arquivo."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Xa existe unha solicitude de exportación completa."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: debes escribir un correo electrónico válido."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Erro ao procesar o ficheiro gpx."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Erro no procesado gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Erro ao obter a configuración."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Erro ao gardar o adestramento."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Erro ao actualizar a configuración"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Erro, inténtao outra vez ou contacta coa administración."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Erro, non se admiten novas usuarias."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Non está permitida a extensión do ficheiro."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["O tamaño do ficheiro supera o tamaño permitido."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["O ficheiro .gpx non é válido."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Credenciais incorrectas."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Os datos proporcionados non son válidos."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Token non válido, accede outra vez."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Token non válido, accede outra vez."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["O novo email ten que ser diferente ao actual"])},"no file part":e=>{const{normalize:n}=e;return n(["Sen ficheiro proporcionado."])},"no selected file":e=>{const{normalize:n}=e;return n(["Sen ficheiro seleccionado."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Non hai ruta () no ficheiro .gpx."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Xa existe unha solicitude de exportación de datos."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Contrasinal: o contrasinal e a súa confirmación non concordan."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Proporciona unha chave secreta válida."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Caducou a sinatura. Accede outra vez."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Lamentámolo, o nome de usuaria xa está en uso."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Non existe o deporte."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Conta creada correctamente."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["O número de ficheiros no arquivo supera o límite."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Non existe a usuaria."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Hai que proporcionar un correo electrónico válido para contacto de administración"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Non podes eliminar a túa conta, non hai outra usuaria con permisos de administración."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Non tes permisos."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["seguinte"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["anterior"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Volver a enviar un correo de confirmación"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorizar"])},BACK:e=>{const{normalize:n}=e;return n(["Volver"])},CANCEL:e=>{const{normalize:n}=e;return n(["Cancelar"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Limpar filtros"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Eliminar a miña conta"])},DISABLE:e=>{const{normalize:n}=e;return n(["Desactivar"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar"])},ENABLE:e=>{const{normalize:n}=e;return n(["Activar"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtro"])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceder"])},NO:e=>{const{normalize:n}=e;return n(["Non"])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear conta"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Solicitar exportación dos datos"])},RESET:e=>{const{normalize:n}=e;return n(["Restablecer"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Enviar"])},YES:e=>{const{normalize:n}=e;return n(["Si"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["acerca de"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmación"])},CONTACT:e=>{const{normalize:n}=e;return n(["contacto"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["día"]),n(["días"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Mostrado"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentación"])},HERE:e=>{const{normalize:n}=e;return n(["aquí"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Agochado"])},HOME:e=>{const{normalize:n}=e;return n(["Inicio"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascenso"])},DESC:e=>{const{normalize:n}=e;return n(["descenso"])},LABEL:e=>{const{normalize:n}=e;return n(["orde"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["ordenar por"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["por páxina"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Taboleiro"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Este mes"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["A aplicación atopou algún problema. Inténtao máis tarde ou contacta coa administración."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Non se atopa a páxina"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Non se atopa o adestramento"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Algo fallou"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erro. Inténtao outra vez ou contacta coa administración."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Engadir nova aplicación OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Chave secreta"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Descrición da aplicación"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Edición en"])},NAME:e=>{const{normalize:n}=e;return n(["Noma da aplicación"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL de redirección"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Ámbitos"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso a escritura na configuración da aplicación."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de lectura aos puntos de acceso auth
."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de escritura aos puntos de acceso auth
."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de lectura aos puntos de acceso users
."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de escritura aos puntos de acceso users
."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura aos puntos de acceso workouts
."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permisos de escritura aos puntos de acceso workouts
."])}},URL:e=>{const{normalize:n}=e;return n(["URL da aplicación"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Aplicacións OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Creouse correctamente a aplicación. Pon coidado en gardar agora a chave secreta, non se volverá a mostrar."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Tes certeza de querer eliminar esta app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["A aplicación ",r(t(0))," solicita:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Autorizar a ",r(t(0))," a que use a túa conta?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copiar ao portapapeis"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Eliminar aplicación"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Engadir unha aplicación"])},NO_APP:e=>{const{normalize:n}=e;return n(["Non se atopa a aplicación!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["sen aplicacións"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["sen descrición"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Revogar todas as chaves"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Tes a certeza de querer eliminar todas as chaves de acceso?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Foron revogadas todas as chaves de acceso asociadas."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['Podes solicitar en todo momento a eliminación da túa conta indo a este enderezo (con sesión iniciada) e premendo no botón "Eliminar a miña conta" nos axustes da túa conta.'])},TITLE:e=>{const{normalize:n}=e;return n(["Eliminación da conta"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Se decidimos cambiar a nosa política de privacidade, publicaremos os cambios nesta páxina.\n\nEste documento está baixo licenza [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptado do orixinal da política de privacidade de [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Cambios na nosa Política de Privacidade"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Recollemos a seguinte información:\n- Información da conta (identificador, enderezo de email e contrasinal). Poderías engadir información adicional ao perfil como o nome, apelido, data de nacemento, localización, biografía e subir unha foto de perfil.\n- Ficheiros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes ficheiros conteñen datos relacionados coas túas actividades (coordenadas xeográficas, data, distancia, duración, velocidades máxima e media, altitude, pulso cardíaco...). Se non queres mostrar algún dos datos, elimínaos antes de subir ou engadir adestramentos con ficheiros GPX.\n- Datos do adestramento (deporte, título, data, duración, distancia, ascenso, descenso, notas).\n- Información técnica (nome do navegador e sistema operativo)."])},TITLE:e=>{const{normalize:n}=e;return n(["Que información recollemos?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Non vendemos, comerciamos ou transferimos doutro xeito a terceiras partes externas ningunha información que te identifique persoalmente.\n\nIsto non inclúe a terceiras partes de confianza que non axudan a xestionar e proporcionarche o noso servizo, mentras esas terceiras partes acepten manter confidencial esta información.\n\nPoderiamos liberar esta información sempre que ao facelo sexa acorde co cumprimento da ley, reforce as nosas políticas da web, ou protexa os nosos dereitos e seguridade ou os de outras persoas.\n\nCando autorizas a terceiras partes a usar a túa conta, dependendo dos permisos concedidos, podería acceder á túa información de perfil ou adestramentos. As aplicacións nunca teñen acceso ao teu contrasinal."])},TITLE:e=>{const{normalize:n}=e;return n(["Mostramos algún tipo de información a terceiras partes externas?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Tomamos varias medidas de seguridade para gardar a túa información persoal cando inicias sesión, envías ou accedes á túa información persoal."])},TITLE:e=>{const{normalize:n}=e;return n(["Como protexemos a túa información?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Toda a información que recollemos de ti pode ser usada para proporcionar o servizo básico de **FitTrackee**:\n- Os ficheiros GPX úsanse para crear adestramentos, mostrar rutas nun mapa (con OpenStreetMap](https://www.openstreetmap.org) e o servidor de teselas configurado) e gráficos, crear miniaturas do mapa, calcular records e obter datos meteorolóxicos (se está así establecido).\n- A información de perfil e adestramentos non se mostran publicamente. Unha usuaria rexistrada só pode ver os seus propios adestramentos.\n- O enderezo de correo electrónico que nos proporcionas podería ser usado para mandarche información ou confirmar as modificacións na conta."])},TITLE:e=>{const{normalize:n}=e;return n(["Para que usamos a túa información?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Se este servidor está na UE ou no EEA: a nosa web e servizos están dirixidos a persoas a partir dos 16 anos. Non uses esta web se non tes 16 anos, por requerimento da [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation).\n\nSe este servidor está en EEUU de América: A nosa web, produtos e servizos están dirixidos a persoas a partir dos 13 anos. Se non tes 13 anos, por requerimento da [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), non uses esta web.\n\nOs requerimentos legais poderían ser diferentes se este servidor está baixo outra xurisdición."])},TITLE:e=>{const{normalize:n}=e;return n(["Uso da web por menores"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Ao usar esta web, aceptas a política de privacidade desta web."])},TITLE:e=>{const{normalize:n}=e;return n(["O teu consentimento"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Última actualización"])},TITLE:e=>{const{normalize:n}=e;return n(["política de privacidade"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Deportivo)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Transporte)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Sendeirismo"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo por Montaña"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo por Montaña (Eléctrica)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Montañismo"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Remo"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Correr"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí (de travesía)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Raquetas de neve"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Camiñar"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Estatísticas"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mes"])},week:e=>{const{normalize:n}=e;return n(["semana"])},year:e=>{const{normalize:n}=e;return n(["ano"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Non recibiches instrucións?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Comproba o correo. Enviouse un correo de confirmación ao enderezo proporcionado."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Xa tes unha conta?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Tes a certeza de querer eliminar a conta? Todos os datos serán borrados, e non poderás restablecelos."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Contrasinal actual"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Escribe un enderezo válido."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Escribe un contrasinal"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Exportar datos"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Descargar arquivo"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["creando ligazón..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Podes solicitar un arquivo cada 24 horas"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["fallou (solicita outra exportación)"])},in_progress:e=>{const{normalize:n}=e;return n(["en progreso..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrar por identificador"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["agochar contrasinal"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Token non válido, solicita un novo restablecemento de contrasinal."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Quero eliminar a miña conta"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Actualizouse a política de privacidade, podes ",r(t(0))," antes de continuar."])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceso"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Pechar sesión"])},LOG_IN:e=>{const{normalize:n}=e;return n(["acceder"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Novo contrasinal"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Non hai usuarias."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Contrasinal"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Esqueciches o contrasinal?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Require 8 caracteres como mínimo."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Restablecer contrasinal"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Comproba o correo electrónico. Se o enderezo está na base de datos recibirás un correo cunha ligazón de restablecemento."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["media"])},GOOD:e=>{const{normalize:n}=e;return n(["boa"])},LABEL:e=>{const{normalize:n}=e;return n(["forza do contrasinal"])},STRONG:e=>{const{normalize:n}=e;return n(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Inclúe algunha letra maiúscula, non todas."])},anotherWord:e=>{const{normalize:n}=e;return n(["Engade máis palabras pouco comúns."])},associatedYears:e=>{const{normalize:n}=e;return n(["Evita os anos que teñan relación contigo."])},capitalization:e=>{const{normalize:n}=e;return n(["Usa máis maiúsculas que só na primeira letra."])},dates:e=>{const{normalize:n}=e;return n(["Evita datas e anos que teñan relación contigo."])},l33t:e=>{const{normalize:n}=e;return n(["Evita substitucións de letras que sexan evidentes como ","@"," polo a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Usa patróns longos no teclado e cambia de dirección de escritura varias veces."])},noNeed:e=>{const{normalize:n}=e;return n(["Podes crear contrasinais fortes sen usar símbolos, números ou letras maiúsculas."])},pwned:e=>{const{normalize:n}=e;return n(["Se usas este contrasinal noutros lugares entón deberías cambialo."])},recentYears:e=>{const{normalize:n}=e;return n(["Evita anos recentes."])},repeated:e=>{const{normalize:n}=e;return n(["Evita palabras e caracteres repetidos."])},reverseWords:e=>{const{normalize:n}=e;return n(["Evita palabras comúns escritas ao revés."])},sequences:e=>{const{normalize:n}=e;return n(["Evita secuencias comúns de caracteres."])},useWords:e=>{const{normalize:n}=e;return n(["Usa varias palabras, pero evita frases comúns."])}},WEAK:e=>{const{normalize:n}=e;return n(["feble"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Actualizouse o teu contrasinal. Preme en ",r(t(0))," para acceder."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Edición da conta"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Datos de ascensión (gravacións, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Volver ao perfil"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Data de nacemento"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Formato para as datas"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar perfil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias dos deportes"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["O gráfico de elevación comeza en"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Altitude mínima"])},ZERO:e=>{const{normalize:n}=e;return n(["Cero"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n([r(t(0))," para cambiar o enderezo de correo electrónico ou contacta coa administración"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Primeiro día da semana"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Nome"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Apelido"])},LOCATION:e=>{const{normalize:n}=e;return n(["Localización"])},MONDAY:e=>{const{normalize:n}=e;return n(["Luns"])},PICTURE:e=>{const{normalize:n}=e;return n(["Fotografía"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Edición da foto"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Eliminar foto"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Actualizar foto"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Política de privacidade"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Edición do perfil"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Data de rexistro"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["acción"])},COLOR:e=>{const{normalize:n}=e;return n(["cor"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["desactivado por admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["activa"])},LABEL:e=>{const{normalize:n}=e;return n(["etiqueta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["limiar para detectar pausa"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Edición das preferencias do deporte"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["A conta actualizouse correctamente. Comproba o teu correo para confirmar o novo enderezo de correo electrónico."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Creouse correctamente a conta."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Enviouse un correo ao enderezo proporcionado cunha ligazón para activar a conta."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Actualizouse correctamente a conta."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Domingo"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["conta"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["imaxe"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferencias"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["política de privacidade"])},PROFILE:e=>{const{normalize:n}=e;return n(["perfil"])},SPORTS:e=>{const{normalize:n}=e;return n(["deportes"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Zona horaria"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Sistema Imperial (ft, mi, mph, ºF)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unidades de distancia"])},METRIC:e=>{const{normalize:n}=e;return n(["Sistema Métrico (m, km, m/s, ºC)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrado"])},LABEL:e=>{const{normalize:n}=e;return n(["Estratexia para velocidade máx. GPX"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["En bruto"])},HELP:e=>{const{normalize:n}=e;return n(["Se filtras, excluirá os valores extremos (que poderían deberse a erros do GPS) ao calcular a velocidade máxima."])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Lin e acepto a ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear conta"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Lamentámolo, pero non se permiten novas contas."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Reenviar o correo de confirmación de conta"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablece o contrasinal"])},REVIEW:e=>{const{normalize:n}=e;return n(["revisar"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["mostrar contrasinal"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Esta conta de usuaria está desactivada."])},USERNAME:e=>{const{normalize:n}=e;return n(["Identificador"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['Require entre 3 e 30 caracteres, só se permiten alfanuméricos e o trazo baixo "_".'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["foto da usuaria"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Aceptaches a ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Engadir adestramento"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["análise"])},ASCENT:e=>{const{normalize:n}=e;return n(["ascenso"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["velocidade media"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["volver ao adestramento"])},DATE:e=>{const{normalize:n}=e;return n(["data"])},DESCENT:e=>{const{normalize:n}=e;return n(["descenso"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["mostrar filtros"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distancia"])},DURATION:e=>{const{normalize:n}=e;return n(["duración"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Editar adestramento"])},ELEVATION:e=>{const{normalize:n}=e;return n(["altitude"])},END:e=>{const{normalize:n}=e;return n(["fin"])},FROM:e=>{const{normalize:n}=e;return n(["desde"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["ficheiro .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["agochar filtros"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Hai que proporcionar os dous valores de altitude e deben ser iguais o maiores que 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["A distancia debe ser superior a 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["A duración debe superar os 0 segundos"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Últimos adestramentos"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Cargar máis adestramentos"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["Altitude máx."])},MAX_FILES:e=>{const{normalize:n}=e;return n(["máx. de ficheiros"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["Tamaño máx."])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["Vel. máxima"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["Altitude min."])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Non hai tramo seguinte"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Seguinte adestramento"])},NOTES:e=>{const{normalize:n}=e;return n(["notas"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["datos directos do .gpx, sen limpar"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Non hai ficheiro"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["sen cartafoles dentro"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Sen mapa"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Non hai tramo seguinte"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Non hai adestramento seguinte"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Sen notas"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Non hai tramo anterior"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Non hai adestramento anterior"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Sen récords."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Sen adestramentos."])},PAUSES:e=>{const{normalize:n}=e;return n(["pausas"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Tramo anterior"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Adestramento anterior"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["récord"]),n(["récords"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vel. media"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["A maior distancia"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["O maior desnivel"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["A duración máis longa"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Vel. máxima"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["caracteres restantes"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["tramo"]),n(["tramos"])])},SPEED:e=>{const{normalize:n}=e;return n(["velocidade"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["deporte"]),n(["deportes"])])},START:e=>{const{normalize:n}=e;return n(["inicio"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Inicio e fin"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["situar a altitude de inicio no cero da gráfica"])},TITLE:e=>{const{normalize:n}=e;return n(["título"])},TO:e=>{const{normalize:n}=e;return n(["a"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["duración total"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Subiches un!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["día despexado"])},"clear-night":e=>{const{normalize:n}=e;return n(["noite despexada"])},cloudy:e=>{const{normalize:n}=e;return n(["nubrado"])},fog:e=>{const{normalize:n}=e;return n(["néboa"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["día algo nubrado"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["noite algo nubrada"])},rain:e=>{const{normalize:n}=e;return n(["chuvia"])},sleet:e=>{const{normalize:n}=e;return n(["sarabia"])},snow:e=>{const{normalize:n}=e;return n(["neve"])},wind:e=>{const{normalize:n}=e;return n(["vento"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humidade"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatura"])},WIND:e=>{const{normalize:n}=e;return n(["vento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["L"])},ENE:e=>{const{normalize:n}=e;return n(["XAN"])},ESE:e=>{const{normalize:n}=e;return n(["LSL"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NL"])},NNE:e=>{const{normalize:n}=e;return n(["NNL"])},NNW:e=>{const{normalize:n}=e;return n(["NNO"])},NW:e=>{const{normalize:n}=e;return n(["NO"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SL"])},SSE:e=>{const{normalize:n}=e;return n(["SSL"])},SSW:e=>{const{normalize:n}=e;return n(["SSO"])},SW:e=>{const{normalize:n}=e;return n(["SO"])},W:e=>{const{normalize:n}=e;return n(["O"])},WNW:e=>{const{normalize:n}=e;return n(["ONO"])},WSW:e=>{const{normalize:n}=e;return n(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["sen ficheiro .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["con ficheiro .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["adestramento"]),n(["adestramentos"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["data do adestramento"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Tes certeza de querer borrar este adestramento?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["ficheiro .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["ou ficheiro .zip que contén ficheiros .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},6013:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contatta l'amministratore"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee è un tracker self-hosted per attività outdoor."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Sotto licenza ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Codice sorgente"])}},o={ACTION:e=>{const{normalize:n}=e;return n(["Azione"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Attiva account"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Attivo"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Amministrazione"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Aggiungi/rimuovi permessi, elimina account utente."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Applicazione"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Email di contatto dell'amministratore"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Numero massimo di files zip"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Se settato a 0, non ci sono limiti per le registrazioni."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Numero massimo di utenti attivi"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["nessuna mail di contatto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Dimensione massima dei file caricabili (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Configurazione applicazione"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Dimensione massima dell'archivio zip (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Ritorna ad amministrazione"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Sei sicuro di voler eliminare ",r(t(0))," account? Tutti i dati verranno persi, quest'azione non può essere annullata."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Sei sicuro di voler resettare ",r(t(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Email corrente"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Elimina utente"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["L'invio di email è disabilitato."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Attiva/Disattiva sports."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nuova email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["La password è stata reimpostata."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["La registrazione è al momento disabilitata."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["La registrazione è al momento abilitata."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Attivo"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["workout esistono"])},IMAGE:e=>{const{normalize:n}=e;return n(["Immagine"])},LABEL:e=>{const{normalize:n}=e;return n(["Etichetta"])}},TITLE:e=>{const{normalize:n}=e;return n(["Amministrazione sport"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Aggiorna configurazione applicazione."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Aggiorna email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["utente"]),n(["utenti"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["stato admin"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["data di registrazione"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["stato account"])},USERNAME:e=>{const{normalize:n}=e;return n(["nome utente"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["numero di workout"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Aggiungi permessi di amministratore"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Rimuovi permessi di amministratore"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["L'indirizzo email è stato aggiornato."])}},a={ERROR:{"Network Error":e=>{const{normalize:n}=e;return n(["Errore di rete."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Errore. Per favore riprova o contatta l'amminstratore."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: dev'essere inserita un'email valida."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Errore nella lettura del file gpx."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Errore nell'elaborazione del file gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Errore nella lettura della configurazione."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Errore nell'aggiornamento della configurazione"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Errore, per favore riprova o contatta l'amministratore."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Errore, la registrazione è disabilitata."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["File con estensione non permessa."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["La dimensione del file è maggiore di quella massima permessa."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Credenziali errate."])},"invalid payload":e=>{const{normalize:n}=e;return n(["I dati inseriti non sono validi."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Token scaduto, per favore ripeti il log in."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Token scaduto, per favore ripeti il log in."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["La nuova email dev'essere diversa dalla vecchia mail"])},"no file part":e=>{const{normalize:n}=e;return n(["Nessun file scelto."])},"no selected file":e=>{const{normalize:n}=e;return n(["Nessun file scelto."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Password: la password inserita e la conferma non combaciano."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Insersci un token di autenticazione valido."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Token scaduto. Per favore ripeti il log in."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Mi dispiace, quell'username è già esistente."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Questo sport non esiste."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Registrato con successo."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Il numero di files nell'archivio supera il limite massimo permesso."])},"user does not exist":e=>{const{normalize:n}=e;return n(["L'utente non esiste."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Dev'essere inserita un'email valida"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Non hai i permessi necessari."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["avanti"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["precedente"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Re-invia email di conferma"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorizza"])},BACK:e=>{const{normalize:n}=e;return n(["Indietro"])},CANCEL:e=>{const{normalize:n}=e;return n(["Annulla"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Resetta filtri"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Elimina il mio account"])},DISABLE:e=>{const{normalize:n}=e;return n(["Disattiva"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifica"])},ENABLE:e=>{const{normalize:n}=e;return n(["Attiva"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtra"])},LOGIN:e=>{const{normalize:n}=e;return n(["Log in"])},NO:e=>{const{normalize:n}=e;return n(["No"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registra"])},RESET:e=>{const{normalize:n}=e;return n(["Reset"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Invia"])},YES:e=>{const{normalize:n}=e;return n(["Si"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["about"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Conferma"])},CONTACT:e=>{const{normalize:n}=e;return n(["contatto"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["giorno"]),n(["giorni"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Mostrato"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentazione"])},HERE:e=>{const{normalize:n}=e;return n(["qui"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Nascosto"])},HOME:e=>{const{normalize:n}=e;return n(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["Dal più basso al più alto"])},DESC:e=>{const{normalize:n}=e;return n(["Dal più alto al più basso"])},LABEL:e=>{const{normalize:n}=e;return n(["ordina"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["ordina per"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["per pagina"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Totale"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Questo mese"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["L'applicazione ha riscontrato dei problemi. Per favore riprova più tardi o contatta l'amministratore."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Pagina non trovata"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Workout non trovato"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Qualcosa è andato storto"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Errore. Per favore riprova o contatta l'amministratore."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Aggiungi una nuova applicazione OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Secret"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Descrizione applicazione"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Issue at"])},NAME:e=>{const{normalize:n}=e;return n(["Nome applicazione"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL redirect"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura alla configurazioen dell'applicazione."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di lettura a auth
endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura a auth
endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di lettura a users
endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura a users
endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di lettura a workouts
endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura a workouts
endpoints."])}},URL:e=>{const{normalize:n}=e;return n(["URL applicazione"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Applicazioni OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler eliminare quest'app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["L'applicazione ",r(t(0))," sta chiedendo:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Autorizzi ",r(t(0))," ad utilizzare il tuo account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copia nella clipboard"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Elimina applicazione"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Aggiungi applicazione"])},NO_APP:e=>{const{normalize:n}=e;return n(["Applicazione non trovata!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["nessuna applicazione"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["nessuna descrizione"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Rimuovi tutti i tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler rimuovere tutti i token?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Tutti i token esistenti associati sono stati rimossi."])}},m={},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Trasporto)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Cicliscmo (Virtuale)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Escursioni"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking (Elettrica)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Alpinismo"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Canottaggio"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Corsa"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Sci (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Sci (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Racchette da neve"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Sentieri"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Camminata"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistiche"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mese"])},week:e=>{const{normalize:n}=e;return n(["settimana"])},year:e=>{const{normalize:n}=e;return n(["anno"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Non hai ricevuto istruzioni?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Hai già un account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata"])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Password corrente"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Inserisci un indirizzo email valido."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Inserisci una password"])},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtra per username"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["nascondi password"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Token invalido, per favore richiedi un nuovo reset della password."])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Lingua"])},LOGIN:e=>{const{normalize:n}=e;return n(["Login"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Logout"])},LOG_IN:e=>{const{normalize:n}=e;return n(["log in"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nuova password"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Nessun utente trovato."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Password dimenticata?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Inserisci almeno 8 caratteri."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Reset password"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["media"])},GOOD:e=>{const{normalize:n}=e;return n(["buona"])},LABEL:e=>{const{normalize:n}=e;return n(["sicurezza password"])},STRONG:e=>{const{normalize:n}=e;return n(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Inserisci qualche maiuscola."])},anotherWord:e=>{const{normalize:n}=e;return n(["Aggiungi più parole che sono meno comuni."])},associatedYears:e=>{const{normalize:n}=e;return n(["Evita date che possono essere associate a te."])},capitalization:e=>{const{normalize:n}=e;return n(["Inserisci maiuscole oltre alla prima lettera."])},dates:e=>{const{normalize:n}=e;return n(["Evita date che possono essere associate a te."])},l33t:e=>{const{normalize:n}=e;return n(["Evita sostituzioni prevedibili, per esempio, ","@"," per la a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Usa patterns più lunghi e cambia direzione di scrittura più volte."])},noNeed:e=>{const{normalize:n}=e;return n(["Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole."])},pwned:e=>{const{normalize:n}=e;return n(["È consigliabile cambiare questa password se è utilizzata per altro."])},recentYears:e=>{const{normalize:n}=e;return n(["Evita date recenti."])},repeated:e=>{const{normalize:n}=e;return n(["Evita di ripetere lettere e parole."])},reverseWords:e=>{const{normalize:n}=e;return n(["Evita di scrivere parole al contrario."])},sequences:e=>{const{normalize:n}=e;return n(["Evita sequenze di caratteri comuni."])},useWords:e=>{const{normalize:n}=e;return n(["Usa più parole, ma evita frasi comuni."])}},WEAK:e=>{const{normalize:n}=e;return n(["bassa"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La tua password è stata aggiornata. Clicca ",r(t(0))," per effettuare il login."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Tipo di account"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Dati relativi alle salite (singoli, totale)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Ritorna al profilo"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Data di nascita"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Formato data"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifica profilo"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifica preferenze"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifica preferenze sport"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Per favore ",r(t(0))," per cambiare di nuovo la tua mail o contatta l'amministratore"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Primo giorno della settimana"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Nome"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Lingua"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Cognome"])},LOCATION:e=>{const{normalize:n}=e;return n(["Posizione"])},MONDAY:e=>{const{normalize:n}=e;return n(["Lunedì"])},PICTURE:e=>{const{normalize:n}=e;return n(["Foto"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Foto"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Rimuovi foto"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Aggiorna foto"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Preferenze"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profilo"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Data di registrazione"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["azione"])},COLOR:e=>{const{normalize:n}=e;return n(["colore"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["disattivato dall'amministratore"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["attivo"])},LABEL:e=>{const{normalize:n}=e;return n(["etichetta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["Limite minimo di velocità"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Preferenze sport"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Il tuo account è stato creato con successo."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Un link per attivare il tuo account è stato inviato all'indirizzo specificato."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Il tuo account è stato aggiornato con successo."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Domenica"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["account"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["foto"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferenze"])},PROFILE:e=>{const{normalize:n}=e;return n(["profilo"])},SPORTS:e=>{const{normalize:n}=e;return n(["sports"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Sistema imperiale (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unità per la distanza"])},METRIC:e=>{const{normalize:n}=e;return n(["Sistema metrico (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrato"])},LABEL:e=>{const{normalize:n}=e;return n(["Strategia di massima velocità"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Greggio"])}}},REGISTER:e=>{const{normalize:n}=e;return n(["Registra"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Mi dispiace, la registrazione è disabilitata."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Re-invia email di conferma dell'account"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Resetta password"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["mostra password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Questo account è inattivo."])},USERNAME:e=>{const{normalize:n}=e;return n(["Username"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo "_".'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["foto profilo"])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Aggiungi un workout"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analisi"])},ASCENT:e=>{const{normalize:n}=e;return n(["salita"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["velocità media"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["ritorna al workout"])},DATE:e=>{const{normalize:n}=e;return n(["data"])},DESCENT:e=>{const{normalize:n}=e;return n(["discesa"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["mostra filtri"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distanza"])},DURATION:e=>{const{normalize:n}=e;return n(["durata"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Modifica il workout"])},ELEVATION:e=>{const{normalize:n}=e;return n(["elevazione"])},END:e=>{const{normalize:n}=e;return n(["fine"])},FROM:e=>{const{normalize:n}=e;return n(["da"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["file .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["nascondi filtri"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Entrambi i valori di elevazione devono essere forniti ed essere maggiori o uguali a 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["La distanza dev'essere maggiore di 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["La durata dev'essere maggiore di 0"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Ultimi workout"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Carica più workout"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitudine massima"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["file massimi"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["dimensione massima"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["velocità massima"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitudine minima"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Nessun segmento successivo"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Prossimo workout"])},NOTES:e=>{const{normalize:n}=e;return n(["note"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(['data dal file gpx, senza "pulizia"'])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Nessun file scelto"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["nessuna cartella all'interno"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Nessuna mappa"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Nessun segmento successivo"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Nessun workout successivo"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Nessuna nota"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Nessun segmento precedente"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Nessun workout precedente"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Nessun record."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Nessun workout."])},PAUSES:e=>{const{normalize:n}=e;return n(["pause"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Segmento precedente"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Workout precedente"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["record"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vel. media"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Distanza più lunga"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Salita più alta"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Durata più lunga"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Vel. massima"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["caratteri rimanenti"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segmento"]),n(["segmenti"])])},SPEED:e=>{const{normalize:n}=e;return n(["velocità"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sport"])])},START:e=>{const{normalize:n}=e;return n(["inizio"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Inizio e fine"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["partenza asse elevazione a 0"])},TITLE:e=>{const{normalize:n}=e;return n(["titolo"])},TO:e=>{const{normalize:n}=e;return n(["a"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["durata totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Carica file!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["cielo chiaro"])},"clear-night":e=>{const{normalize:n}=e;return n(["notte chiara"])},cloudy:e=>{const{normalize:n}=e;return n(["nuvoloso"])},fog:e=>{const{normalize:n}=e;return n(["nebbia"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["parzialmente nuvoloso"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["notte parzialmente nuvolosa"])},rain:e=>{const{normalize:n}=e;return n(["pioggia"])},sleet:e=>{const{normalize:n}=e;return n(["nevischio"])},snow:e=>{const{normalize:n}=e;return n(["neve"])},wind:e=>{const{normalize:n}=e;return n(["vento"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["umidità"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatura"])},WIND:e=>{const{normalize:n}=e;return n(["vento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSW"])},SW:e=>{const{normalize:n}=e;return n(["SW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["senza file .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["con file .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["allenamento"]),n(["allenamenti"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["data workout"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler eliminare questo workout?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["file .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["o file .zip contenente files .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},1901:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Om denne instansen"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Kontakt administratoren"])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Kildekode"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Værdata fra:"])}},o={ABOUT:{TEXT:e=>{const{normalize:n}=e;return n(["Detaljert info om instansen"])}},ACTION:e=>{const{normalize:n}=e;return n(["Handling"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Aktiv"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administrasjon"])},APPLICATION:e=>{const{normalize:n}=e;return n(["Program"])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Vil du tilbakestille ",r(t(0))," passord?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Nåværende e-postadresse"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Slett bruker"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Ingen tekst innskrevet"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Passordet har blitt tilbakestilt."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Tilbakestill passord"])},SPORTS:{TABLE:{IMAGE:e=>{const{normalize:n}=e;return n(["Bilde"])},LABEL:e=>{const{normalize:n}=e;return n(["Etikett"])}}},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["bruker"]),n(["brukere"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["administratorstatus"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["registreringsdato"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["kontostatus"])}}}}},a={ERROR:{"Network Error":e=>{const{normalize:n}=e;return n(["Nettverksfeil."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Kunne ikke lagre arbeidsøkt."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Filendelsen tillates ikke."])},"no file part":e=>{const{normalize:n}=e;return n(["Ingen fil angitt."])},"no selected file":e=>{const{normalize:n}=e;return n(["Ingen valgt fil."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Sporten finnes ikke."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Brukeren finnes ikke."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["neste"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["forrige"])}}},i={BACK:e=>{const{normalize:n}=e;return n(["Tilbake"])},CANCEL:e=>{const{normalize:n}=e;return n(["Avbryt"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Tøm filtre"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Slett kontoen min"])},DISABLE:e=>{const{normalize:n}=e;return n(["Skru av"])},EDIT:e=>{const{normalize:n}=e;return n(["Rediger"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Logg inn"])},NO:e=>{const{normalize:n}=e;return n(["Nei"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registrer"])},RESET:e=>{const{normalize:n}=e;return n(["Tilbakestill"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["om"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bekreftelse"])},CONTACT:e=>{const{normalize:n}=e;return n(["kontakt"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["dag"]),n(["dager"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Vist"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["dokumentasjon"])},HERE:e=>{const{normalize:n}=e;return n(["her"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Skjult"])},HOME:e=>{const{normalize:n}=e;return n(["Hjem"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["sorter etter"])}}}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Oversikt"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Denne måneden"])}},c={NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Fant ikke siden"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Fant ikke arbeidsøkten"])}}},u={APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["ID"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Hemmelinghet"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Programbeskrivelse"])},NAME:e=>{const{normalize:n}=e;return n(["Programnavn"])},URL:e=>{const{normalize:n}=e;return n(["Programnettadresse"])}},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["kopier til utklippstavlen"])},NO_APPS:e=>{const{normalize:n}=e;return n(["ingen programmer"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["ingen beskrivelse"])}},m={CONTENT:{ACCOUNT_DELETION:{TITLE:e=>{const{normalize:n}=e;return n(["Kontosletting"])}}},TITLE:e=>{const{normalize:n}=e;return n(["personvernspraksis"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Sykling (sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Sykling (transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Sykling (virtuell)"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Fjellsykling"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Fjellsykling (elektrisk)"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Roing"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Løping"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Truger"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistikk"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["måned"])},week:e=>{const{normalize:n}=e;return n(["uke"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Mottok du ikke noen instruks?"])},ADMIN:e=>{const{normalize:n}=e;return n(["Administrator"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Har du allerede en konto?"])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Nåværende passord"])},EMAIL:e=>{const{normalize:n}=e;return n(["E-post"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Skriv inn en gyldig e-postadresse."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Skriv inn et passord"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Dataeksport"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Last ned arkiv"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["genererer lenke …"])},STATUS:{in_progress:e=>{const{normalize:n}=e;return n(["underveis …"])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrer på brukernavn"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["skjul passord"])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Jeg vil slette kontoen min"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Språk"])},LOGIN:e=>{const{normalize:n}=e;return n(["Logg inn"])},LOG_IN:e=>{const{normalize:n}=e;return n(["logg inn"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nytt passord"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Fant ingen brukere."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Passord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Glemt passordet?"])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["gjen."])},GOOD:e=>{const{normalize:n}=e;return n(["bra"])},LABEL:e=>{const{normalize:n}=e;return n(["passordstyrke"])},STRONG:e=>{const{normalize:n}=e;return n(["sterkt"])},WEAK:e=>{const{normalize:n}=e;return n(["svakt"])}},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Kontoredigering"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Tilbake til profil"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Fødselsdag"])},EDIT:e=>{const{normalize:n}=e;return n(["Rediger profil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Rediger innstillinger"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Fornavn"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Språk"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Etternavn"])},MONDAY:e=>{const{normalize:n}=e;return n(["Mandag"])},PICTURE:e=>{const{normalize:n}=e;return n(["Bilde"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Fjern bilde"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Oppdater bilde"])},TABS:{PROFILE:e=>{const{normalize:n}=e;return n(["profil"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Tidssone"])},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrert"])},LABEL:e=>{const{normalize:n}=e;return n(["Maks hastighet strategi"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Rå"])}}},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Tilbakestill passordet ditt"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["vis passord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Denne brukerkontoen er inaktiv."])},USERNAME:e=>{const{normalize:n}=e;return n(["Brukernavn"])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["brukerbilde"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Du har samtykket til ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Legg til en arbeidsøkt"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analyse"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["tilbake til arbeidsøkt"])},DATE:e=>{const{normalize:n}=e;return n(["dato"])},DISTANCE:e=>{const{normalize:n}=e;return n(["avstand"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Rediger arbeidsøkten"])},FROM:e=>{const{normalize:n}=e;return n(["fra"])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["Avstanden må være større enn 0"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["maks. størrelse"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["maks. hastighet"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Neste arbeidsøkt"])},NOTES:e=>{const{normalize:n}=e;return n(["notater"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Ingen fil angitt"])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Ingen arbeidsøkter."])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Forrige segment"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Lengste varighet"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Maks. hastighet"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["gjenstående tegn"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segmenter"])])},SPEED:e=>{const{normalize:n}=e;return n(["hastighet"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sporter"])])},START:e=>{const{normalize:n}=e;return n(["start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start og slutt"])},TO:e=>{const{normalize:n}=e;return n(["til"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["total varighet"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["tøm dag"])},rain:e=>{const{normalize:n}=e;return n(["regn"])},snow:e=>{const{normalize:n}=e;return n(["snø"])},wind:e=>{const{normalize:n}=e;return n(["vind"])}},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatur"])},WIND:e=>{const{normalize:n}=e;return n(["vind"])}},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip-fil"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},3726:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Over deze instantie"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacteer uw administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee is zelf-gehoste activiteiten tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Onder ",r(t(0))," licentie "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Broncode"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Weer gegevens van:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Extra informatie die nuttig kan zijn voor uw gebruikers. Markdown opmaak kan gebruikt worden."])},TEXT:e=>{const{normalize:n}=e;return n(["Gedetailleerde informatie over deze instantie"])}},ACTION:e=>{const{normalize:n}=e;return n(["Actie"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activeer account"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Ingeschakeld"])},ADMIN:e=>{const{normalize:n}=e;return n(["Beheer"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Instellingen"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Applicatie"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Administrator email voor contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Max. aantal bestanden in zip archief"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Bij 0, geen limiet op registratie."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Max. aantal actieve gebruikers"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["geen contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. grootte van bestanden voor upload (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Applicatie configureren"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. grootte van zip archief (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Terug naar beheer"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Weet u zeker dat u de account ",r(t(0))," wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Weet u zeker dat u het wachtwoord voor ",r(t(0))," wilt resetten?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Huidige email"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Verwijder gebruiker"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["Emails verzenden is uitgeschakeld."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Aan- of uitzetten van sporten."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nieuwe email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Geen tekst ingegeven"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Het wachtwoord werd gereset."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Voeg uw eigen privacybeleid toe, of laat leeg om het standaard beleid te gebruiken. Markdown opmaak kan gebruikt worden."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Registratie is momenteel uitgeschakeld."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Registratie is momenteel ingeschakeld."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset wachtwoord"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Ingeschakeld"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["Trainingen aanwezig"])},IMAGE:e=>{const{normalize:n}=e;return n(["Afbeelding"])},LABEL:e=>{const{normalize:n}=e;return n(["Label"])}},TITLE:e=>{const{normalize:n}=e;return n(["Beheer sporten"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["De applicatie configureren."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Update email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["gebruiker"]),n(["gebruikers"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["admin status"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["Registratie datum"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["Account status"])},USERNAME:e=>{const{normalize:n}=e;return n(["gebruikersnaam"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["aantal trainingen"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Admin rechten toevoegen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Verwijder admin rechten"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Het emailadres werd bijgewerkt."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n([" gedeelte ontbreekt in het .gpx bestand."])},"Network Error":e=>{const{normalize:n}=e;return n(["Netwerk fout."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fout. Probeer opnieuw of contacteer de administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Er bestaat al een voltooide export aanvraag."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: een geldige email is vereist."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Fout bij het verwerken van het gpx bestand."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Fout bij verwerken van gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Fout bij ophalen van configuratie."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Fout bij het opslaan van de activiteit."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Fout bij het updaten van de configuratie"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Fout, probeer opnieuw of contacteer de administrator."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Fout, registratie is uitgeschakeld."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Bestandsformaat niet toegelaten."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["Bestandsgrootte is groter dan toegestaan."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["Het .gpx bestand is ongeldig."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Ongeldige inloggegevens."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Ingegeven data is ongeldig."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Ongeldige token, log opnieuw in."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Ongeldige token, log opnieuw in."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["Het nieuwe email adres dient te verschillen van het oude"])},"no file part":e=>{const{normalize:n}=e;return n(["Geen bestand opgegeven."])},"no selected file":e=>{const{normalize:n}=e;return n(["Geen bestand geselecteerd."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Geen route () aanwezig in het .gpx bestand."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Er bestaat al een export aanvraag."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Wachtwoord: het wachtwoord en de bevestiging komen niet overeen."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Geef een geldig auth token."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Signatuur verlopen. Log opnieuw in."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Sorry, deze gebruikersnaam is al in gebruik."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Deze sport bestaat niet."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Succesvol geregistreerd."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Het aantal bestanden in het zip archief overschrijdt de limiet."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Gebruiker bestaat niet."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Een geldige email is vereist voor admin contact informatie"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["U hebt geen machtigingen."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["volgende"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["vorige"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Herzend bevestigings email"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Toekennen"])},BACK:e=>{const{normalize:n}=e;return n(["Terug"])},CANCEL:e=>{const{normalize:n}=e;return n(["Annuleren"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Verwijder filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Verwijder mijn account"])},DISABLE:e=>{const{normalize:n}=e;return n(["Uitzetten"])},EDIT:e=>{const{normalize:n}=e;return n(["Bewerken"])},ENABLE:e=>{const{normalize:n}=e;return n(["Aanzetten"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Inloggen"])},NO:e=>{const{normalize:n}=e;return n(["Nee"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registreer"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Data export aanvragen"])},RESET:e=>{const{normalize:n}=e;return n(["Reset"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Opslaan"])},YES:e=>{const{normalize:n}=e;return n(["Ja"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["over"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bevestiging"])},CONTACT:e=>{const{normalize:n}=e;return n(["contacteer"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["dag"]),n(["dagen"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Weergegeven"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentatie"])},HERE:e=>{const{normalize:n}=e;return n(["hier"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Verborgen"])},HOME:e=>{const{normalize:n}=e;return n(["Startscherm"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["oplopend"])},DESC:e=>{const{normalize:n}=e;return n(["aflopend"])},LABEL:e=>{const{normalize:n}=e;return n(["sorteer"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["sorteer op"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["per pagina"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Totaal"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Deze maand"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Er heeft zich een onbekende fout voorgedaan. Probeer aub later opnieuw of contacteer de administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Pagina niet gevonden"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Training niet gevonden"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Er ging iets mis"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fout. Probeer opnieuw of contacteer de administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Nieuwe OAuth2 app toevoegen"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Geheim"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["App omschrijving"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Probleem bij"])},NAME:e=>{const{normalize:n}=e;return n(["Naam van de app"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["Doorverwijs URL"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Omvang"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["geeft toestemming tot aanpassen van de applicatie instellingen."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat leestoegang toe aan auth
endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat schrijftoegang toe aan auth
endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat leestoegang toe aan users
endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat schrijftoegang toe aan users
endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat leestoegang toe aan workouts
endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat schrijftoegang toe aan workouts
endpoints."])}},URL:e=>{const{normalize:n}=e;return n(["App URL"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["OAuth2 apps"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u deze app wilt verwijderen?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["De app ",r(t(0))," vraagt:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Toegang geven aan ",r(t(0))," tot uw gebruikersaccount?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["kopieer naar klembord"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Verwijder app"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Voeg een app toe"])},NO_APP:e=>{const{normalize:n}=e;return n(["App niet gevonden!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["geen apps"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["geen beschrijving"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Verwijder alle tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u alle tokens wilt intrekken?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Alle bestaande tokens werden ingetrokken."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['U kunt uw account op elk moment opzeggen door naar volgend adres te gaan, en na inloggen op de knop "Verwijder mijn account" te klikken in uw instellingen.'])},TITLE:e=>{const{normalize:n}=e;return n(["Account verwijderen"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Eventuele aanpassingen aan het privacybeleid zullen op deze pagina worden weergegeven.\n\nDit document valt onder volgende licentie [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Een aanpassing van dit origineel privacybeleid [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Aanpassingen aan ons Privacybeleid"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["De volgende informatie wordt verzameld:\n- Account informatie (gebruikersnaam, email en wachtwoord). U kan ook bijkomende informatie opgeven zoals: naam, voornaam, geboortedatum, locatie, biografie en een profiel-afbeelding.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) bestanden. Deze bestanden bevatten gegevens over uw activiteiten (coördinaten, datums, afstand, duur, maximum en minimum snelheden, hoogtegegevens, hartslag, ...). Als u bepaalde gegevens hiervan niet wil delen, verwijder deze dan uit het bestand alvorens deze te uploaden.\n- Sportgerelateerde gegevens (soort sport, titel, datum, duur, afstand, geklommen afstand, gedaalde afstand, notities).\n- Technische informatie (de browsernaam en naam van het besturingssysteem)."])},TITLE:e=>{const{normalize:n}=e;return n(["Welke informatie wordt er door ons verzameld?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Persoonlijke informatie wordt niet verkocht, geruild of op enige manier doorgegeven aan derden/andere instanties.\n\nDe uitzondering hierop zijn derden die vertrouwd worden en hebben ingestemd om uw gegevens niet te delen. Dit zijn bijvoorbeeld website administrators en vertrouwde applicaties.\n\nWanneer je een app van derden linkt aan je gebruikersaccount, kan het naargelang de toegestane rechten toegang krijgen tot je profiel informatie en activiteiten. Apps hebben nooit toegang tot uw wachtwoord.\n\nMogelijk kan er informatie worden gedeeld wanneer dit nodig is om aan de wetgeving te voldoen, wanneer de regels van ons beleid dienen afgedwongen te worden, of om onze of anderen hun rechten, eigendom of veiligheid te beschermen."])},TITLE:e=>{const{normalize:n}=e;return n(["Wordt er informatie met derden gedeeld?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Er worden verschillende maatregelen gebruikt om de veiligheid van uw persoonlijke informatie te beschermen. Zowel tijdens het ingegeven, uploaden en bekijken van uw informatie."])},TITLE:e=>{const{normalize:n}=e;return n(["Hoe beschermen we uw informatie?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["De informatie die we verzamelen is nodig voor de basis functionaliteit van **FitTrackee**:\n- GPX worden gebruikt om activiteiten aan te maken, routes te tonen op de map (door [OpenStreetMap](https://www.openstreetmap.org), grafieken te tonen, thumbnails voor de route aan te maken, berekenen van records en weerdata op te vragen (indien geconfigureerd).\n- Profiel informatie en activiteiten zijn niet publiek zichtbaar. Een gebruiker kan enkel zijn eigen activiteiten bekijken.\n- Het opgegeven email adres kan worden gebruikt om informatie met u te delen, of om wijzigingen aan uw account te melden."])},TITLE:e=>{const{normalize:n}=e;return n(["Waarvoor wordt de opgegeven informatie gebruikt?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Als de server zich in de EU of EEA bevindt: Deze site en zijn services zijn gericht op personen van minstens 16 jaar oud. Als u onder de 16 jaar bent, volgens naleving van de [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation), gelieve deze site niet te gebruiken.\n\nAls de server zich in de USA bevindt: Deze site en zijn services zijn gericht op personen van minstens 13 jaar oud. Als u onder de 13 jaar bent, volgens naleving van de [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), gelieve deze site niet te gebruiken.\n\nWetgeving kan verschillen als de server zich op een andere plaats bevindt."])},TITLE:e=>{const{normalize:n}=e;return n(["Gebruik door minderjarigen"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Door deze site te gebruiken, gaat u akkoord met ons privacybeleid."])},TITLE:e=>{const{normalize:n}=e;return n(["Uw toestemming"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Laatste aanpassing"])},TITLE:e=>{const{normalize:n}=e;return n(["privacybeleid"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Fietsen (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Fietsen (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Fietsen (Virtueel)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Trektocht"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken (Elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Bergbeklimmen"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Roeien"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Lopen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiën (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiën (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Sneeuwschoenen"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Wandelen"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistieken"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["maand"])},week:e=>{const{normalize:n}=e;return n(["week"])},year:e=>{const{normalize:n}=e;return n(["jaar"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Geen instructies ontvangen?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres."])},ADMIN:e=>{const{normalize:n}=e;return n(["Beheer"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Al een account aangemaakt?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Huidig wachtwoord"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Geef een geldig email adres op."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Geef een paswoord in"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Data exporteren"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Archief downloaden"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["link aanmaken..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Je kan 1 keer per 24h een archief aanvragen"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["fout (gelieve een nieuw archief aan te vragen)"])},in_progress:e=>{const{normalize:n}=e;return n(["Bezig met verwerken..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filter op gebruikersnaam"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["verberg wachtwoord"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Ongeldig token, vraag een nieuwe wachtwoord reset aan."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Ik wil mijn account verwijderen"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Taal"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Het privacybeleid werd aangepast, gelieve te ",r(t(0))," voor verdergaan."])},LOGIN:e=>{const{normalize:n}=e;return n(["Inloggen"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Uitloggen"])},LOG_IN:e=>{const{normalize:n}=e;return n(["inloggen"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nieuw wachtwoord"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Geen gebruikers gevonden."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Wachtwoord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Wachtwoord vergeten?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Tenminste 8 karakters vereist."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Wachtwoord reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["gemiddeld"])},GOOD:e=>{const{normalize:n}=e;return n(["goed"])},LABEL:e=>{const{normalize:n}=e;return n(["wachtwoord sterkte"])},STRONG:e=>{const{normalize:n}=e;return n(["sterk"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Gebruik enkele hoofdletters."])},anotherWord:e=>{const{normalize:n}=e;return n(["Voeg meer niet gangbare woorden toe."])},associatedYears:e=>{const{normalize:n}=e;return n(["Vermijd jaartallen met een persoonlijke betekenis."])},capitalization:e=>{const{normalize:n}=e;return n(["Gebruik niet enkel voor de eerste letter een hoofdletter."])},dates:e=>{const{normalize:n}=e;return n(["Vermijd persoonlijke gegevens en jaartallen."])},l33t:e=>{const{normalize:n}=e;return n(["Vermijd voorspelbare vervangingen, zoals ","@"," voor de letter a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Gebruik langere patronen en verander de richting van typen meerdere malen."])},noNeed:e=>{const{normalize:n}=e;return n(["U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters."])},pwned:e=>{const{normalize:n}=e;return n(["Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen."])},recentYears:e=>{const{normalize:n}=e;return n(["Vermijd recente jaartallen."])},repeated:e=>{const{normalize:n}=e;return n(["Vermijd opeenvolgende woorden en karakters."])},reverseWords:e=>{const{normalize:n}=e;return n(["Vermijd gangbare woorden die achterstevoren geschreven zijn."])},sequences:e=>{const{normalize:n}=e;return n(["Vermijd voorspelbare opeenvolgingen."])},useWords:e=>{const{normalize:n}=e;return n(["Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen."])}},WEAK:e=>{const{normalize:n}=e;return n(["zwak"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Uw wachtwoord werd aangepast. Klik ",r(t(0))," om in te loggen."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Account aanpassen"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Hoogte gerelateerde data (opnames, totaal)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Terug naar profiel"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Geboortedatum"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Weergaveformaat datum"])},EDIT:e=>{const{normalize:n}=e;return n(["Profiel aanpassen"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Voorkeuren wijzigen"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Sport voorkeuren wijzigen"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Hoogte grafiek begint op"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Minimum hoogte"])},ZERO:e=>{const{normalize:n}=e;return n(["Nul"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Gelieve ",r(t(0))," om uw email adres opnieuw te wijzigen of contacteer uw administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Eerste dag van de week"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Voornaam"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Taal"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Achternaam"])},LOCATION:e=>{const{normalize:n}=e;return n(["Locatie"])},MONDAY:e=>{const{normalize:n}=e;return n(["Maandag"])},PICTURE:e=>{const{normalize:n}=e;return n(["Afbeelding"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Afbeelding aanpassen"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Afbeelding verwijderen"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Afbeelding veranderen"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Voorkeuren aanpassen"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Privacybeleid"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profiel aanpassen"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Datum registratie"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["actie"])},COLOR:e=>{const{normalize:n}=e;return n(["kleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["uitgeschakeld door admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["actief"])},LABEL:e=>{const{normalize:n}=e;return n(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["snelheidsgrens voor stilstand"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Sport voorkeuren aanpassen"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Uw account werd succesvol aangemaakt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Uw account werd succesvol bijgewerkt."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Zondag"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["account"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["afbeelding"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["voorkeuren"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["Privacybeleid"])},PROFILE:e=>{const{normalize:n}=e;return n(["profiel"])},SPORTS:e=>{const{normalize:n}=e;return n(["sporten"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Tijdzone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Imperialistisch systeem (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Eenheid voor afstand"])},METRIC:e=>{const{normalize:n}=e;return n(["Metrisch systeem (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Gefilterd"])},LABEL:e=>{const{normalize:n}=e;return n(["Strategie voor maximale snelheid"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Rauw"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Ik heb het ",r(t(0))," gelezen en goedgekeurd."])},REGISTER:e=>{const{normalize:n}=e;return n(["Registreren"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Sorry, registreren is uitgeschakeld."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Opnieuw zenden van account bevestigingsmail"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset uw wachtwoord"])},REVIEW:e=>{const{normalize:n}=e;return n(["beoordeel"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["toon wachtwoord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Deze account is niet actief."])},USERNAME:e=>{const{normalize:n}=e;return n(["Gebruikersnaam"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter "_" zijn toegestaan.'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["gebruikersafbeelding"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["U hebt het ",r(t(0))," aanvaard."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Training toevoegen"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analyse"])},ASCENT:e=>{const{normalize:n}=e;return n(["geklommen"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["gemiddelde snelheid"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["gem. snelheid"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["Terug naar training"])},DATE:e=>{const{normalize:n}=e;return n(["datum"])},DESCENT:e=>{const{normalize:n}=e;return n(["gedaald"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["toon filters"])},DISTANCE:e=>{const{normalize:n}=e;return n(["afstand"])},DURATION:e=>{const{normalize:n}=e;return n(["duur"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Training aanpassen"])},ELEVATION:e=>{const{normalize:n}=e;return n(["hoogte"])},END:e=>{const{normalize:n}=e;return n(["einde"])},FROM:e=>{const{normalize:n}=e;return n(["van"])},GPX_FILE:e=>{const{normalize:n}=e;return n([".gpx bestand"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["verberg filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["De afstand moet groter zijn dan 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["De duur moet langer zijn dan 0 seconden"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Laatste trainingen"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Toon meer trainingen"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["max. hoogte"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["max. aantal bestanden"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["max. grootte"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["max. snelheid"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["min. hoogte"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Geen volgend segment"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Volgende training"])},NOTES:e=>{const{normalize:n}=e;return n(["notities"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["data vanuit gpx, zonder op te schonen"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Geen bestand opgegeven"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["geen map aanwezig"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Geen kaart"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Geen volgend segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Geen volgende training"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Geen notities"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Geen vorig segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Geen vorige training"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Geen records."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Geen trainingen."])},PAUSES:e=>{const{normalize:n}=e;return n(["pauzes"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Vorig segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Vorige training"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["records"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Gem. snelheid"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Langste afstand"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Hoogst geklommen"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Langste duur"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Max. snelheid"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["resterende karakters"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segmenten"])])},SPEED:e=>{const{normalize:n}=e;return n(["snelheid"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sporten"])])},START:e=>{const{normalize:n}=e;return n(["start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start en aankomst"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["Zet hoogte-as vast op 0"])},TITLE:e=>{const{normalize:n}=e;return n(["titel"])},TO:e=>{const{normalize:n}=e;return n(["tem."])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["totale duur"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Eén uploaden!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["heldere dag"])},"clear-night":e=>{const{normalize:n}=e;return n(["heldere nacht"])},cloudy:e=>{const{normalize:n}=e;return n(["bewolkt"])},fog:e=>{const{normalize:n}=e;return n(["mist"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["gedeeltelijk bewolkte dag"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["gedeeltelijk bewolkte nacht"])},rain:e=>{const{normalize:n}=e;return n(["regen"])},sleet:e=>{const{normalize:n}=e;return n(["natte sneeuw"])},snow:e=>{const{normalize:n}=e;return n(["sneeuw"])},wind:e=>{const{normalize:n}=e;return n(["wind"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["vochtigheid"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatuur"])},WIND:e=>{const{normalize:n}=e;return n(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["O"])},ENE:e=>{const{normalize:n}=e;return n(["ONO"])},ESE:e=>{const{normalize:n}=e;return n(["OZO"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NO"])},NNE:e=>{const{normalize:n}=e;return n(["NNO"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["Z"])},SE:e=>{const{normalize:n}=e;return n(["ZO"])},SSE:e=>{const{normalize:n}=e;return n(["ZZO"])},SSW:e=>{const{normalize:n}=e;return n(["ZZW"])},SW:e=>{const{normalize:n}=e;return n(["ZW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WZW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["zonder .gpx bestand"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["met .gpx bestand"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["training"]),n(["trainingen"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["datum training"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u deze training wilt verwijderen?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip bestand"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["of .zip archief met .gpx bestanden"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},5381:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Dane pogodowe z:"])},ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["O tej instancji"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Skontaktuj się z administratorem"])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["na licencji ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Kod źródłowy"])}},o={},a={},i={},s={},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Panel"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Ten miesiąc"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Wygląda na to, że aplikacja napotkała pewne problemy. Spróbuj ponownie później lub skontaktuj się z administratorem."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Błąd. Proszę spróbować ponownie lub skontaktować się z administratorem."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Nie znaleziono strony"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Nie znaleziono treningu"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Coś poszło nie tak"])}},u={},m={},d={},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statystyki"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["miesiąc"])},week:e=>{const{normalize:n}=e;return n(["tydzień"])},year:e=>{const{normalize:n}=e;return n(["rok"])}}},_={},T={},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},6413:function(e,n,r){"use strict";var t=r(3148),o=r(7028),a=r(9963),i=r(2343),s=r(5205);(0,s.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=r(6252),c=r(2262),u=r(3577);const m=e=>((0,l.dD)("data-v-97e20d3a"),e=e(),(0,l.Cn)(),e),d={id:"footer"},E={class:"footer-items"},_={class:"footer-item"},T=m((()=>(0,l._)("strong",null,"FitTrackee",-1))),S=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},z={key:1,class:"footer-item"},O=["href"],I=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),R={class:"footer-item"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const n=e,{adminContact:r,version:t}=(0,c.BK)(n);return(e,n)=>{const o=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",d,[(0,l._)("div",E,[(0,l._)("div",_,[T,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(t)),1)]),S,(0,l._)("div",p,[(0,l.Wm)(o,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",z,[(0,l._)("a",{href:`mailto:${(0,c.SU)(r)}`},(0,u.zw)(e.$t("common.CONTACT")),9,O)])):(0,l.kq)("",!0),I,(0,l._)("div",R,[(0,l.Wm)(o,{to:"/privacy-policy"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])])])}}}),g=r(3744);const U=(0,g.Z)(N,[["__scopeId","data-v-97e20d3a"]]);var C=U,D=(r(7658),r(6595)),v=r(5801),h=r(9917),f=r(6287);const P=e=>((0,l.dD)("data-v-7c04bc24"),e=e(),(0,l.Cn)(),e),L={id:"nav"},w={class:"nav-container"},k={class:"nav-app-name"},b={class:"nav-items-close"},M=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),y={key:0,class:"nav-items-group"},G=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),F={class:"nav-items-user-menu"},W={key:0,class:"nav-items-group"},Y={class:"nav-item nav-profile-img"},x={key:1,class:"nav-items-group"},B=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var K=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:n}){const r=(0,h.o)(),t=(0,l.Fl)((()=>r.getters[v.YN.GETTERS.AUTH_USER_PROFILE])),o=(0,l.Fl)((()=>r.getters[v.YN.GETTERS.IS_AUTHENTICATED])),a=(0,l.Fl)((()=>r.getters[v.SY.GETTERS.LANGUAGE])),i=(0,c.iH)(!1);function s(){i.value=!0,n("menuInteraction",!0)}function m(){i.value=!1,n("menuInteraction",!1)}function d(e){r.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function E(){r.dispatch(v.YN.ACTIONS.LOGOUT)}return(e,n)=>{const r=(0,l.up)("router-link"),_=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",L,[(0,l._)("div",w,[(0,l._)("div",k,[(0,l._)("div",{class:"nav-item app-name",onClick:n[0]||(n[0]=n=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":i.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:n[1]||(n[1]=e=>s())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":i.value}])},[(0,l._)("div",b,[M,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!i.value}]),onClick:n[2]||(n[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:n[3]||(n[3]=e=>m())},[(0,c.SU)(o)?((0,l.wg)(),(0,l.iD)("div",y,[(0,l.Wm)(r,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(o)&&(0,c.SU)(t).admin?((0,l.wg)(),(0,l.j4)(r,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),G])):(0,l.kq)("",!0)]),(0,l._)("div",F,[(0,c.SU)(o)?((0,l.wg)(),(0,l.iD)("div",W,[(0,l._)("div",Y,[(0,l.Wm)(D.Z,{user:(0,c.SU)(t)},null,8,["user"])]),(0,l.Wm)(r,{class:"nav-item",to:"/profile",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(t).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:E},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",x,[(0,l.Wm)(r,{class:"nav-item",to:"/login",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/register",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(f.mT)&&(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(_,{key:2,class:"nav-item",options:(0,c.SU)(f.mT),selected:(0,c.SU)(a),onSelected:d},{default:(0,l.w5)((()=>[B])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const H=(0,g.Z)(K,[["__scopeId","data-v-7c04bc24"]]);var V=H,Z=r(7167);const $={id:"no-config"},q={class:"error-page"},X={class:"error-img"},j=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,n)=>((0,l.wg)(),(0,l.iD)("div",$,[(0,l._)("div",q,[(0,l._)("div",X,[(0,l.Wm)(Z.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,j)])]))}});const J=(0,g.Z)(Q,[["__scopeId","data-v-47759238"]]);var ee=J;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},te={class:"app-loading"},oe={class:"container scroll"},ae=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),ie=[ae];var se=(0,l.aZ)({__name:"App",setup(e){const n=(0,h.o)(),r=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.APP_CONFIG])),t=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.APP_LOADING])),o=(0,c.iH)(!1),a=(0,c.iH)(!1);function i(e){o.value=e}function s(e){return e.getBoundingClientRect().top=0}function m(){window.onscroll=()=>{const e=document.querySelector("#bottom");a.value=null!==e&&s(e)}}function d(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{a.value=!1}),300)}function E(){let e="en";try{const n=navigator.language.split("-")[0];n in f.v1&&(e=n)}catch(r){e="en"}n.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{E(),n.dispatch(v.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>m())),(e,n)=>{const s=(0,l.up)("Loader"),m=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)(V,{onMenuInteraction:i}),(0,c.SU)(t)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",te,[(0,l.Wm)(s)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":o.value}])},[(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(m,{key:0})):((0,l.wg)(),(0,l.j4)(ee,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":a.value}]),onClick:d},ie,2)]),(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(C,{key:2,version:(0,c.SU)(r)?(0,c.SU)(r).version:"",adminContact:(0,c.SU)(r).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const le=se;var ce=le,ue=r(2540),me=r(4413),de=r(2894);const Ee={class:"alert-message"},_e=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const n=e,{message:r}=(0,c.BK)(n);return(e,n)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(r))},null,8,_e)]))}});const Se=(0,g.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var pe=Se,Ae=r(2531);const ze={class:"custom-textarea"},Oe=["id","name","maxLength","disabled"],Ie={class:"remaining-chars"};var Re=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:n}){const r=e,t=(0,c.iH)("");function o(e){n("updateValue",e.target.value)}return(0,l.YP)((()=>r.input),(e=>{t.value=null===e?"":e})),(n,r)=>((0,l.wg)(),(0,l.iD)("div",ze,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLength:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":r[0]||(r[0]=e=>t.value=e),onInput:o},null,40,Oe),[[a.nr,t.value]]),(0,l._)("div",Ie,(0,u.zw)(n.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(t.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,g.Z)(Re,[["__scopeId","data-v-eb7fa534"]]);var ge=Ne,Ue=r(3649),Ce=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const n=e,{digits:r,displayUnit:t,distance:o,speed:a,strong:i,unitFrom:s,useImperialUnits:m}=(0,c.BK)(n),d=(0,l.Fl)((()=>m.value?Ue.Dl[s.value].defaultTarget:s.value)),E=(0,l.Fl)((()=>m.value?(0,Ue.sC)(o.value,s.value,d.value,r.value):parseFloat(o.value.toFixed(r.value))));return(e,n)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(E)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(0,c.SU)(t)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(d))+(0,u.zw)((0,c.SU)(a)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const De=(0,g.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var ve=De,he=r(2201);const fe={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},Le=["onClick"];var we=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:n}){const r=e,t=(0,he.yj)(),o=(0,c.iH)(!1),a=r.options.map((e=>e));function i(){o.value=!o.value}function s(e){n("selected",e),o.value=!1}return(0,l.YP)((()=>t.path),(()=>o.value=!1)),(n,r)=>((0,l.wg)(),(0,l.iD)("div",fe,[(0,l._)("div",{class:"dropdown-selected",onClick:i},[(0,l.WI)(n.$slots,"default")]),o.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(a),((n,r)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:n.value===e.selected}]),key:r,onClick:e=>s(n)},(0,u.zw)(n.label),11,Le)))),128))])):(0,l.kq)("",!0)]))}});const ke=(0,g.Z)(we,[["__scopeId","data-v-9590c0e6"]]);var be=ke;const Me={class:"error-message"},ye={key:0},Ge={key:1};var Fe=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const n=e,{message:r}=(0,c.BK)(n);return(e,n)=>((0,l.wg)(),(0,l.iD)("div",Me,[Array.isArray((0,c.SU)(r))?((0,l.wg)(),(0,l.iD)("ul",ye,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(r),((n,r)=>((0,l.wg)(),(0,l.iD)("li",{key:r},(0,u.zw)(e.$t(n)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Ge,(0,u.zw)(e.$t((0,c.SU)(r))),1))]))}});const We=(0,g.Z)(Fe,[["__scopeId","data-v-2659a79a"]]);var Ye=We;const xe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Ke=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),He=[Be,Ke];function Ve(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",xe,He)}var Ze={name:"CyclingSport"};const $e=(0,g.Z)(Ze,[["render",Ve]]);var qe=$e;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),Je=[je,Qe];function en(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Xe,Je)}var nn={name:"CyclingTransport"};const rn=(0,g.Z)(nn,[["render",en]]);var tn=rn;const on={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"},an=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),sn=[an];function ln(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",on,sn)}var cn={name:"CyclingVirtual"};const un=(0,g.Z)(cn,[["render",ln]]);var mn=un;const dn={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"},En=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),_n=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),Tn=[En,_n];function Sn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",dn,Tn)}var pn={name:"Hiking"};const An=(0,g.Z)(pn,[["render",Sn]]);var zn=An;const On={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},In=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Rn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),Nn=[In,Rn];function gn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",On,Nn)}var Un={name:"MountainBiking"};const Cn=(0,g.Z)(Un,[["render",gn]]);var Dn=Cn;const vn={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"},hn=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),fn=[hn];function Pn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",vn,fn)}var Ln={name:"MountainBikingElectric"};const wn=(0,g.Z)(Ln,[["render",Pn]]);var kn=wn;const bn={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},Mn=(0,l.uE)(' silhouette of a person doing mountaineering ',2),yn=[Mn];function Gn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",bn,yn)}var Fn={name:"Mountaineering"};const Wn=(0,g.Z)(Fn,[["render",Gn]]);var Yn=Wn;const xn={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"},Bn=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),Kn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Hn=[Bn,Kn];function Vn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",xn,Hn)}var Zn={name:"Rowing"};const $n=(0,g.Z)(Zn,[["render",Vn]]);var qn=$n;const Xn={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"},jn=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Qn=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Jn=[jn,Qn];function er(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Xn,Jn)}var nr={name:"Running"};const rr=(0,g.Z)(nr,[["render",er]]);var tr=rr;const or={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"},ar=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),ir=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),sr=[ar,ir];function lr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",or,sr)}var cr={name:"SkiingAlpine"};const ur=(0,g.Z)(cr,[["render",lr]]);var mr=ur;const dr={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"},Er=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),_r=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),Tr=[Er,_r];function Sr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",dr,Tr)}var pr={name:"SkiingCrossCountry"};const Ar=(0,g.Z)(pr,[["render",Sr]]);var zr=Ar;const Or={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"},Ir=(0,l.uE)('silhouette of a person with snowshoes ',6),Rr=[Ir];function Nr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Or,Rr)}var gr={name:"Snowshoes"};const Ur=(0,g.Z)(gr,[["render",Nr]]);var Cr=Ur;const Dr={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"},vr=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),hr=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),fr=[vr,hr];function Pr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Dr,fr)}var Lr={name:"Trail"};const wr=(0,g.Z)(Lr,[["render",Pr]]);var kr=wr;const br={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"},Mr=(0,l.uE)('silhouette of a walking person ',3),yr=[Mr];function Gr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",br,yr)}var Fr={name:"Walking"};const Wr=(0,g.Z)(Fr,[["render",Gr]]);var Yr=Wr;const xr=["title"];var Br=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const n=e,{color:r,sportLabel:t,title:o}=(0,c.BK)(n),a=(0,l.f3)("sportColors");return(e,n)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(r)?(0,c.SU)(r):(0,c.SU)(a)[(0,c.SU)(t)]}),title:(0,c.SU)(o)?(0,c.SU)(o):e.$t(`sports.${(0,c.SU)(t)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(qe,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(tn,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(mn,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(zn,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Dn,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(kn,{key:5})):(0,l.kq)("",!0),"Mountaineering"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Yn,{key:6})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(qn,{key:7})):(0,l.kq)("",!0),"Running"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(tr,{key:8})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(mr,{key:9})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(zr,{key:10})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Cr,{key:11})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(kr,{key:12})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Yr,{key:13})):(0,l.kq)("",!0)],12,xr))}});const Kr=Br;var Hr=Kr;const Vr={class:"loader"};function Zr(e,n){return(0,l.wg)(),(0,l.iD)("div",Vr)}const $r={},qr=(0,g.Z)($r,[["render",Zr],["__scopeId","data-v-4c9921ee"]]);var Xr=qr;const jr={id:"modal"},Qr={class:"custom-modal"},Jr={key:0,class:"modal-message"},et={key:1,class:"modal-message"},nt={class:"modal-buttons"};var rt=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:n}){const r=e,t=(0,h.o)(),{title:o,message:a,strongMessage:i}=(0,c.BK)(r),s=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>t.commit(v.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,r)=>{const t=(0,l.up)("i18n-t"),m=(0,l.up)("ErrorMessage"),d=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",jr,[(0,l._)("div",Qr,[(0,l.Wm)(d,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(o)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(i)?((0,l.wg)(),(0,l.iD)("div",Jr,[(0,l.Wm)(t,{keypath:(0,c.SU)(a)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(i)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",et,(0,u.zw)((0,c.SU)(a)),1)),(0,c.SU)(s)?((0,l.wg)(),(0,l.j4)(m,{key:2,message:(0,c.SU)(s)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",nt,[(0,c.SU)(s)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:r[0]||(r[0]=e=>n("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:r[1]||(r[1]=e=>n("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(s)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const tt=(0,g.Z)(rt,[["__scopeId","data-v-5aa8db48"]]);var ot=tt;const at=[{target:pe,name:"AlertMessage"},{target:Ae.Z,name:"Card"},{target:ge,name:"CustomTextArea"},{target:ve,name:"Distance"},{target:be,name:"Dropdown"},{target:Ye,name:"ErrorMessage"},{target:Xr,name:"Loader"},{target:ot,name:"Modal"},{target:Hr,name:"SportImage"}],it={mounted:(e,n)=>{e.clickOutsideEvent=function(r){e===r.target||e.contains(r.target)||n.value(r)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var st=r(631);t.kL.register(t.ZL,t.jn,t.od,t.De,t.Dx,t.u,t.Gu,t.vn,t.uw,t.ST,t.f$,o.Z);const lt=(0,a.ri)(ce).provide("sportColors",st.Zo).use(ue.Z).use(de.Z).use(me.Z).use(i.ZP,{name:"VFullscreen"}).directive("click-outside",it);at.forEach((e=>{lt.component(e.name,e.target)})),lt.mount("#app")},4413:function(e,n,r){"use strict";r.d(n,{Z:function(){return Yc}});var t=r(2201),o=(r(7658),r(6252)),a=r(3577),i=r(9963),s=r(2262),l=r(9252),c=r(5801),u=r(9917),m=r(8966),d=r(2335);const E=e=>((0,o.dD)("data-v-80b4a9e6"),e=e(),(0,o.Cn)(),e),_={id:"admin-app",class:"admin-card"},T=["onSubmit"],S={for:"admin_contact"},p=["value"],A=["disabled"],z={for:"max_users"},O=["disabled"],I={class:"user-limit-help"},R={class:"info-box"},N=E((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),g={for:"max_single_file_size"},U=["disabled"],C={for:"max_zip_file_size"},D=["disabled"],v={for:"gpx_limit_import"},h=["disabled"],f={class:"about-label",for:"about"},P={class:"textarea-description"},L=["innerHTML"],w={class:"privacy-policy-label",for:"privacy_policy"},k={class:"textarea-description"},b=["innerHTML"],M={key:5,class:"form-buttons"},y={class:"confirm",type:"submit"},G=["onClick"],F={key:6,class:"form-buttons"};var W=(0,o.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const n=e,{edition:r}=(0,s.BK)(n),E=(0,u.o)(),W=(0,t.tv)(),Y=(0,s.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0,about:"",privacy_policy:""}),x=(0,o.Fl)((()=>E.getters[c.SY.GETTERS.ERROR_MESSAGES]));function B(e){Object.keys(Y).map((n=>{["max_single_file_size","max_zip_file_size"].includes(n)?Y[n]=(0,m.j)(e[n]):["about","privacy_policy"].includes(n)?Y[n]=null!==e[n]?e[n]:"":Y[n]=e[n]}))}function K(){B(n.appConfig),E.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),W.push("/admin/application")}function H(){const e=Object.assign({},Y);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,E.dispatch(c.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,o.wF)((()=>{n.appConfig&&B(n.appConfig)})),(e,n)=>{const t=(0,o.up)("ErrorMessage"),c=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",_,[(0,o.Wm)(c,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,o.w5)((()=>[(0,o._)("form",{class:"admin-form",onSubmit:(0,i.iM)(H,["prevent"])},[(0,o._)("label",S,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,s.SU)(r)||Y.admin_contact?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":n[0]||(n[0]=e=>Y.admin_contact=e),disabled:!(0,s.SU)(r)},null,8,A)),[[i.nr,Y.admin_contact]]):((0,o.wg)(),(0,o.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,p))]),(0,o._)("label",z,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":n[1]||(n[1]=e=>Y.max_users=e),disabled:!(0,s.SU)(r)},null,8,O),[[i.nr,Y.max_users]])]),(0,o._)("div",I,[(0,o._)("span",R,[N,(0,o.Uk)(" "+(0,a.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,o._)("label",g,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[2]||(n[2]=e=>Y.max_single_file_size=e),disabled:!(0,s.SU)(r)},null,8,U),[[i.nr,Y.max_single_file_size]])]),(0,o._)("label",C,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[3]||(n[3]=e=>Y.max_zip_file_size=e),disabled:!(0,s.SU)(r)},null,8,D),[[i.nr,Y.max_zip_file_size]])]),(0,o._)("label",v,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":n[4]||(n[4]=e=>Y.gpx_limit_import=e),disabled:!(0,s.SU)(r)},null,8,h),[[i.nr,Y.gpx_limit_import]])]),(0,o._)("label",f,(0,a.zw)(e.$t("admin.ABOUT.TEXT"))+": ",1),(0,o._)("span",P,(0,a.zw)(e.$t("admin.ABOUT.DESCRIPTION")),1),(0,s.SU)(r)?(0,o.wy)(((0,o.wg)(),(0,o.iD)("textarea",{key:0,id:"about",name:"about",rows:"10","onUpdate:modelValue":n[5]||(n[5]=e=>Y.about=e)},null,512)),[[i.nr,Y.about]]):((0,o.wg)(),(0,o.iD)("div",{key:1,innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)(Y.about?Y.about:e.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,L)),(0,o._)("label",w,(0,a.zw)((0,a.kC)(e.$t("privacy_policy.TITLE")))+": ",1),(0,o._)("span",k,(0,a.zw)(e.$t("admin.PRIVACY_POLICY_DESCRIPTION")),1),(0,s.SU)(r)?(0,o.wy)(((0,o.wg)(),(0,o.iD)("textarea",{key:2,id:"privacy_policy",name:"privacy_policy",rows:"20","onUpdate:modelValue":n[6]||(n[6]=e=>Y.privacy_policy=e)},null,512)),[[i.nr,Y.privacy_policy]]):((0,o.wg)(),(0,o.iD)("div",{key:3,innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)(Y.privacy_policy?Y.privacy_policy:e.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,b)),(0,s.SU)(x)?((0,o.wg)(),(0,o.j4)(t,{key:4,message:(0,s.SU)(x)},null,8,["message"])):(0,o.kq)("",!0),(0,s.SU)(r)?((0,o.wg)(),(0,o.iD)("div",M,[(0,o._)("button",y,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:(0,i.iM)(K,["prevent"])},(0,a.zw)(e.$t("buttons.CANCEL")),9,G)])):((0,o.wg)(),(0,o.iD)("div",F,[(0,o._)("button",{class:"confirm",onClick:n[7]||(n[7]=(0,i.iM)((n=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,a.zw)(e.$t("buttons.EDIT")),1),(0,o._)("button",{class:"cancel",onClick:n[8]||(n[8]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,T)])),_:1})])}}}),Y=r(3744);const x=(0,Y.Z)(W,[["__scopeId","data-v-80b4a9e6"]]);var B=x;const K={class:"stat-card"},H={class:"stat-content box"},V={class:"stat-icon"},Z={class:"stat-details"},$={class:"stat-huge"},q={class:"stat"};var X=(0,o.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const n=e,{icon:r,text:t,value:i}=(0,s.BK)(n);return(e,n)=>((0,o.wg)(),(0,o.iD)("div",K,[(0,o._)("div",H,[(0,o._)("div",V,[(0,o._)("i",{class:(0,a.C_)(["fa",`fa-${(0,s.SU)(r)}`])},null,2)]),(0,o._)("div",Z,[(0,o._)("div",$,(0,a.zw)((0,s.SU)(i)),1),(0,o._)("div",q,(0,a.zw)((0,s.SU)(t)),1)])])]))}});const j=X;var Q=j;const J={id:"user-stats"};var ee=(0,o.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const n=e,{appStatistics:r}=(0,s.BK)(n),t=(0,o.Fl)((()=>(0,m.Z)(r.value.uploads_dir_size,!1)));return(e,n)=>((0,o.wg)(),(0,o.iD)("div",J,[(0,o.Wm)(Q,{icon:"users",value:(0,s.SU)(r).users,text:e.$t("admin.USER",(0,s.SU)(r).users)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"tags",value:(0,s.SU)(r).sports,text:e.$t("workouts.SPORT",(0,s.SU)(r).sports)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"calendar",value:(0,s.SU)(r).workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(r).workouts)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"folder-open",value:(0,s.SU)(t).size,text:(0,s.SU)(t).suffix},null,8,["value","text"])]))}});const ne=ee;var re=ne,te=r(2531);const oe=e=>((0,o.dD)("data-v-0dd66f89"),e=e(),(0,o.Cn)(),e),ae={id:"admin-menu",class:"center-card"},ie={class:"admin-menu description-list"},se={class:"application-config-details"},le=oe((()=>(0,o._)("br",null,null,-1))),ce={class:"registration-status"},ue={key:0,class:"email-sending-status"},me=oe((()=>(0,o._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var de=(0,o.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const n=e,{appConfig:r,appStatistics:t}=(0,s.BK)(n);return(e,n)=>{const i=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",ae,[(0,o.Wm)(te.Z,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,o.w5)((()=>[(0,o.Wm)(re,{appStatistics:(0,s.SU)(t)},null,8,["appStatistics"]),(0,o._)("div",ie,[(0,o._)("dl",null,[(0,o._)("dt",null,[(0,o.Wm)(i,{to:"/admin/application"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,o._)("dd",se,[(0,o.Uk)((0,a.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),le,(0,o._)("span",ce,(0,a.zw)(e.$t("admin.REGISTRATION_"+((0,s.SU)(r).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,s.SU)(r).is_email_sending_enabled?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",ue,[me,(0,o.Uk)(" "+(0,a.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,o._)("dt",null,[(0,o.Wm)(i,{to:"/admin/sports"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,a.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,o._)("dd",null,(0,a.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,o._)("dt",null,[(0,o.Wm)(i,{to:"/admin/users"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,a.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,o._)("dd",null,(0,a.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const Ee=(0,Y.Z)(de,[["__scopeId","data-v-0dd66f89"]]);var _e=Ee,Te=r(9150),Se=r(631);const pe=e=>((0,o.dD)("data-v-6d62af67"),e=e(),(0,o.Cn)(),e),Ae={id:"admin-sports",class:"admin-card"},ze={class:"responsive-table"},Oe=pe((()=>(0,o._)("th",null,"#",-1))),Ie={class:"text-left"},Re={class:"text-left sport-action"},Ne=pe((()=>(0,o._)("th",null,null,-1))),ge={class:"text-center"},Ue=pe((()=>(0,o._)("span",{class:"cell-heading"},"id",-1))),Ce={class:"cell-heading"},De={class:"sport-label"},ve={class:"cell-heading"},he={class:"text-center"},fe={class:"cell-heading"},Pe={class:"sport-action"},Le={class:"cell-heading"},we={class:"action-button"},ke=["onClick"],be={key:0,class:"has-workouts"},Me=pe((()=>(0,o._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var ye=(0,o.aZ)({__name:"AdminSports",setup(e){const{t:n}=(0,Te.QT)(),r=(0,u.o)(),t=(0,o.Fl)((()=>(0,Se.xH)(r.getters[c.O8.GETTERS.SPORTS],n))),l=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES]));function m(e,n){r.dispatch(c.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:n})}return(e,n)=>{const r=(0,o.up)("SportImage"),c=(0,o.up)("ErrorMessage"),u=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",Ae,[(0,o.Wm)(u,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,o.w5)((()=>[(0,o._)("button",{class:"top-button",onClick:n[0]||(n[0]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,o._)("div",ze,[(0,o._)("table",null,[(0,o._)("thead",null,[(0,o._)("tr",null,[Oe,(0,o._)("th",null,(0,a.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,o._)("th",Ie,(0,a.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,o._)("th",null,(0,a.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,o._)("th",Re,(0,a.zw)(e.$t("admin.ACTION")),1),Ne])]),(0,o._)("tbody",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(t),(n=>((0,o.wg)(),(0,o.iD)("tr",{key:n.id},[(0,o._)("td",ge,[Ue,(0,o.Uk)(" "+(0,a.zw)(n.id),1)]),(0,o._)("td",null,[(0,o._)("span",Ce,(0,a.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,o.Wm)(r,{title:n.translatedLabel,"sport-label":n.label,color:n.color},null,8,["title","sport-label","color"])]),(0,o._)("td",De,[(0,o._)("span",ve,(0,a.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,o.Uk)(" "+(0,a.zw)(n.translatedLabel),1)]),(0,o._)("td",he,[(0,o._)("span",fe,(0,a.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,o._)("i",{class:(0,a.C_)("fa fa"+(n.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,o._)("td",Pe,[(0,o._)("span",Le,(0,a.zw)(e.$t("admin.ACTION")),1),(0,o._)("div",we,[(0,o._)("button",{class:(0,a.C_)({danger:n.is_active}),onClick:e=>m(n.id,!n.is_active)},(0,a.zw)(e.$t(`buttons.${n.is_active?"DIS":"EN"}ABLE`)),11,ke),n.has_workouts?((0,o.wg)(),(0,o.iD)("span",be,[Me,(0,o.Uk)(" "+(0,a.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,o.kq)("",!0)])])])))),128))])]),(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(c,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("button",{onClick:n[1]||(n[1]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const Ge=(0,Y.Z)(ye,[["__scopeId","data-v-6d62af67"]]);var Fe=Ge,We=r(8626),Ye=r(5020),xe=r(6595);const Be={class:"users-filters"},Ke={class:"search-username"},He=["onKeyup","placeholder"];var Ve=(0,o.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:n}){const r=(0,t.yj)(),l=(0,s.iH)(r.query.q?r.query.q:"");function c(){""!==l.value&&n("filterOnUsername",l)}function u(){l.value="",n("filterOnUsername",l.value)}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Be,[(0,o._)("div",Ke,[(0,o.wy)((0,o._)("input",{id:"username",name:"username","onUpdate:modelValue":n[0]||(n[0]=e=>l.value=e),onKeyup:(0,i.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,He),[[i.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,o.wg)(),(0,o.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,o.kq)("",!0)]),(0,o._)("i",{class:(0,a.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Ze=(0,Y.Z)(Ve,[["__scopeId","data-v-627a8e91"]]);var $e=Ze,qe=r(2766),Xe=r(6558);const je=e=>((0,o.dD)("data-v-dc12ff78"),e=e(),(0,o.Cn)(),e),Qe={id:"admin-users",class:"admin-card"},Je={key:0,class:"no-users"},en={key:1,class:"responsive-table"},nn=je((()=>(0,o._)("th",null,"#",-1))),rn={class:"left-text"},tn={class:"left-text"},on={class:"left-text"},an={class:"cell-heading"},sn={class:"cell-heading"},ln={class:"cell-heading"},cn={class:"cell-heading"},un={class:"text-center"},mn={class:"cell-heading"},dn={class:"text-center"},En={class:"cell-heading"},_n={class:"text-center"},Tn={class:"cell-heading"},Sn={class:"text-center"},pn={class:"cell-heading"},An=["disabled","onClick"];var zn=(0,o.aZ)({__name:"AdminUsers",setup(e){const n=(0,u.o)(),r=(0,t.yj)(),l=(0,t.tv)(),m=["is_active","admin","created_at","username","workouts_count"],d="created_at";let E=(0,s.qj)((0,qe.pm)(r.query,m,d));const _=(0,o.Fl)((()=>n.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),T=(0,o.Fl)((()=>n.getters[c.RT.GETTERS.USERS])),S=(0,o.Fl)((()=>n.getters[c.RT.GETTERS.USERS_PAGINATION])),p=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.ERROR_MESSAGES]));function A(e){n.dispatch(c.RT.ACTIONS.GET_USERS,e)}function z(e){I("q",e.value)}function O(e,r){n.dispatch(c.RT.ACTIONS.UPDATE_USER,{username:e,admin:r})}function I(e,n){E[e]=n,"per_page"===e&&(E.page=1),l.push({path:"/admin/users",query:E})}return(0,o.wF)((()=>A(E))),(0,o.Ah)((()=>{n.dispatch(c.RT.ACTIONS.EMPTY_USERS)})),(0,o.YP)((()=>r.query),(e=>{E=(0,qe.pm)(e,m,d,{query:E}),A(E)})),(e,n)=>{const r=(0,o.up)("router-link"),t=(0,o.up)("ErrorMessage"),l=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",Qe,[(0,o.Wm)(l,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,a.kC)(e.$t("admin.USER",0))),1)])),content:(0,o.w5)((()=>[(0,o._)("button",{class:"top-button",onClick:n[0]||(n[0]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,o.Wm)($e,{onFilterOnUsername:z}),(0,o.Wm)(We.Z,{sort:(0,s.SU)(qe.fS),order_by:m,query:(0,s.SU)(E),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,s.SU)(T).length?((0,o.wg)(),(0,o.iD)("div",Je,(0,a.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,o.wg)(),(0,o.iD)("div",en,[(0,o._)("table",null,[(0,o._)("thead",null,[(0,o._)("tr",null,[nn,(0,o._)("th",rn,(0,a.zw)(e.$t("user.USERNAME")),1),(0,o._)("th",tn,(0,a.zw)(e.$t("user.EMAIL")),1),(0,o._)("th",on,(0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,o._)("th",null,(0,a.zw)((0,a.kC)(e.$t("workouts.WORKOUT",0))),1),(0,o._)("th",null,(0,a.zw)(e.$t("admin.ACTIVE")),1),(0,o._)("th",null,(0,a.zw)(e.$t("user.ADMIN")),1),(0,o._)("th",null,(0,a.zw)(e.$t("admin.ACTION")),1)])]),(0,o._)("tbody",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(T),(n=>((0,o.wg)(),(0,o.iD)("tr",{key:n.username},[(0,o._)("td",null,[(0,o._)("span",an,(0,a.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,o.Wm)(xe.Z,{user:n},null,8,["user"])]),(0,o._)("td",null,[(0,o._)("span",sn,(0,a.zw)(e.$t("user.USERNAME")),1),(0,o.Wm)(r,{to:`/admin/users/${n.username}`},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(n.username),1)])),_:2},1032,["to"])]),(0,o._)("td",null,[(0,o._)("span",ln,(0,a.zw)(e.$t("user.EMAIL")),1),(0,o.Uk)(" "+(0,a.zw)(n.email),1)]),(0,o._)("td",null,[(0,o._)("span",cn,(0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,o.Uk)(" "+(0,a.zw)((0,s.SU)(Xe.p6)(n.created_at,(0,s.SU)(_).timezone,(0,s.SU)(_).date_format)),1)]),(0,o._)("td",un,[(0,o._)("span",mn,(0,a.zw)((0,a.kC)(e.$t("workouts.WORKOUT",0))),1),(0,o.Uk)(" "+(0,a.zw)(n.nb_workouts),1)]),(0,o._)("td",dn,[(0,o._)("span",En,(0,a.zw)(e.$t("admin.ACTIVE")),1),(0,o._)("i",{class:(0,a.C_)(`fa fa${n.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,o._)("td",_n,[(0,o._)("span",Tn,(0,a.zw)(e.$t("user.ADMIN")),1),(0,o._)("i",{class:(0,a.C_)(`fa fa${n.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,o._)("td",Sn,[(0,o._)("span",pn,(0,a.zw)(e.$t("admin.ACTION")),1),(0,o._)("button",{class:(0,a.C_)({danger:n.admin}),disabled:n.username===(0,s.SU)(_).username,onClick:e=>O(n.username,!n.admin)},(0,a.zw)(e.$t(`admin.USERS.TABLE.${n.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,An)])])))),128))])]),(0,s.SU)(S).page?((0,o.wg)(),(0,o.j4)(Ye.Z,{key:0,path:"/admin/users",pagination:(0,s.SU)(S),query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,o.kq)("",!0),(0,s.SU)(p)?((0,o.wg)(),(0,o.j4)(t,{key:1,message:(0,s.SU)(p)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("button",{onClick:n[1]||(n[1]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const On=(0,Y.Z)(zn,[["__scopeId","data-v-dc12ff78"]]);var In=On,Rn=r(2179);const Nn={class:"profile-tabs custom-checkboxes-group"},gn={class:"profile-tabs-checkboxes custom-checkboxes"},Un=["id","name","checked","disabled","onInput"];var Cn=(0,o.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const n=e,{tabs:r,selectedTab:t,disabled:i}=(0,s.BK)(n);function l(e){switch(e){case"ACCOUNT":case"PICTURE":case"PRIVACY-POLICY":return`/profile/edit/${e.toLocaleLowerCase()}`;case"APPS":case"PREFERENCES":case"SPORTS":return`/profile${n.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(n.edition?"/edit":"")}}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Nn,[(0,o._)("div",gn,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(r),(n=>((0,o.wg)(),(0,o.iD)("div",{class:"profile-tab custom-checkbox",key:n},[(0,o._)("label",null,[(0,o._)("input",{type:"radio",id:n,name:n,checked:(0,s.SU)(t).split("/")[0]===n,disabled:(0,s.SU)(i),onInput:r=>e.$router.push(l(n))},null,40,Un),(0,o._)("span",null,(0,a.zw)(e.$t(`user.PROFILE.TABS.${n}`)),1)])])))),128))])]))}});const Dn=Cn;var vn=Dn;const hn={id:"user-profile"},fn={class:"box"};var Pn=(0,o.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const n=e,{user:r,tab:t}=(0,s.BK)(n),a=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,n)=>{const i=(0,o.up)("router-view");return(0,o.wg)(),(0,o.iD)("div",hn,[(0,o.Wm)(Rn.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,o._)("div",fn,[(0,o.Wm)(vn,{tabs:a,selectedTab:(0,s.SU)(t),edition:!1},null,8,["selectedTab"]),(0,o.Wm)(i,{user:(0,s.SU)(r)},null,8,["user"])])])}}});const Ln=(0,Y.Z)(Pn,[["__scopeId","data-v-9729cba4"]]);var wn=Ln,kn=r(1585),bn=r(6287);const Mn={id:"user-preferences",class:"description-list"},yn={class:"info-box raw-speed-help"},Gn=(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1),Fn={class:"profile-buttons"};var Wn=(0,o.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const n=e,r=(0,u.o)(),t=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.LANGUAGE])),i=(0,o.Fl)((()=>n.user.language?bn.zK[n.user.language]:bn.zK.en)),l=(0,o.Fl)((()=>n.user.weekm?"MONDAY":"SUNDAY")),m=(0,o.Fl)((()=>n.user.timezone?n.user.timezone:"Europe/Paris")),d=(0,o.Fl)((()=>n.user.date_format?n.user.date_format:"MM/dd/yyyy")),E=(0,o.Fl)((()=>n.user.display_ascent?"DISPLAYED":"HIDDEN"));return(n,r)=>((0,o.wg)(),(0,o.iD)("div",Mn,[(0,o._)("dl",null,[(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.LANGUAGE"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(i)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.TIMEZONE"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(m)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(Xe.mh)((0,s.SU)(d),(0,s.SU)(t))),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t(`user.PROFILE.${(0,s.SU)(l)}`)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t(`common.${(0,s.SU)(E)}`)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.ELEVATION_CHART_START.LABEL"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t("user.PROFILE.ELEVATION_CHART_START."+(e.user.start_elevation_at_zero?"ZERO":"MIN_ALT"))),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t("user.PROFILE.USE_RAW_GPX_SPEED."+(e.user.use_raw_gpx_speed?"RAW_SPEED":"FILTERED_SPEED"))),1),(0,o._)("div",yn,[(0,o._)("span",null,[Gn,(0,o.Uk)(" "+(0,a.zw)(n.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),(0,o._)("div",Fn,[(0,o._)("button",{onClick:r[0]||(r[0]=e=>n.$router.push("/profile/edit/preferences"))},(0,a.zw)(n.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,o._)("button",{onClick:r[1]||(r[1]=e=>n.$router.push("/"))},(0,a.zw)(n.$t("common.HOME")),1)])]))}});const Yn=Wn;var xn=Yn;const Bn={id:"user-profile-edition",class:"center-card"};var Kn=(0,o.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const n=e,r=(0,u.o)(),{user:t,tab:i}=(0,s.BK)(n),l=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS","PRIVACY-POLICY"],m=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING]));return(e,n)=>{const r=(0,o.up)("router-view"),c=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",Bn,[(0,o.Wm)(c,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t(`user.PROFILE.${(0,s.SU)(i)}_EDITION`)),1)])),content:(0,o.w5)((()=>[(0,o.Wm)(vn,{tabs:l,selectedTab:(0,s.SU)(i),edition:!0,disabled:(0,s.SU)(m)},null,8,["selectedTab","disabled"]),(0,o.Wm)(r,{user:(0,s.SU)(t)},null,8,["user"])])),_:1})])}}});const Hn=Kn;var Vn=Hn,Zn=r(313),$n=r(7069),qn=r(5167),Xn=r(8403);const jn=e=>((0,o.dD)("data-v-6e11106c"),e=e(),(0,o.Cn)(),e),Qn={id:"user-infos-edition"},Jn={class:"profile-form form-box"},er={key:1,class:"info-box success-message"},nr=["onSubmit"],rr={class:"form-items",for:"email"},tr=["disabled"],or={class:"form-items",for:"password-field"},ar={class:"form-items",for:"new-password-field"},ir={class:"form-buttons"},sr={class:"confirm",type:"submit"},lr=["onClick"],cr={class:"data-export"},ur={class:"info-box"},mr=jn((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),dr={key:0,class:"data-export-archive"},Er=jn((()=>(0,o._)("i",{class:"fa fa-download","aria-hidden":"true"},null,-1))),_r={key:1},Tr={key:2},Sr=jn((()=>(0,o._)("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"},null,-1)));var pr=(0,o.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const n=e,{user:r}=(0,s.BK)(n),t=(0,u.o)(),l=(0,s.qj)({email:"",password:"",new_password:""}),d=(0,o.Fl)((()=>t.getters[c.YN.GETTERS.USER_LOADING])),E=(0,o.Fl)((()=>t.getters[c.SY.GETTERS.APP_CONFIG])),_=(0,o.Fl)((()=>t.getters[c.YN.GETTERS.IS_SUCCESS])),T=(0,s.iH)(!1),S=(0,o.Fl)((()=>t.getters[c.SY.GETTERS.ERROR_MESSAGES])),p=(0,s.iH)(!1),A=(0,s.iH)(!1),z=(0,o.Fl)((()=>t.getters[c.YN.GETTERS.EXPORT_REQUEST])),O=(0,o.Fl)((()=>C())),I=(0,s.iH)(!1);function R(){p.value=!0}function N(e){l.email=e.email}function g(e){l.password=e}function U(e){l.new_password=e}function C(){return z.value?(0,Xe.p6)(z.value.created_at,r.value.timezone,r.value.date_format,!0,null,!0):null}function D(){return!O.value||(0,Zn.Z)(new Date(O.value),(0,$n.Z)(new Date,1))}function v(){const e={email:l.email,password:l.password};l.new_password&&(e.new_password=l.new_password),T.value=l.email!==r.value.email,t.dispatch(c.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function h(e){A.value=e}function f(e){t.dispatch(c.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}function P(){t.dispatch(c.YN.ACTIONS.REQUEST_DATA_EXPORT)}async function L(e){I.value=!0,await qn.Z.get(`/auth/account/export/${e}`,{responseType:"blob"}).then((n=>{const r=window.URL.createObjectURL(new Blob([n.data],{type:"application/zip"})),t=document.createElement("a");t.href=r,t.setAttribute("download",e),document.body.appendChild(t),t.click()})).finally((()=>I.value=!1))}return(0,o.bv)((()=>{n.user&&(t.dispatch(c.YN.ACTIONS.GET_REQUEST_DATA_EXPORT),N(n.user))})),(0,o.Ah)((()=>{t.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),t.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,o.YP)((()=>_.value),(async e=>{e&&(g(""),U(""),N(r.value),p.value=!1)})),(0,o.YP)((()=>r.value.email),(async()=>{N(r.value)})),(e,n)=>{const t=(0,o.up)("Modal"),c=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",Qn,[A.value?((0,o.wg)(),(0,o.j4)(t,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:n[0]||(n[0]=e=>f((0,s.SU)(r).username)),onCancelAction:n[1]||(n[1]=e=>h(!1))},null,8,["title","message"])):(0,o.kq)("",!0),(0,o._)("div",Jn,[(0,s.SU)(S)?((0,o.wg)(),(0,o.j4)(c,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,o.kq)("",!0),(0,s.SU)(_)?((0,o.wg)(),(0,o.iD)("div",er,(0,a.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${T.value&&(0,s.SU)(E).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,o.kq)("",!0),(0,o._)("form",{class:(0,a.C_)({errors:p.value}),onSubmit:(0,i.iM)(v,["prevent"])},[(0,o._)("label",rr,[(0,o.Uk)((0,a.zw)(e.$t("user.EMAIL"))+"* ",1),(0,o.wy)((0,o._)("input",{id:"email","onUpdate:modelValue":n[2]||(n[2]=e=>l.email=e),disabled:(0,s.SU)(d),required:!0,onInvalid:R},null,40,tr),[[i.nr,l.email]])]),(0,o._)("label",or,[(0,o.Uk)((0,a.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,o.Wm)(Xn.Z,{id:"password-field",disabled:(0,s.SU)(d),password:l.password,required:!0,onUpdatePassword:g,onPasswordError:R},null,8,["disabled","password"])]),(0,o._)("label",ar,[(0,o.Uk)((0,a.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,o.Wm)(Xn.Z,{id:"new-password-field",disabled:(0,s.SU)(d),checkStrength:!0,password:l.new_password,isSuccess:!1,onUpdatePassword:U,onPasswordError:R},null,8,["disabled","password"])]),(0,o._)("div",ir,[(0,o._)("button",sr,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[3]||(n[3]=(0,i.iM)((n=>e.$router.push("/profile")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1),(0,o._)("button",{class:"danger",onClick:n[4]||(n[4]=(0,i.iM)((e=>h(!0)),["prevent"]))},(0,a.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1),D()?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"confirm",onClick:(0,i.iM)(P,["prevent"])},(0,a.zw)(e.$t("buttons.REQUEST_DATA_EXPORT")),9,lr)):(0,o.kq)("",!0)])],42,nr),(0,o._)("div",cr,[(0,o._)("span",ur,[mr,(0,o.Uk)(" "+(0,a.zw)(e.$t("user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY")),1)]),(0,s.SU)(z)?((0,o.wg)(),(0,o.iD)("div",dr,[(0,o.Uk)((0,a.zw)(e.$t("user.EXPORT_REQUEST.DATA_EXPORT"))+" ("+(0,a.zw)((0,s.SU)(O))+"): ",1),"successful"===(0,s.SU)(z).status?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"archive-link",onClick:n[5]||(n[5]=(0,i.iM)((e=>L((0,s.SU)(z).file_name)),["prevent"]))},[Er,(0,o.Uk)(" "+(0,a.zw)(e.$t("user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE"))+" ("+(0,a.zw)((0,s.SU)(m.Z)((0,s.SU)(z).file_size))+") ",1)])):((0,o.wg)(),(0,o.iD)("span",_r,(0,a.zw)(e.$t(`user.EXPORT_REQUEST.STATUS.${(0,s.SU)(z).status}`)),1)),I.value?((0,o.wg)(),(0,o.iD)("span",Tr,[(0,o.Uk)((0,a.zw)(e.$t("user.EXPORT_REQUEST.GENERATING_LINK"))+" ",1),Sr])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])])])}}});const Ar=(0,Y.Z)(pr,[["__scopeId","data-v-6e11106c"]]);var zr=Ar,Or=r(6761);const Ir={id:"user-infos-edition"},Rr={class:"profile-form form-box"},Nr=["onSubmit"],gr={class:"form-items",for:"registrationDate"},Ur=["value"],Cr={class:"form-items",for:"first_name"},Dr=["disabled"],vr={class:"form-items",for:"last_name"},hr={class:"form-items",for:"birth_date"},fr=["disabled"],Pr={class:"form-items",for:"location"},Lr=["disabled"],wr={class:"form-items"},kr={class:"form-buttons"},br={class:"confirm",type:"submit"};var Mr=(0,o.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const n=e,r=(0,u.o)(),t=(0,s.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),l=(0,o.Fl)((()=>n.user.created_at?(0,Xe.p6)(n.user.created_at,n.user.timezone,n.user.date_format):"")),m=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING])),d=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES]));function E(e){t.first_name=e.first_name?e.first_name:"",t.last_name=e.last_name?e.last_name:"",t.birth_date=e.birth_date?(0,Or.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",t.location=e.location?e.location:"",t.bio=e.bio?e.bio:""}function _(e){t.bio=e}function T(){r.dispatch(c.YN.ACTIONS.UPDATE_USER_PROFILE,t)}return(0,o.bv)((()=>{n.user&&E(n.user)})),(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const r=(0,o.up)("ErrorMessage"),c=(0,o.up)("CustomTextArea");return(0,o.wg)(),(0,o.iD)("div",Ir,[(0,o._)("div",Rr,[(0,s.SU)(d)?((0,o.wg)(),(0,o.j4)(r,{key:0,message:(0,s.SU)(d)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("form",{onSubmit:(0,i.iM)(T,["prevent"])},[(0,o._)("label",gr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,o._)("input",{id:"registrationDate",value:(0,s.SU)(l),disabled:""},null,8,Ur)]),(0,o._)("label",Cr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,o.wy)((0,o._)("input",{id:"first_name","onUpdate:modelValue":n[0]||(n[0]=e=>t.first_name=e),disabled:(0,s.SU)(m)},null,8,Dr),[[i.nr,t.first_name]])]),(0,o._)("label",vr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,o.wy)((0,o._)("input",{id:"last_name","onUpdate:modelValue":n[1]||(n[1]=e=>t.last_name=e)},null,512),[[i.nr,t.last_name]])]),(0,o._)("label",hr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,o.wy)((0,o._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":n[2]||(n[2]=e=>t.birth_date=e),disabled:(0,s.SU)(m)},null,8,fr),[[i.nr,t.birth_date]])]),(0,o._)("label",Pr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,o.wy)((0,o._)("input",{id:"location","onUpdate:modelValue":n[3]||(n[3]=e=>t.location=e),disabled:(0,s.SU)(m)},null,8,Lr),[[i.nr,t.location]])]),(0,o._)("label",wr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,o.Wm)(c,{name:"bio",charLimit:200,input:t.bio,disabled:(0,s.SU)(m),onUpdateValue:_},null,8,["input","disabled"])]),(0,o._)("div",kr,[(0,o._)("button",br,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[4]||(n[4]=(0,i.iM)((n=>e.$router.push("/profile")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])],40,Nr)])])}}});const yr=(0,Y.Z)(Mr,[["__scopeId","data-v-5e5a4552"]]);var Gr=yr;const Fr=e=>((0,o.dD)("data-v-687e9604"),e=e(),(0,o.Cn)(),e),Wr={id:"user-picture-edition"},Yr={class:"user-picture-form"},xr=["onSubmit"],Br={class:"picture-help"},Kr={class:"info-box"},Hr=Fr((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),Vr={class:"picture-buttons"},Zr=["disabled"];var $r=(0,o.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const n=e,r=(0,u.o)(),{user:t}=(0,s.BK)(n),l=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES])),d=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.APP_CONFIG])),E=d.value.max_single_file_size?(0,m.Z)(d.value.max_single_file_size):"",_=(0,s.iH)(null);function T(){r.dispatch(c.YN.ACTIONS.DELETE_PICTURE)}function S(e){e.target.files&&(_.value=e.target.files[0])}function p(){_.value&&r.dispatch(c.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:_.value})}return(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const r=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",Wr,[(0,o._)("div",Yr,[(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(r,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,o.Wm)(xe.Z,{user:(0,s.SU)(t)},null,8,["user"]),(0,o._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,o._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:S},null,32),(0,o._)("div",Br,[(0,o._)("span",Kr,[Hr,(0,o.Uk)(" "+(0,a.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,a.zw)((0,s.SU)(E)),1)])]),(0,o._)("div",Vr,[(0,o._)("button",{type:"submit",disabled:!_.value},(0,a.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Zr),(0,s.SU)(t).picture?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"danger",onClick:T},(0,a.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,o.kq)("",!0),(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=n=>e.$router.push("/profile"))},(0,a.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,xr)])])}}});const qr=(0,Y.Z)($r,[["__scopeId","data-v-687e9604"]]);var Xr=qr;const jr=["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"],Qr={id:"tz-dropdown"},Jr=["value","disabled","onKeydown"],et=["onClick","onMouseover","autofocus"];var nt=(0,o.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:n}){const r=e,{input:t,disabled:l}=(0,s.BK)(r),c=(0,s.iH)(r.input),u=(0,s.iH)(!1),m=(0,s.iH)(null),d=(0,s.iH)(0);function E(e){return e.toLowerCase().match(c.value.toLowerCase())}function _(e){d.value=e}function T(e){c.value=e,u.value=!1,n("updateTimezone",e)}function S(e){e.preventDefault(),m.value?.firstElementChild?.innerHTML&&T(m.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,o.YP)((()=>r.input),(e=>{c.value=e})),(e,n)=>((0,o.wg)(),(0,o.iD)("div",Qr,[(0,o._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,s.SU)(l),required:"",onKeydown:[n[0]||(n[0]=(0,i.D2)((e=>T((0,s.SU)(t))),["esc"])),(0,i.D2)(S,["enter"])],onInput:p},null,40,Jr),u.value?((0,o.wg)(),(0,o.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:m},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(jr).filter((e=>E(e))),((e,n)=>((0,o.wg)(),(0,o.iD)("li",{key:e,class:(0,a.C_)(["tz-dropdown-item",{focus:n===d.value}]),onClick:n=>T(e),onMouseover:e=>_(n),autofocus:n===d.value},(0,a.zw)(e),43,et)))),128))],512)):(0,o.kq)("",!0)]))}});const rt=(0,Y.Z)(nt,[["__scopeId","data-v-47ea2903"]]);var tt=rt;const ot=e=>((0,o.dD)("data-v-7d35cb46"),e=e(),(0,o.Cn)(),e),at={id:"user-preferences-edition"},it={class:"profile-form form-box"},st=["onSubmit"],lt={class:"form-items"},ct=["disabled"],ut=["value"],mt={class:"form-items"},dt={class:"form-items"},Et=["disabled"],_t=["value"],Tt={class:"form-items form-checkboxes"},St={class:"checkboxes-label"},pt={class:"checkboxes"},At=["id","name","checked","disabled","onInput"],zt={class:"checkbox-label"},Ot={class:"form-items form-checkboxes"},It={class:"checkboxes-label"},Rt={class:"checkboxes"},Nt=["id","name","checked","disabled","onInput"],gt={class:"checkbox-label"},Ut={class:"form-items form-checkboxes"},Ct={class:"checkboxes-label"},Dt={class:"checkboxes"},vt=["id","name","checked","disabled","onInput"],ht={class:"checkbox-label"},ft={class:"form-items form-checkboxes"},Pt={class:"checkboxes-label"},Lt={class:"checkboxes"},wt=["id","name","checked","disabled","onInput"],kt={class:"checkbox-label"},bt={class:"form-items form-checkboxes"},Mt={class:"checkboxes-label"},yt={class:"checkboxes"},Gt=["id","name","checked","disabled","onInput"],Ft={class:"checkbox-label"},Wt={class:"info-box raw-speed-help"},Yt=ot((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),xt={class:"form-buttons"},Bt={class:"confirm",type:"submit"};var Kt=(0,o.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const n=e,r=(0,u.o)(),t=(0,s.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),l=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],m=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],d=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],E=[{label:"ZERO",value:!0},{label:"MIN_ALT",value:!1}],_=[{label:"FILTERED_SPEED",value:!1},{label:"RAW_SPEED",value:!0}],T=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING])),S=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES])),p=(0,o.Fl)((()=>(0,Xe.d2)((new Date).toUTCString(),n.user.timezone,t.language)));function A(e){t.display_ascent=e.display_ascent,t.start_elevation_at_zero=!!e.start_elevation_at_zero&&e.start_elevation_at_zero,t.use_raw_gpx_speed=!!e.use_raw_gpx_speed&&e.use_raw_gpx_speed,t.imperial_units=!!e.imperial_units&&e.imperial_units,t.language=e.language?e.language:"en",t.timezone=e.timezone?e.timezone:"Europe/Paris",t.date_format=e.date_format?e.date_format:"dd/MM/yyyy",t.weekm=!!e.weekm&&e.weekm}function z(){r.dispatch(c.YN.ACTIONS.UPDATE_USER_PREFERENCES,t)}function O(e){t.timezone=e}function I(e){t.start_elevation_at_zero=e}function R(e){t.use_raw_gpx_speed=e}function N(e){t.display_ascent=e}function g(e){t.imperial_units=e}function U(e){t.weekm=e}return(0,o.bv)((()=>{n.user&&A(n.user)})),(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const r=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",at,[(0,o._)("div",it,[(0,s.SU)(S)?((0,o.wg)(),(0,o.j4)(r,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("form",{onSubmit:(0,i.iM)(z,["prevent"])},[(0,o._)("label",lt,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,o.wy)((0,o._)("select",{id:"language","onUpdate:modelValue":n[0]||(n[0]=e=>t.language=e),disabled:(0,s.SU)(T)},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(bn.mT),(e=>((0,o.wg)(),(0,o.iD)("option",{value:e.value,key:e.value},(0,a.zw)(e.label),9,ut)))),128))],8,ct),[[i.bM,t.language]])]),(0,o._)("label",mt,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,o.Wm)(tt,{input:t.timezone,disabled:(0,s.SU)(T),onUpdateTimezone:O},null,8,["input","disabled"])]),(0,o._)("label",dt,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,o.wy)((0,o._)("select",{id:"date_format","onUpdate:modelValue":n[1]||(n[1]=e=>t.date_format=e),disabled:(0,s.SU)(T)},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(p),(e=>((0,o.wg)(),(0,o.iD)("option",{value:e.value,key:e.value},(0,a.zw)(e.label),9,_t)))),128))],8,Et),[[i.bM,t.date_format]])]),(0,o._)("div",Tt,[(0,o._)("span",St,(0,a.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,o._)("div",pt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(l,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.weekm,disabled:(0,s.SU)(T),onInput:e=>U(n.value)},null,40,At),(0,o._)("span",zt,(0,a.zw)(e.$t(`user.PROFILE.${n.label}`)),1)]))),64))])]),(0,o._)("div",Ot,[(0,o._)("span",It,(0,a.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,o._)("div",Rt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(m,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.imperial_units,disabled:(0,s.SU)(T),onInput:e=>g(n.value)},null,40,Nt),(0,o._)("span",gt,(0,a.zw)(e.$t(`user.PROFILE.UNITS.${n.label}`)),1)]))),64))])]),(0,o._)("div",Ut,[(0,o._)("span",Ct,(0,a.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,o._)("div",Dt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(d,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.display_ascent,disabled:(0,s.SU)(T),onInput:e=>N(n.value)},null,40,vt),(0,o._)("span",ht,(0,a.zw)(e.$t(`common.${n.label}`)),1)]))),64))])]),(0,o._)("div",ft,[(0,o._)("span",Pt,(0,a.zw)(e.$t("user.PROFILE.ELEVATION_CHART_START.LABEL")),1),(0,o._)("div",Lt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(E,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.start_elevation_at_zero,disabled:(0,s.SU)(T),onInput:e=>I(n.value)},null,40,wt),(0,o._)("span",kt,(0,a.zw)(e.$t(`user.PROFILE.ELEVATION_CHART_START.${n.label}`)),1)]))),64))])]),(0,o._)("div",bt,[(0,o._)("span",Mt,(0,a.zw)(e.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL")),1),(0,o._)("div",yt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(_,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.use_raw_gpx_speed,disabled:(0,s.SU)(T),onInput:e=>R(n.value)},null,40,Gt),(0,o._)("span",Ft,(0,a.zw)(e.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${n.label}`)),1)]))),64))]),(0,o._)("div",Wt,[(0,o._)("span",null,[Yt,(0,o.Uk)(" "+(0,a.zw)(e.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),(0,o._)("div",xt,[(0,o._)("button",Bt,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[2]||(n[2]=(0,i.iM)((n=>e.$router.push("/profile/preferences")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])],40,st)])])}}});const Ht=(0,Y.Z)(Kt,[["__scopeId","data-v-7d35cb46"]]);var Vt=Ht;const Zt={class:"privacy-policy-text"},$t={class:"last-update"},qt=["innerHTML"],Xt=["innerHTML"];var jt=(0,o.aZ)({__name:"PrivacyPolicy",setup(e){const n=(0,u.o)(),r="Sun, 26 Feb 2023 17:00:00 GMT",t=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.APP_CONFIG])),i=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.LANGUAGE])),m=(0,o.Fl)((()=>n.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),E=(0,o.Fl)((()=>A())),_=(0,o.Fl)((()=>p())),T=(0,o.Fl)((()=>z())),S=["DATA_COLLECTED","INFORMATION_USAGE","INFORMATION_PROTECTION","INFORMATION_DISCLOSURE","SITE_USAGE_BY_CHILDREN","YOUR_CONSENT","ACCOUNT_DELETION","CHANGES_TO_OUR_PRIVACY_POLICY"];function p(){return m.value.timezone?m.value.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone?Intl.DateTimeFormat().resolvedOptions().timeZone:"Europe/Paris"}function A(){return Xe.KD[i.value]}function z(){return(0,Xe.p6)(t.value.privacy_policy&&t.value.privacy_policy_date?`${t.value.privacy_policy_date}`:r,_.value,E.value,!1)}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Zt,[(0,o._)("h1",null,(0,a.zw)((0,a.kC)(e.$t("privacy_policy.TITLE"))),1),(0,o._)("p",$t,(0,a.zw)(e.$t("privacy_policy.LAST_UPDATE"))+": "+(0,a.zw)((0,s.SU)(T)),1),(0,s.SU)(t).privacy_policy?((0,o.wg)(),(0,o.iD)("div",{key:0,innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)((0,s.SU)(t).privacy_policy))},null,8,qt)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},(0,o.Ko)(S,(n=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n},[(0,o._)("h2",null,(0,a.zw)(e.$t(`privacy_policy.CONTENT.${n}.TITLE`)),1),(0,o._)("p",{innerHTML:(0,s.SU)(l.Z)(e.$t(`privacy_policy.CONTENT.${n}.CONTENT`))},null,8,Xt)],64)))),64))]))}});const Qt=(0,Y.Z)(jt,[["__scopeId","data-v-0c1693aa"]]);var Jt=Qt;const eo={id:"user-privacy-policy"},no={key:1},ro={class:"policy-content"},to={for:"accepted_policy",class:"accepted_policy"},oo={class:"form-buttons"},ao={class:"confirm",type:"submit"};var io=(0,o.aZ)({__name:"UserPrivacyPolicyValidation",props:{user:null},setup(e){const n=e,{user:r}=(0,s.BK)(n),t=(0,u.o)(),l=(0,o.Fl)((()=>t.getters[c.SY.GETTERS.ERROR_MESSAGES])),m=(0,s.iH)(!1);function d(){t.dispatch(c.YN.ACTIONS.ACCEPT_PRIVACY_POLICY,m.value)}return(0,o.Ah)((()=>{t.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const t=(0,o.up)("ErrorMessage"),c=(0,o.up)("router-link"),u=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",eo,[(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(t,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,s.SU)(r).accepted_privacy_policy?((0,o.wg)(),(0,o.iD)("div",no,[(0,o._)("p",null,[(0,o.Wm)(u,{keypath:"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY"},{default:(0,o.w5)((()=>[(0,o.Wm)(c,{to:"/privacy-policy"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])),_:1})]),(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=n=>e.$router.push("/profile"))},(0,a.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])):((0,o.wg)(),(0,o.iD)("form",{key:2,onSubmit:n[3]||(n[3]=(0,i.iM)((e=>d()),["prevent"]))},[(0,o._)("div",ro,[(0,o.Wm)(Jt)]),(0,o._)("label",to,[(0,o.wy)((0,o._)("input",{type:"checkbox",id:"accepted_policy",required:"","onUpdate:modelValue":n[1]||(n[1]=e=>m.value=e)},null,512),[[i.e8,m.value]]),(0,o._)("span",null,[(0,o.Wm)(u,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])]),(0,o.Wm)(c,{to:"/profile/edit/account"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("user.I_WANT_TO_DELETE_MY_ACCOUNT")),1)])),_:1}),(0,o._)("div",oo,[(0,o._)("button",ao,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[2]||(n[2]=n=>e.$router.push("/profile"))},(0,a.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],32))])}}});const so=(0,Y.Z)(io,[["__scopeId","data-v-c77e04be"]]);var lo=so;const co=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],uo=["application:write"],mo={id:"new-oauth2-app"},Eo={id:"new-oauth2-title"},_o={id:"apps-form"},To=["onSubmit"],So={class:"form-items"},po={class:"form-item"},Ao={for:"app-name"},zo={class:"form-item"},Oo={for:"app-description"},Io={class:"form-item"},Ro={for:"app-url"},No={class:"form-item"},go={for:"app-redirect-uri"},Uo={class:"form-item-scope"},Co={class:"form-item-scope-label"},Do={class:"scope-label"},vo=["name","checked","onChange"],ho=["innerHTML"],fo={class:"form-buttons"},Po=["disabled"];var Lo=(0,o.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const n=e,r=(0,u.o)(),t=(0,s.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),l=(0,s.qj)([]),m=(0,o.Fl)((()=>T(n.authUser,uo,co)));function d(){const e={client_name:t.client_name,client_description:t.client_description,client_uri:t.client_uri,redirect_uris:[t.redirect_uri],scope:l.sort().join(" ")};r.dispatch(c.Km.ACTIONS.CREATE_CLIENT,e)}function E(e){t.client_description=e}function _(e){const n=l.indexOf(e);n>-1?l.splice(n,1):l.push(e)}function T(e,n,r){const t=[...r];return e.admin&&t.push(...n),t.sort()}return(e,n)=>{const r=(0,o.up)("CustomTextArea");return(0,o.wg)(),(0,o.iD)("div",mo,[(0,o._)("h1",Eo,(0,a.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,o._)("div",_o,[(0,o._)("form",{onSubmit:(0,i.iM)(d,["prevent"])},[(0,o._)("div",So,[(0,o._)("div",po,[(0,o._)("label",Ao,(0,a.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,o.wy)((0,o._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":n[0]||(n[0]=e=>t.client_name=e)},null,512),[[i.nr,t.client_name]])]),(0,o._)("div",zo,[(0,o._)("label",Oo,(0,a.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,o.Wm)(r,{name:"app-description",charLimit:200,input:t.description,onUpdateValue:E},null,8,["input"])]),(0,o._)("div",Io,[(0,o._)("label",Ro,(0,a.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,o.wy)((0,o._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":n[1]||(n[1]=e=>t.client_uri=e)},null,512),[[i.nr,t.client_uri]])]),(0,o._)("div",No,[(0,o._)("label",go,(0,a.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,o.wy)((0,o._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":n[2]||(n[2]=e=>t.redirect_uri=e)},null,512),[[i.nr,t.redirect_uri]])]),(0,o._)("div",Uo,[(0,o._)("div",Co,(0,a.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(m),(n=>((0,o.wg)(),(0,o.iD)("div",{class:"form-item-scope-checkboxes",key:n},[(0,o._)("label",Do,[(0,o._)("input",{type:"checkbox",name:n,checked:l.includes(n),onChange:e=>_(n)},null,40,vo),(0,o._)("code",null,(0,a.zw)(n),1)]),(0,o._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${n}_DESCRIPTION`)},null,8,ho)])))),128))])]),(0,o._)("div",fo,[(0,o._)("button",{class:"confirm",type:"submit",disabled:0===l.length},(0,a.zw)(e.$t("buttons.SUBMIT")),9,Po),(0,o._)("button",{class:"cancel",onClick:n[3]||(n[3]=(0,i.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])],40,To)])])}}});const wo=(0,Y.Z)(Lo,[["__scopeId","data-v-0657ee77"]]);var ko=wo;const bo={id:"authorize-oauth2-app"},Mo={key:0},yo={id:"authorize-oauth2-title"},Go={class:"oauth2-access description-list"},Fo={class:"client-scope"},Wo=["innerHTML"],Yo={class:"authorize-oauth2-buttons"},xo={key:1},Bo={class:"no-app"};var Ko=(0,o.aZ)({__name:"AuthorizeUserApp",setup(e){const n=(0,t.yj)(),r=(0,u.o)(),i=(0,o.Fl)((()=>r.getters[c.Km.GETTERS.CLIENT])),l=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES]));function m(){n.query.client_id&&"string"===typeof n.query.client_id&&r.dispatch(c.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,n.query.client_id)}function d(){r.dispatch(c.Km.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${n.query.client_id}`,redirect_uri:`${n.query.redirect_uri}`,response_type:`${n.query.response_type}`,scope:`${n.query.scope}`,state:`${n.query.state?n.query.state:""}`,code_challenge:`${n.query.code_challenge?n.query.code_challenge:""}`,code_challenge_method:`${n.query.code_challenge_method?n.query.code_challenge_method:""}`})}return(0,o.wF)((()=>m())),(e,n)=>{const r=(0,o.up)("router-link"),t=(0,o.up)("i18n-t"),c=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",bo,[(0,s.SU)(i).client_id?((0,o.wg)(),(0,o.iD)("div",Mo,[(0,o._)("h1",yo,[(0,o.Wm)(t,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,o.w5)((()=>[(0,o.Wm)(r,{to:{name:"UserApp",params:{id:(0,s.SU)(i).id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,s.SU)(i).name),1)])),_:1},8,["to"])])),_:1})]),(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(c,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("div",Go,[(0,o._)("p",null,(0,a.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,o._)("dl",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(i).scope.split(" "),(n=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n},[(0,o._)("dt",Fo,[(0,o._)("code",null,(0,a.zw)(n),1)]),(0,o._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${n}_DESCRIPTION`)},null,8,Wo)],64)))),128))]),(0,o._)("div",Yo,[(0,o._)("button",{class:"danger",onClick:d},(0,a.zw)(e.$t("buttons.AUTHORIZE")),1),(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,o.wg)(),(0,o.iD)("div",xo,[(0,o._)("p",Bo,(0,a.zw)(e.$t("oauth2.NO_APP")),1),(0,o._)("button",{onClick:n[1]||(n[1]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.BACK")),1)]))])}}});const Ho=(0,Y.Z)(Ko,[["__scopeId","data-v-3b2fe9ed"]]);var Vo=Ho;const Zo={id:"oauth2-apps"};var $o=(0,o.aZ)({__name:"index",props:{user:null},setup(e){const n=e,r=(0,u.o)(),{user:t}=(0,s.BK)(n);return(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.commit(c.Km.MUTATIONS.SET_CLIENTS,[])})),(e,n)=>{const r=(0,o.up)("router-view");return(0,o.wg)(),(0,o.iD)("div",Zo,[(0,o.Wm)(r,{authUser:(0,s.SU)(t)},null,8,["authUser"])])}}});const qo=$o;var Xo=qo;const jo={id:"oauth2-app",class:"description-list"},Qo={key:1},Jo={key:0,class:"info-box success-message"},ea=["title"],na={key:0},ra={key:1,class:"app-secret"},ta=["title"],oa={class:"client-scopes"},aa={class:"app-buttons"},ia={key:2},sa={class:"no-app"};var la=(0,o.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const n=e,r=(0,t.yj)(),i=(0,u.o)(),{afterCreation:l,authUser:m}=(0,s.BK)(n),d=(0,o.Fl)((()=>i.getters[c.Km.GETTERS.CLIENT])),E=(0,o.Fl)((()=>i.getters[c.Km.GETTERS.REVOCATION_SUCCESSFUL])),_=(0,s.iH)(!1),T=(0,s.iH)(null),S=(0,s.iH)(!1),p=(0,s.iH)(!1),A=(0,s.iH)(!1);function z(){!l.value&&r.params.id&&"string"===typeof r.params.id&&i.dispatch(c.Km.ACTIONS.GET_CLIENT_BY_ID,+r.params.id)}function O(e){T.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){_.value=e,e||(T.value=null)}function R(e){"oauth2.APP_DELETION_CONFIRMATION"===T.value?i.dispatch(c.Km.ACTIONS.DELETE_CLIENT,e):i.dispatch(c.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function N(){navigator.clipboard.writeText(d.value.client_id),S.value=!0,p.value=!1,setTimeout((()=>{S.value=!1}),3e3)}function g(){d.value.client_secret&&(navigator.clipboard.writeText(d.value.client_secret),p.value=!0,S.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,o.wF)((()=>{z(),navigator.clipboard&&(A.value=!0)})),(0,o.Ah)((()=>{i.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),i.commit(c.Km.MUTATIONS.EMPTY_CLIENT),i.commit(c.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,o.YP)((()=>E.value),(e=>{e&&I(!1)})),(e,n)=>{const r=(0,o.up)("Modal");return(0,o.wg)(),(0,o.iD)("div",jo,[_.value?((0,o.wg)(),(0,o.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(T.value),onConfirmAction:n[0]||(n[0]=e=>R((0,s.SU)(d).id)),onCancelAction:n[1]||(n[1]=e=>I(!1))},null,8,["title","message"])):(0,o.kq)("",!0),(0,s.SU)(d)&&(0,s.SU)(d).client_id?((0,o.wg)(),(0,o.iD)("div",Qo,[(0,s.SU)(l)||(0,s.SU)(E)?((0,o.wg)(),(0,o.iD)("div",Jo,(0,a.zw)(e.$t((0,s.SU)(l)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,o.kq)("",!0),(0,o._)("dl",null,[(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,o._)("dd",null,[(0,o.Uk)((0,a.zw)((0,s.SU)(d).client_id)+" ",1),(0,s.SU)(l)&&A.value?((0,o.wg)(),(0,o.iD)("i",{key:0,class:(0,a.C_)("fa fa-"+(S.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,ea)):(0,o.kq)("",!0)]),(0,s.SU)(l)&&(0,s.SU)(d).client_secret?((0,o.wg)(),(0,o.iD)("dt",na,(0,a.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,o.kq)("",!0),(0,s.SU)(l)&&(0,s.SU)(d).client_secret?((0,o.wg)(),(0,o.iD)("dd",ra,[(0,o.Uk)((0,a.zw)((0,s.SU)(d).client_secret)+" ",1),A.value?((0,o.wg)(),(0,o.iD)("i",{key:0,class:(0,a.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,o.kq)("",!0)])):(0,o.kq)("",!0),(0,o._)("dt",null,(0,a.zw)((0,a.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(Xe.p6)((0,s.SU)(d).issued_at,(0,s.SU)(m).timezone,(0,s.SU)(m).date_format)),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(d).name),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,o._)("dd",{class:(0,a.C_)({"no-description":!(0,s.SU)(d).client_description})},(0,a.zw)((0,s.SU)(d).client_description?(0,s.SU)(d).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(d).website),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(d).redirect_uris.length>0?(0,s.SU)(d).redirect_uris[0]:""),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,o._)("dd",oa,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(d).scope.split(" "),(e=>((0,o.wg)(),(0,o.iD)("span",{class:"client-scope",key:e},[(0,o._)("code",null,(0,a.zw)(e),1)])))),128))])]),(0,o._)("div",aa,[(0,o._)("button",{class:"danger",onClick:n[2]||(n[2]=e=>O(!1))},(0,a.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,o._)("button",{class:"danger",onClick:n[3]||(n[3]=e=>O(!0))},(0,a.zw)(e.$t("oauth2.DELETE_APP")),1),(0,o._)("button",{onClick:n[4]||(n[4]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.BACK")),1)])])):((0,o.wg)(),(0,o.iD)("div",ia,[(0,o._)("p",sa,(0,a.zw)(e.$t("oauth2.NO_APP")),1),(0,o._)("button",{onClick:n[5]||(n[5]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.BACK")),1)]))])}}});const ca=(0,Y.Z)(la,[["__scopeId","data-v-3a844fa2"]]);var ua=ca;const ma={id:"oauth2-apps-list"},da={class:"apps-list"},Ea={key:0},_a={class:"app-issued-at"},Ta={key:1,class:"no-apps"},Sa={class:"app-list-buttons"};var pa=(0,o.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const n=e,r=(0,u.o)(),i=(0,t.yj)(),{authUser:l}=(0,s.BK)(n),m=(0,o.Fl)((()=>r.getters[c.Km.GETTERS.CLIENTS])),d=(0,o.Fl)((()=>r.getters[c.Km.GETTERS.CLIENTS_PAGINATION]));let E=_(i.query);function _(e){const n={};return e.page&&(n.page=(0,qe.z_)(e.page,qe.Hf)),n}function T(e){r.dispatch(c.Km.ACTIONS.GET_CLIENTS,e)}return(0,o.wF)((()=>{T(E)})),(0,o.YP)((()=>i.query),(async e=>{E=_(e),T(E)})),(e,n)=>{const r=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",ma,[(0,o._)("p",da,(0,a.zw)(e.$t("oauth2.APPS_LIST")),1),(0,s.SU)(m).length>0?((0,o.wg)(),(0,o.iD)("ul",Ea,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(m),(n=>((0,o.wg)(),(0,o.iD)("li",{key:n.client_id},[(0,o.Wm)(r,{to:{name:"UserApp",params:{id:n.id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(n.name),1)])),_:2},1032,["to"]),(0,o._)("span",_a,(0,a.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,a.zw)((0,s.SU)(Xe.p6)(n.issued_at,(0,s.SU)(l).timezone,(0,s.SU)(l).date_format)),1)])))),128))])):((0,o.wg)(),(0,o.iD)("div",Ta,(0,a.zw)(e.$t("oauth2.NO_APPS")),1)),(0,s.SU)(m).length>0?((0,o.wg)(),(0,o.j4)(Ye.Z,{key:2,pagination:(0,s.SU)(d),path:"/profile/apps",query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,o.kq)("",!0),(0,o._)("div",Sa,[(0,o._)("button",{onClick:n[0]||(n[0]=n=>e.$router.push("/profile/apps/new"))},(0,a.zw)(e.$t("oauth2.NEW_APP")),1),(0,o._)("button",{onClick:n[1]||(n[1]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)])])}}});const Aa=(0,Y.Z)(pa,[["__scopeId","data-v-efa45ea0"]]);var za=Aa;const Oa={id:"user-sport-preferences"},Ia={key:0,class:"responsive-table"},Ra={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},ga={key:1,class:"profile-buttons"},Ua={class:"text-left"},Ca={key:0},Da={class:"cell-heading"},va=["value"],ha={class:"cell-heading"},fa={key:0,class:"disabled-message"},Pa={key:1,class:"fa fa-refresh fa-spin fa-fw"},La={class:"cell-heading"},wa={class:"cell-heading"},ka=["checked"],ba={class:"cell-heading"},Ma=["value"],ya={key:1},Ga={key:0,class:"action-buttons"},Fa={class:"cell-heading"},Wa=["onClick"],Ya={key:1,class:"edition-buttons"},xa=["disabled"],Ba=["disabled","onClick"],Ka=["disabled"],Ha={key:0,class:"profile-buttons"},Va={key:1,class:"profile-buttons"};var Za=(0,o.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const n=e,r=(0,u.o)(),{t:t}=(0,Te.QT)(),{isEdition:l,user:m}=(0,s.BK)(n),d="#838383",E=(0,o.f3)("sportColors"),_=(0,o.Fl)((()=>r.getters[c.O8.GETTERS.SPORTS])),T=(0,o.Fl)((()=>(0,Se.xH)(_.value,t,"is_active",m.value.sports_list))),S=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING])),p=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES])),A=(0,s.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function z(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:E?E[e.label]:d,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):g()}function O(e){return A.sport_id===e}function I(e){A.color=e.target.value}function R(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function N(e){A.is_active=e.target.checked}function g(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function U(e){e.preventDefault(),r.dispatch(c.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function C(e,n){e.preventDefault(),r.dispatch(c.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,n)}return(0,o.YP)((()=>S.value),(e=>{e||p.value||g()})),(e,n)=>{const r=(0,o.up)("SportImage"),t=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",Oa,[(0,s.SU)(_).length>0?((0,o.wg)(),(0,o.iD)("div",Ia,[(0,o._)("div",Ra,[(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("div",Na,[(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=(0,i.iM)((n=>e.$router.push("/profile/sports")),["prevent"]))},(0,a.zw)(e.$t("buttons.BACK")),1)])):((0,o.wg)(),(0,o.iD)("div",ga,[(0,o._)("button",{onClick:n[1]||(n[1]=n=>e.$router.push("/profile/edit/sports"))},(0,a.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,o._)("button",{onClick:n[2]||(n[2]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)]))]),(0,o._)("table",null,[(0,o._)("thead",null,[(0,o._)("tr",null,[(0,o._)("th",null,(0,a.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,o._)("th",Ua,(0,a.zw)(e.$t("workouts.SPORT",0)),1),(0,o._)("th",null,(0,a.zw)(e.$t("workouts.WORKOUT",0)),1),(0,o._)("th",null,(0,a.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,o._)("th",null,(0,a.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("th",Ca,(0,a.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,o.kq)("",!0)])]),(0,o._)("tbody",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(T),(i=>((0,o.wg)(),(0,o.iD)("tr",{key:i.id},[(0,o._)("td",null,[(0,o._)("span",Da,(0,a.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),O(i.id)?((0,o.wg)(),(0,o.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,va)):((0,o.wg)(),(0,o.j4)(r,{key:1,title:i.translatedLabel,"sport-label":i.label,color:i.color?i.color:(0,s.SU)(E)[i.label]},null,8,["title","sport-label","color"]))]),(0,o._)("td",{class:(0,a.C_)(["sport-label",{"disabled-sport":!i.is_active}])},[(0,o._)("span",ha,(0,a.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,o.Uk)(" "+(0,a.zw)(i.translatedLabel)+" ",1),i.is_active?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",fa," ("+(0,a.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,s.SU)(S)&&O(i.id)?((0,o.wg)(),(0,o.iD)("i",Pa)):(0,o.kq)("",!0),(0,s.SU)(p)&&A.sport_id===i.id?((0,o.wg)(),(0,o.j4)(t,{key:2,message:(0,s.SU)(p)},null,8,["message"])):(0,o.kq)("",!0)],2),(0,o._)("td",{class:(0,a.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,o._)("span",La,(0,a.zw)(e.$t("workouts.WORKOUT",0)),1),(0,o._)("i",{class:(0,a.C_)("fa fa"+((0,s.SU)(m).sports_list.includes(i.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,o._)("td",{class:(0,a.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,o._)("span",wa,(0,a.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),O(i.id)&&i.is_active?((0,o.wg)(),(0,o.iD)("input",{key:0,type:"checkbox",checked:i.is_active_for_user,onChange:N},null,40,ka)):((0,o.wg)(),(0,o.iD)("i",{key:1,class:(0,a.C_)("fa fa"+(i.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,o._)("td",{class:(0,a.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,o._)("span",ba,(0,a.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),O(i.id)&&i.is_active?((0,o.wg)(),(0,o.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:A.stopped_speed_threshold,onInput:R},null,40,Ma)):((0,o.wg)(),(0,o.iD)("span",ya,(0,a.zw)(i.stopped_speed_threshold),1))],2),(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("td",Ga,[(0,o._)("span",Fa,(0,a.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,o.wg)(),(0,o.iD)("button",{key:0,onClick:e=>z(i)},(0,a.zw)(e.$t("buttons.EDIT")),9,Wa)):(0,o.kq)("",!0),O(i.id)?((0,o.wg)(),(0,o.iD)("div",Ya,[(0,o._)("button",{disabled:(0,s.SU)(S),onClick:U},(0,a.zw)(e.$t("buttons.SUBMIT")),9,xa),(0,o._)("button",{disabled:(0,s.SU)(S),onClick:e=>C(e,i.id)},(0,a.zw)(e.$t("buttons.RESET")),9,Ba),(0,o._)("button",{disabled:(0,s.SU)(S),onClick:n[3]||(n[3]=e=>z(null))},(0,a.zw)(e.$t("buttons.CANCEL")),9,Ka)])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])))),128))])]),(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("div",Ha,[(0,o._)("button",{class:"cancel",onClick:n[4]||(n[4]=(0,i.iM)((n=>e.$router.push("/profile/sports")),["prevent"]))},(0,a.zw)(e.$t("buttons.BACK")),1)])):((0,o.wg)(),(0,o.iD)("div",Va,[(0,o._)("button",{onClick:n[5]||(n[5]=n=>e.$router.push("/profile/edit/sports"))},(0,a.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,o._)("button",{onClick:n[6]||(n[6]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)]))])):(0,o.kq)("",!0)])}}});const $a=(0,Y.Z)(Za,[["__scopeId","data-v-74e52489"]]);var qa=$a,Xa=r(2894);const ja=e=>((0,o.dD)("data-v-7b2a3a04"),e=e(),(0,o.Cn)(),e),Qa={class:"about-text"},Ja=["innerHTML"],ei=ja((()=>(0,o._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),ni={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ri=ja((()=>(0,o._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ti={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oi=ja((()=>(0,o._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),ai=ja((()=>(0,o._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),ii={key:0},si=ja((()=>(0,o._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),li=["href"],ci={key:1},ui=["href"],mi={class:"about-instance"},di=["innerHTML"];var Ei=(0,o.aZ)({__name:"About",setup(e){const n=(0,u.o)(),r=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.APP_CONFIG])),t=(0,o.Fl)((()=>i()));function i(){const e={};return"visualcrossing"===r.value.weather_provider&&(e["name"]="Visual Crossing",e["url"]="https://www.visualcrossing.com"),e}return(e,n)=>{const i=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",Qa,[(0,o._)("div",null,[(0,o._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,Ja),(0,o._)("p",null,[ei,(0,o._)("a",ni,(0,a.zw)((0,a.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,o._)("p",null,[ri,(0,o._)("a",ti,(0,a.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,o._)("p",null,[oi,(0,o.Wm)(i,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,o.w5)((()=>[ai])),_:1})]),(0,s.SU)(r).admin_contact?((0,o.wg)(),(0,o.iD)("div",ii,[si,(0,o._)("a",{href:`mailto:${(0,s.SU)(r).admin_contact}`},(0,a.zw)(e.$t("about.CONTACT_ADMIN")),9,li)])):(0,o.kq)("",!0),(0,s.SU)(t)&&(0,s.SU)(t).name?((0,o.wg)(),(0,o.iD)("div",ci,[(0,o.Uk)((0,a.zw)(e.$t("about.WEATHER_DATA_FROM"))+" ",1),(0,o._)("a",{href:(0,s.SU)(t).url,target:"_blank",rel:"nofollow noopener"},(0,a.zw)((0,s.SU)(t).name),9,ui)])):(0,o.kq)("",!0),(0,s.SU)(r).about?((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[(0,o._)("p",mi,(0,a.zw)(e.$t("about.ABOUT_THIS_INSTANCE")),1),(0,o._)("div",{innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)((0,s.SU)(r).about))},null,8,di)],64)):(0,o.kq)("",!0)])])}}});const _i=(0,Y.Z)(Ei,[["__scopeId","data-v-7b2a3a04"]]);var Ti=_i;const Si={id:"bike"},pi=["src"];function Ai(e,n){return(0,o.wg)(),(0,o.iD)("div",Si,[(0,o._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,pi)])}const zi={},Oi=(0,Y.Z)(zi,[["render",Ai],["__scopeId","data-v-795f7f5f"]]);var Ii=Oi;const Ri={id:"about",class:"view"},Ni={class:"container"},gi={class:"container-sub"},Ui={class:"container-sub about-details"};var Ci=(0,o.aZ)({__name:"AboutView",setup(e){return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Ri,[(0,o._)("div",Ni,[(0,o._)("div",gi,[(0,o.Wm)(Ii)]),(0,o._)("div",Ui,[(0,o.Wm)(Ti)])])]))}});const Di=(0,Y.Z)(Ci,[["__scopeId","data-v-bffb50d0"]]);var vi=Di,hi=r(1818),fi=r(2056);const Pi=e=>((0,o.dD)("data-v-645a9e33"),e=e(),(0,o.Cn)(),e),Li={class:"timeline-workout"},wi={class:"box"},ki={class:"workout-user-date"},bi={class:"workout-user"},Mi=["title"],yi={key:0},Gi={key:1,class:"no-map"},Fi={class:"img"},Wi={class:"data"},Yi=Pi((()=>(0,o._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),xi={key:0},Bi={class:"data"},Ki=Pi((()=>(0,o._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Hi={key:0,class:"data elevation"},Vi=["alt"],Zi={class:"data-values"},$i={key:1,class:"data altitude"},qi=Pi((()=>(0,o._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),Xi={class:"data-values"};var ji=(0,o.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const n=e,r=(0,u.o)(),{user:t,workout:i,sport:l,useImperialUnits:m}=(0,s.BK)(n),d=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.LOCALE]));function E(e){return e&&null!==e.ascent&&null!==e.descent}return(e,n)=>{const r=(0,o.up)("router-link"),c=(0,o.up)("SportImage"),u=(0,o.up)("Distance");return(0,o.wg)(),(0,o.iD)("div",Li,[(0,o._)("div",wi,[(0,o._)("div",ki,[(0,o._)("div",bi,[(0,o.Wm)(xe.Z,{user:(0,s.SU)(t)},null,8,["user"]),(0,s.SU)(t).username?((0,o.wg)(),(0,o.j4)(r,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,s.SU)(t).username}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,s.SU)(t).username),1)])),_:1},8,["to"])):(0,o.kq)("",!0)]),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(r,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,s.SU)(i).id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,s.SU)(i).title),1)])),_:1},8,["to"])):(0,o.kq)("",!0),(0,s.SU)(i).workout_date&&(0,s.SU)(t)?((0,o.wg)(),(0,o.iD)("div",{key:1,class:"workout-date",title:(0,s.SU)(Xe.p6)((0,s.SU)(i).workout_date,(0,s.SU)(t).timezone,(0,s.SU)(t).date_format)},(0,a.zw)((0,s.SU)(hi.Z)(new Date((0,s.SU)(i).workout_date),new Date,{addSuffix:!0,locale:(0,s.SU)(d)})),9,Mi)):(0,o.kq)("",!0)]),(0,o._)("div",{class:(0,a.C_)(["workout-map",{"no-cursor":!(0,s.SU)(i)}]),onClick:n[0]||(n[0]=n=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,s.SU)(i)?((0,o.wg)(),(0,o.iD)("div",yi,[(0,s.SU)(i).with_gpx?((0,o.wg)(),(0,o.j4)(fi.Z,{key:0,workout:(0,s.SU)(i)},null,8,["workout"])):((0,o.wg)(),(0,o.iD)("div",Gi,(0,a.zw)(e.$t("workouts.NO_MAP")),1))])):(0,o.kq)("",!0)],2),(0,o._)("div",{class:(0,a.C_)(["workout-data",{"without-gpx":(0,s.SU)(i)&&!(0,s.SU)(i).with_gpx}]),onClick:n[1]||(n[1]=n=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,o._)("div",Fi,[(0,s.SU)(l).label?((0,o.wg)(),(0,o.j4)(c,{key:0,"sport-label":(0,s.SU)(l).label,color:(0,s.SU)(l).color},null,8,["sport-label","color"])):(0,o.kq)("",!0)]),(0,o._)("div",Wi,[Yi,(0,s.SU)(i)?((0,o.wg)(),(0,o.iD)("span",xi,(0,a.zw)((0,s.SU)(i).moving),1)):(0,o.kq)("",!0)]),(0,o._)("div",Bi,[Ki,(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:0,distance:(0,s.SU)(i).distance,digits:3,unitFrom:"km",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0)]),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,o.wg)(),(0,o.iD)("div",Hi,[(0,o._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Vi),(0,o._)("div",Zi,[(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:0,distance:(0,s.SU)(i).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0),(0,o.Uk)("/ "),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:1,distance:(0,s.SU)(i).max_alt,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0),E((0,s.SU)(i))?((0,o.wg)(),(0,o.iD)("div",$i,[qi,(0,o._)("div",Xi,[(0,o.Uk)(" +"),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:0,distance:(0,s.SU)(i).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0),(0,o.Uk)("/- "),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:1,distance:(0,s.SU)(i).descent,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)],2)])])}}});const Qi=(0,Y.Z)(ji,[["__scopeId","data-v-645a9e33"]]);var Ji=Qi,es=r(5630),ns=r(3768);const rs={id:"timeline"},ts={class:"section-title"},os={key:0},as={key:1},is={key:1,class:"more-workouts"};var ss=(0,o.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const n=e,r=(0,u.o)(),{sports:t,user:i}=(0,s.BK)(n),l=(0,s.iH)(1),m=5,d=n.user.nb_workouts>=m?m:n.user.nb_workouts;(0,o.wF)((()=>T()));const E=(0,o.Fl)((()=>r.getters[c.aX.GETTERS.TIMELINE_WORKOUTS])),_=(0,o.Fl)((()=>E.value.length>0&&null!==E.value[E.value.length-1].previous_workout));function T(){r.dispatch(c.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:l.value,per_page:m,...ns.eR})}function S(){l.value+=1,r.dispatch(c.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:l.value,per_page:m,...ns.eR})}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",rs,[(0,o._)("div",ts,(0,a.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,s.SU)(i).nb_workouts>0&&0===(0,s.SU)(E).length?((0,o.wg)(),(0,o.iD)("div",os,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)([...Array((0,s.SU)(d)).keys()],(e=>((0,o.wg)(),(0,o.j4)(Ji,{user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,o.wg)(),(0,o.iD)("div",as,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(E),(e=>((0,o.wg)(),(0,o.j4)(Ji,{workout:e,sport:(0,s.SU)(E).length>0?(0,s.SU)(t).filter((n=>n.id===e.sport_id))[0]:null,user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,s.SU)(E).length?((0,o.wg)(),(0,o.j4)(es.Z,{key:0})):(0,o.kq)("",!0),(0,s.SU)(_)?((0,o.wg)(),(0,o.iD)("div",is,[(0,o._)("button",{onClick:S},(0,a.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,o.kq)("",!0)]))]))}});const ls=(0,Y.Z)(ss,[["__scopeId","data-v-35567bf2"]]);var cs=ls,us=r(1640),ms=r(4559),ds=r(7349),Es=r(1743),_s=r(9160),Ts=r(1085);const Ss=["title"];var ps=(0,o.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const n=e,{displayHARecord:r,workout:t,sportLabel:a,sportColor:i}=(0,s.BK)(n);return(e,n)=>{const l=(0,o.up)("SportImage");return(0,o.wg)(),(0,o.iD)("div",{class:"calendar-workout",onClick:n[0]||(n[0]=n=>e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(t).id}}))},[(0,o.Wm)(l,{"sport-label":(0,s.SU)(a),title:(0,s.SU)(t).title,color:(0,s.SU)(i)},null,8,["sport-label","title","color"]),(0,o._)("sup",null,[(0,s.SU)(t).records.length>0?((0,o.wg)(),(0,o.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,s.SU)(t).records.filter((e=>!!(0,s.SU)(r)||"HA"!==e.record_type)).map((n=>` ${e.$t(`workouts.RECORD_${n.record_type}`)}`))},null,8,Ss)):(0,o.kq)("",!0)])])}}});const As=ps;var zs=As;const Os={class:"donut-chart"},Is={height:"34",width:"34",viewBox:"0 0 34 34"},Rs=["stroke","stroke-dashoffset","transform"];var Ns=(0,o.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const n=e,{colors:r,datasets:t}=(0,s.BK)(n);let a=-90;const i=16,l=16,c=14,u=2*Math.PI*c;function m(e,n){return n-e*n}function d(e,n){const r=`rotate(${a}, ${i}, ${l})`;return a=360*n+a,r}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Os,[((0,o.wg)(),(0,o.iD)("svg",Is,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(Object.entries((0,s.SU)(t)),((e,n)=>((0,o.wg)(),(0,o.iD)("g",{key:n},[(0,o._)("circle",{cx:i,cy:l,r:c,fill:"transparent",stroke:(0,s.SU)(r)[+e[0]],"stroke-dashoffset":m(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:d(n,e[1].percentage)},null,8,Rs)])))),128))]))]))}});const gs=Ns;var Us=gs;const Cs={class:"calendar-workouts-chart"},Ds={class:"workouts-count"},vs={key:0,class:"workouts-pane"},hs={class:"more-workouts"};var fs=(0,o.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const n=e,{colors:r,datasets:t,sports:i,workouts:l}=(0,s.BK)(n),c=(0,s.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,n)=>{const m=(0,o.Q2)("click-outside");return(0,o.wg)(),(0,o.iD)("div",Cs,[(0,o._)("div",{class:"workouts-chart",onClick:u},[(0,o._)("div",Ds,(0,a.zw)((0,s.SU)(l).length),1),(0,o.Wm)(Us,{datasets:(0,s.SU)(t),colors:(0,s.SU)(r)},null,8,["datasets","colors"])]),c.value?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",vs,[(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",hs,[(0,o._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(l),((e,n)=>((0,o.wg)(),(0,o.j4)(zs,{key:n,workout:e,sportLabel:(0,s.SU)(Se.PA)(e,(0,s.SU)(i)),sportColor:(0,s.SU)(Se.CM)(e,(0,s.SU)(i))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[m,u]])]))])}}});const Ps=(0,Y.Z)(fs,[["__scopeId","data-v-52d4310a"]]);var Ls=Ps;const ws={class:"calendar-workouts"},ks={class:"desktop-display"},bs={key:0,class:"workouts-display"},Ms={key:1,class:"donut-display"},ys={class:"mobile-display"},Gs={key:0,class:"donut-display"};var Fs=(0,o.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const n=e,{displayHARecord:r,workouts:t,sports:a}=(0,s.BK)(n),i=(0,o.Fl)((()=>(0,ns.BN)(n.workouts))),l=(0,o.Fl)((()=>(0,Se.Yx)(n.sports))),c=6;return(e,n)=>((0,o.wg)(),(0,o.iD)("div",ws,[(0,o._)("div",ks,[(0,s.SU)(t).length<=c?((0,o.wg)(),(0,o.iD)("div",bs,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(t).slice(0,c),((e,n)=>((0,o.wg)(),(0,o.j4)(zs,{key:n,displayHARecord:(0,s.SU)(r),workout:e,sportLabel:(0,s.SU)(Se.PA)(e,(0,s.SU)(a)),sportColor:(0,s.SU)(Se.CM)(e,(0,s.SU)(a))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,o.wg)(),(0,o.iD)("div",Ms,[(0,o.Wm)(Ls,{workouts:(0,s.SU)(t),sports:(0,s.SU)(a),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,o._)("div",ys,[(0,s.SU)(t).length>0?((0,o.wg)(),(0,o.iD)("div",Gs,[(0,o.Wm)(Ls,{workouts:(0,s.SU)(t),sports:(0,s.SU)(a),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,o.kq)("",!0)])]))}});const Ws=Fs;var Ys=Ws;const xs={class:"calendar-cells"},Bs={class:"calendar-cell-day"};var Ks=(0,o.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const n=e,{currentDay:r,displayHARecord:t,endDate:i,sports:l,startDate:c,timezone:u,weekStartingMonday:m,workouts:d}=(0,s.BK)(n),E=(0,s.iH)([]);function _(){E.value=[];let e=c.value;while(e<=i.value){const n=[];for(let r=0;r<7;r++)n.push(e),e=(0,ds.Z)(e,1);E.value.push(n)}}function T(e){return m.value?[5,6].includes(e):[0,6].includes(e)}function S(e,n){return n?n.filter((n=>(0,Es.Z)((0,Xe.eB)(n.workout_date,u.value),e))).reverse():[]}return(0,o.bv)((()=>_())),(0,o.YP)((()=>n.currentDay),(()=>_())),(e,n)=>((0,o.wg)(),(0,o.iD)("div",xs,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(E.value,((e,n)=>((0,o.wg)(),(0,o.iD)("div",{class:"calendar-row",key:n},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e,((e,n)=>((0,o.wg)(),(0,o.iD)("div",{class:(0,a.C_)(["calendar-cell",{"disabled-cell":!(0,s.SU)(_s.Z)(e,(0,s.SU)(r)),"week-end":T(n),today:(0,s.SU)(Ts.Z)(e)}]),key:n},[(0,o.Wm)(Ys,{workouts:S(e,(0,s.SU)(d)),sports:(0,s.SU)(l),displayHARecord:(0,s.SU)(t)},null,8,["workouts","sports","displayHARecord"]),(0,o._)("div",Bs,(0,a.zw)((0,s.SU)(Or.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const Hs=Ks;var Vs=Hs;const Zs={class:"calendar-days"};var $s=(0,o.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const n=e,r=[];for(let t=0;t<7;t++)r.push((0,ds.Z)(n.startDate,t));return(n,t)=>((0,o.wg)(),(0,o.iD)("div",Zs,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(r,((n,r)=>(0,o._)("div",{class:"calendar-day",key:r},(0,a.zw)((0,s.SU)(Or.Z)(n,"EEE",{locale:e.localeOptions})),1))),64))]))}});const qs=$s;var Xs=qs;const js={class:"calendar-header"},Qs=(0,o._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Js=[Qs],el={class:"calendar-month"},nl=(0,o._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),rl=[nl];var tl=(0,o.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:n}){const r=e,{day:t,localeOptions:i}=(0,s.BK)(r);return(e,r)=>((0,o.wg)(),(0,o.iD)("div",js,[(0,o._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:r[0]||(r[0]=e=>n("displayPreviousMonth"))},Js),(0,o._)("div",el,[(0,o._)("span",null,(0,a.zw)((0,s.SU)(Or.Z)((0,s.SU)(t),"MMM yyyy",{locale:(0,s.SU)(i)})),1)]),(0,o._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:r[1]||(r[1]=e=>n("displayNextMonth"))},rl)]))}});const ol=tl;var al=ol;const il={id:"user-calendar"},sl={class:"calendar-card box"};var ll=(0,o.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const n=e,r=(0,u.o)(),{sports:t,user:a}=(0,s.BK)(n),i="yyyy-MM-dd",l=(0,s.iH)(new Date),m=(0,s.iH)((0,Xe.yx)(l.value,n.user.weekm)),d=(0,o.Fl)((()=>r.getters[c.aX.GETTERS.CALENDAR_WORKOUTS])),E=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.LOCALE]));function _(){m.value=(0,Xe.yx)(l.value,n.user.weekm);const e={from:(0,Or.Z)(m.value.start,i),to:(0,Or.Z)(m.value.end,i),page:1,per_page:100,...ns.eR};r.dispatch(c.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function T(){l.value=(0,us.Z)(l.value,1),_()}function S(){l.value=(0,ms.Z)(l.value,1),_()}return(0,o.wF)((()=>_())),(e,n)=>((0,o.wg)(),(0,o.iD)("div",il,[(0,o._)("div",sl,[(0,o.Wm)(al,{day:l.value,"locale-options":(0,s.SU)(E),onDisplayNextMonth:T,onDisplayPreviousMonth:S},null,8,["day","locale-options"]),(0,o.Wm)(Xs,{"start-date":m.value.start,"locale-options":(0,s.SU)(E)},null,8,["start-date","locale-options"]),(0,o.Wm)(Vs,{currentDay:l.value,displayHARecord:(0,s.SU)(a).display_ascent,"end-date":m.value.end,sports:(0,s.SU)(t),"start-date":m.value.start,timezone:(0,s.SU)(a).timezone,workouts:(0,s.SU)(d),weekStartingMonday:(0,s.SU)(a).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const cl=ll;var ul=cl,ml=r(3703),dl=r(4135),El=r(436);const _l={class:"user-month-stats"};var Tl=(0,o.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const n=e,{sports:r,user:t}=(0,s.BK)(n),i=new Date,l={duration:"week",start:(0,ml.Z)(i),end:(0,dl.Z)(i)},c=n.sports.map((e=>e.id));return(e,n)=>{const i=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",_l,[(0,o.Wm)(i,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,o.w5)((()=>[(0,o.Wm)(El.Z,{sports:(0,s.SU)(r),user:(0,s.SU)(t),"chart-params":l,"displayed-sport-ids":(0,s.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Sl=(0,Y.Z)(Tl,[["__scopeId","data-v-1bcddc12"]]);var pl=Sl,Al=r(2540),zl=r(3649);const{locale:Ol}=Al.Z.global,Il=(e,n,r,t)=>{const o="km",a=r?zl.Dl[o].defaultTarget:o,i="m",s=r?zl.Dl[i].defaultTarget:i;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,zl.sC)(+e.value,o,a,2)} ${a}/h`;break;case"FD":l=`${(0,zl.sC)(+e.value,o,a,3)} ${a}`;break;case"HA":l=`${(0,zl.sC)(+e.value,i,s,2)} ${s}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Xe.p6)(e.workout_date,n,t,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Rl=(e,n)=>{const r=e.label.toLowerCase(),t=n.label.toLowerCase();return r>t?1:r(a=(0,Xe.mh)(a,Ol.value),e.filter((e=>!!o||"HA"!==e.record_type)).reduce(((e,o)=>{const i=n.find((e=>e.id===o.sport_id));return i&&i.label&&(void 0===e[i.translatedLabel]&&(e[i.translatedLabel]={label:i.label,color:i.color,records:[]}),e[i.translatedLabel].records.push(Il(o,r,t,a))),e}),{})),gl={class:"records-card"},Ul={class:"record-type"},Cl={class:"record-value"},Dl={class:"record-date"};var vl=(0,o.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const n=e,{records:r,sportTranslatedLabel:t}=(0,s.BK)(n),{t:i}=(0,Te.QT)();function l(e){const n=[];return e.map((e=>{n.push({...e,label:i(`workouts.RECORD_${e.record_type}`)})})),n.sort(Rl)}return(e,n)=>{const i=(0,o.up)("SportImage"),c=(0,o.up)("router-link"),u=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",gl,[(0,o.Wm)(u,null,{title:(0,o.w5)((()=>[(0,o.Wm)(i,{"sport-label":(0,s.SU)(r).label,color:(0,s.SU)(r).color},null,8,["sport-label","color"]),(0,o.Uk)(" "+(0,a.zw)((0,s.SU)(t)),1)])),content:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(l((0,s.SU)(r).records),(e=>((0,o.wg)(),(0,o.iD)("div",{class:"record",key:e.id},[(0,o._)("span",Ul,(0,a.zw)(e.label),1),(0,o._)("span",Cl,(0,a.zw)(e.value),1),(0,o._)("span",Dl,[(0,o.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const hl=(0,Y.Z)(vl,[["__scopeId","data-v-8d17c606"]]);var fl=hl;const Pl=e=>((0,o.dD)("data-v-f0c85cb8"),e=e(),(0,o.Cn)(),e),Ll={class:"user-records-section"},wl={class:"section-title"},kl=Pl((()=>(0,o._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),bl={class:"user-records"},Ml={key:0,class:"no-records"};var yl=(0,o.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const n=e,{t:r}=(0,Te.QT)(),t=(0,o.Fl)((()=>Nl(n.user.records,(0,Se.xH)(n.sports,r),n.user.timezone,n.user.imperial_units,n.user.display_ascent,n.user.date_format)));return(n,r)=>((0,o.wg)(),(0,o.iD)("div",Ll,[(0,o._)("div",wl,[kl,(0,o.Uk)(" "+(0,a.zw)(n.$t("workouts.RECORD",2)),1)]),(0,o._)("div",bl,[0===Object.keys((0,s.SU)(t)).length?((0,o.wg)(),(0,o.iD)("div",Ml,(0,a.zw)(n.$t("workouts.NO_RECORDS")),1)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(Object.keys((0,s.SU)(t)).sort(),(n=>((0,o.wg)(),(0,o.j4)(fl,{sportTranslatedLabel:n,records:(0,s.SU)(t)[n],key:n,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const Gl=(0,Y.Z)(yl,[["__scopeId","data-v-f0c85cb8"]]);var Fl=Gl;const Wl={id:"user-stats"};var Yl=(0,o.aZ)({__name:"index",props:{user:null},setup(e){const n=e,{t:r}=(0,Te.QT)(),{user:t}=(0,s.BK)(n),a=(0,o.Fl)((()=>n.user.total_duration)),i=(0,o.Fl)((()=>_(a))),l="km",c=t.value.imperial_units?zl.Dl[l].defaultTarget:l,u=(0,o.Fl)((()=>t.value.imperial_units?(0,zl.sC)(t.value.total_distance,l,c,2):parseFloat(t.value.total_distance.toFixed(2)))),m="m",d=t.value.imperial_units?zl.Dl[m].defaultTarget:m,E=(0,o.Fl)((()=>t.value.imperial_units?(0,zl.sC)(t.value.total_ascent,m,d,2):parseFloat(t.value.total_ascent.toFixed(2))));function _(e){const n=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?r("common.DAY",2):r("common.DAY",1)}`:`0 ${r("common.DAY",2)},`,duration:`${n.split(":")[0]}h ${n.split(":")[1]}min`}}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Wl,[(0,o.Wm)(Q,{icon:"calendar",value:(0,s.SU)(t).nb_workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(t).nb_workouts)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"road",value:(0,s.SU)(u),text:"mi"===(0,s.SU)(c)?"miles":(0,s.SU)(c)},null,8,["value","text"]),(0,s.SU)(t).display_ascent?((0,o.wg)(),(0,o.j4)(Q,{key:0,icon:"location-arrow",value:(0,s.SU)(E),text:"ft"===(0,s.SU)(d)?"feet":(0,s.SU)(d)},null,8,["value","text"])):(0,o.kq)("",!0),(0,o.Wm)(Q,{icon:"clock-o",value:(0,s.SU)(i).days,text:(0,s.SU)(i).duration},null,8,["value","text"]),(0,s.SU)(t).display_ascent?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(Q,{key:1,icon:"tags",value:(0,s.SU)(t).nb_sports,text:e.$t("workouts.SPORT",(0,s.SU)(t).nb_sports)},null,8,["value","text"]))]))}});const xl=Yl;var Bl=xl;const Kl={class:"privacy-policy-message"};function Hl(e,n){const r=(0,o.up)("router-link"),t=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",Kl,[(0,o._)("span",null,[(0,o.Wm)(t,{keypath:"user.LAST_PRIVACY_POLICY_TO_VALIDATE"},{default:(0,o.w5)((()=>[(0,o.Wm)(r,{to:"/profile/edit/privacy-policy"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("user.REVIEW")),1)])),_:1})])),_:1})])])}const Vl={},Zl=(0,Y.Z)(Vl,[["render",Hl],["__scopeId","data-v-05532ad6"]]);var $l=Zl;const ql=e=>((0,o.dD)("data-v-40886688"),e=e(),(0,o.Cn)(),e),Xl={key:0,id:"dashboard",class:"view"},jl={class:"container mobile-menu"},Ql={class:"box"},Jl=ql((()=>(0,o._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),ec=[Jl],nc=ql((()=>(0,o._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),rc=[nc],tc=ql((()=>(0,o._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),oc=[tc],ac=ql((()=>(0,o._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),ic=[ac],sc={key:0,class:"container privacy-policy-message"},lc={class:"container"},cc={class:"container dashboard-container"},uc={class:"left-container dashboard-sub-container"},mc={class:"right-container dashboard-sub-container"},dc=ql((()=>(0,o._)("div",{id:"bottom"},null,-1))),Ec={key:1,class:"app-loading"};var _c=(0,o.aZ)({__name:"Dashboard",setup(e){const n=(0,u.o)(),r=(0,o.Fl)((()=>n.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),t=(0,o.Fl)((()=>n.getters[c.O8.GETTERS.SPORTS])),i=(0,s.iH)("calendar");function l(e){i.value=e}return(0,o.wF)((()=>n.dispatch(c.YN.ACTIONS.GET_USER_PROFILE))),(e,n)=>{const c=(0,o.up)("Loader");return(0,s.SU)(r).username&&(0,s.SU)(t).length>0?((0,o.wg)(),(0,o.iD)("div",Xl,[(0,o._)("div",jl,[(0,o._)("div",Ql,[(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:n[0]||(n[0]=e=>l("calendar"))},ec,2),(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:n[1]||(n[1]=e=>l("chart"))},rc,2),(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:n[2]||(n[2]=e=>l("timeline"))},oc,2),(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:n[3]||(n[3]=e=>l("records"))},ic,2)])]),(0,s.SU)(r).accepted_privacy_policy?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",sc,[(0,o.Wm)($l)])),(0,o._)("div",lc,[(0,o.Wm)(Bl,{user:(0,s.SU)(r)},null,8,["user"])]),(0,o._)("div",cc,[(0,o._)("div",uc,[(0,o.Wm)(pl,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),(0,o.Wm)(Fl,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),(0,o._)("div",mc,[(0,o.Wm)(ul,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),(0,o.Wm)(cs,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),dc])):((0,o.wg)(),(0,o.iD)("div",Ec,[(0,o.Wm)(c)]))}}});const Tc=(0,Y.Z)(_c,[["__scopeId","data-v-40886688"]]);var Sc=Tc,pc=r(8273);const Ac={class:"not-found view"};var zc=(0,o.aZ)({__name:"NotFoundView",setup(e){return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Ac,[(0,o.Wm)(pc.Z)]))}});const Oc=zc;var Ic=Oc;const Rc={id:"privacy-policy",class:"view"},Nc={class:"container"},gc=(0,o._)("div",{id:"bottom"},null,-1);var Uc=(0,o.aZ)({__name:"PrivacyPolicyView",setup(e){const n=(0,u.o)();return(0,o.wF)((()=>{n.dispatch(c.SY.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)})),(e,n)=>((0,o.wg)(),(0,o.iD)("div",Rc,[(0,o._)("div",Nc,[(0,o.Wm)(Jt)]),gc]))}});const Cc=Uc;var Dc=Cc,vc=r(776);const hc={id:"loginOrRegister",class:"view"},fc={class:"container"},Pc={class:"container-sub"},Lc={class:"container-sub"};var wc=(0,o.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const n=e,{action:r}=(0,s.BK)(n);return(e,n)=>((0,o.wg)(),(0,o.iD)("div",hc,[(0,o._)("div",fc,[(0,o._)("div",Pc,[(0,o.Wm)(Ii)]),(0,o._)("div",Lc,[(0,o.Wm)(vc.Z,{action:(0,s.SU)(r)},null,8,["action"])])])]))}});const kc=(0,Y.Z)(wc,[["__scopeId","data-v-58043acb"]]);var bc=kc;const Mc=e=>{const n=/(\/profile)(\/edit)*(\/*)/,r=e.replace(n,"").toUpperCase();return""===r?"PROFILE":r.toUpperCase()},yc=[{path:"/",name:"Dashboard",component:Sc},{path:"/login",name:"Login",component:bc,props:{action:"login"}},{path:"/register",name:"Register",component:bc,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>r.e(845).then(r.bind(r,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>r.e(24).then(r.bind(r,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>r.e(24).then(r.bind(r,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>r.e(845).then(r.bind(r,8793))},{path:"/profile",name:"Profile",component:()=>r.e(845).then(r.bind(r,3537)),children:[{path:"",name:"UserProfile",component:wn,props:e=>({tab:Mc(e.path)}),children:[{path:"",name:"UserInfos",component:kn.Z},{path:"preferences",name:"UserPreferences",component:xn},{path:"sports",name:"UserSportPreferences",component:qa,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xo,children:[{path:"",name:"UserAppsList",component:za},{path:":id",name:"UserApp",component:ua},{path:":id/created",name:"CreatedUserApp",component:ua,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:ko},{path:"authorize",name:"AuthorizeUserApp",component:Vo}]}]},{path:"edit",name:"UserProfileEdition",component:Vn,props:e=>({tab:Mc(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Gr},{path:"account",name:"UserAccountEdition",component:zr},{path:"picture",name:"UserPictureEdition",component:Xr},{path:"preferences",name:"UserPreferencesEdition",component:Vt},{path:"sports",name:"UserSportPreferencesEdition",component:qa,props:{isEdition:!0}},{path:"privacy-policy",name:"UserPrivacyPolicy",component:lo}]}]},{path:"/statistics",name:"Statistics",component:()=>r.e(193).then(r.bind(r,7885))},{path:"/users/:username",name:"User",component:()=>r.e(845).then(r.bind(r,9453))},{path:"/workouts",name:"Workouts",component:()=>r.e(401).then(r.bind(r,344))},{path:"/workouts/:workoutId",name:"Workout",component:()=>r.e(401).then(r.bind(r,1211)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>r.e(401).then(r.bind(r,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>r.e(401).then(r.bind(r,1211)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>r.e(401).then(r.bind(r,4189))},{path:"/admin",name:"Administration",component:()=>r.e(328).then(r.bind(r,6e3)),children:[{path:"",name:"AdministrationMenu",component:_e},{path:"application",name:"ApplicationAdministration",component:B},{path:"application/edit",name:"ApplicationAdministrationEdition",component:B,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:Fe},{path:"users/:username",name:"UserFromAdmin",component:()=>r.e(845).then(r.bind(r,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:In}]},{path:"/about",name:"About",component:vi},{path:"/privacy-policy",name:"PrivacyPolicy",component:Dc},{path:"/:pathMatch(.*)*",name:"not-found",component:Ic}],Gc=(0,t.p7)({history:(0,t.PO)("/"),routes:yc}),Fc=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],Wc=["/email-update","/about","/privacy-policy"];Gc.beforeEach(((e,n,r)=>{Xa.Z.dispatch(c.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(Wc.includes(e.path))return r();if(Xa.Z.getters[c.YN.GETTERS.IS_AUTHENTICATED]&&Fc.includes(e.path))return r("/");if(Xa.Z.getters[c.YN.GETTERS.IS_AUTHENTICATED]||Fc.includes(e.path))r();else{const n="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};r(n)}})).catch((e=>{console.error(e),r()}))}));var Yc=Gc},5801:function(e,n,r){"use strict";var t,o,a,i,s,l,c,u,m,d,E,_,T,S,p,A,z,O;r.d(n,{YN:function(){return U},Km:function(){return C},SY:function(){return R},O8:function(){return N},gu:function(){return g},RT:function(){return D},aX:function(){return v}}),function(e){e["ACCEPT_PRIVACY_POLICY"]="ACCEPT_PRIVACY_POLICY",e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_REQUEST_DATA_EXPORT"]="GET_REQUEST_DATA_EXPORT",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["REQUEST_DATA_EXPORT"]="REQUEST_DATA_EXPORT",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(t||(t={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING",e["EXPORT_REQUEST"]="EXPORT_REQUEST"}(o||(o={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING",e["SET_EXPORT_REQUEST"]="SET_EXPORT_REQUEST"}(a||(a={})),function(e){e["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(i||(i={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(s||(s={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_PRIVACY_POLICY"]="GET_APPLICATION_PRIVACY_POLICY",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_PRIVACY_POLICY"]="UPDATE_APPLICATION_PRIVACY_POLICY",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(m||(m={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(d||(d={})),function(e){e["SPORTS"]="SPORTS"}(E||(E={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(_||(_={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(T||(T={})),function(e){e["USER_STATS"]="USER_STATS"}(S||(S={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(z||(z={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(O||(O={}));var I=r(52);const R={ACTIONS:c,GETTERS:u,MUTATIONS:m},N={ACTIONS:d,GETTERS:E,MUTATIONS:_},g={ACTIONS:T,GETTERS:S,MUTATIONS:p},U={ACTIONS:t,GETTERS:o,MUTATIONS:a},C={ACTIONS:i,GETTERS:s,MUTATIONS:l},D={ACTIONS:A,GETTERS:z,MUTATIONS:O},v={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,n,r){"use strict";r.d(n,{Z:function(){return me}});var t=r(3907),o=(r(7658),r(5167)),a=r(6154),i=r(8566),s=r(2024);const l=a.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const n=new AbortController;e.signal=n.signal;const r=(0,i.a)(e);return i.j.set(r,n),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&e.response&&(0,i.a)(e.response.config),Promise.reject(e))));var c=l,u=r(4413),m=r(5801);const d=(e,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z["delete"](`users/${n.username}`).then((r=>{204===r.status?n.fromAdmin?u.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),o.Z.get(`users/${n}`).then((n=>{"success"===n.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0]):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),o.Z.get("users",{params:n}).then((n=>{"success"===n.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,n.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,n.data.pagination)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const r={};void 0!==n.admin&&(r.admin=n.admin),n.resetPassword&&(r.reset_password=n.resetPassword),n.activate&&(r.activate=n.activate),void 0!==n.new_email&&(r.new_email=n.new_email),o.Z.patch(`users/${n.username}`,r).then((r=>{"success"===r.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,r.data.data.users[0]),(n.resetPassword||n.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(n.activate||n.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,r.data.data.users[0])):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,n){d(e,{username:n.username,fromAdmin:!0})}},_=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},T={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&_(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:n.token}).then((n=>{if("success"===n.data.status){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:n.token}).then((r=>{"success"===r.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),n.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("auth/profile").then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),n.data.data.accepted_privacy_policy||e.dispatch(m.SY.ACTIONS.GET_APPLICATION_PRIVACY_POLICY),n.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,s.S)(e,null),_(e))})).catch((n=>{"canceled"!==n.message&&((0,s.S)(e,n),_(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${n.actionType}`,n.formData).then((r=>{if("success"===r.data.status)if("login"===n.actionType){const t=r.data.auth_token;window.localStorage.setItem("authToken",t),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,t),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof n.redirectUrl?n.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("auth/logout").then((n=>{"success"===n.data.status?_(e):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z.post("auth/profile/edit",n).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),u.Z.push("/profile")):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),o.Z.patch("auth/profile/edit/account",n).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z.post("auth/profile/edit/preferences",n).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z["delete"](`auth/profile/reset/sports/${n}`).then((n=>{204===n.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z.post("auth/profile/edit/sports",n).then((n=>{"success"===n.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,n){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!n.picture)throw new Error("No file part");const r=new FormData;r.append("file",n.picture),o.Z.post("auth/picture",r,{headers:{"content-type":"multipart/form-data"}}).then((n=>{"success"===n.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,n){d(e,n)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z["delete"]("auth/picture").then((n=>{204===n.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",n).then((n=>{"success"===n.data.status?u.Z.push("/password-reset/sent"):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",n).then((n=>{"success"===n.data.status?u.Z.push("/account-confirmation/email-sent"):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",n).then((n=>{"success"===n.data.status?u.Z.push("/password-reset/password-updated"):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.ACCEPT_PRIVACY_POLICY](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("auth/account/privacy-policy",{accepted_policy:n}).then((n=>{"success"===n.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.REQUEST_DATA_EXPORT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("auth/account/export/request").then((n=>{"success"===n.data.status?e.commit(m.YN.MUTATIONS.SET_EXPORT_REQUEST,n.data.request):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.GET_REQUEST_DATA_EXPORT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("auth/account/export").then((n=>{"success"===n.data.status?e.commit(m.YN.MUTATIONS.SET_EXPORT_REQUEST,n.data.request):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},S={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.EXPORT_REQUEST]:e=>e.exportRequest,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,n){e.authToken=n},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,n){e.authUserProfile=n},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,n){e.isRegistrationSuccess=n},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,n){e.isSuccess=n},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,n){e.loading=n},[m.YN.MUTATIONS.SET_EXPORT_REQUEST](e,n){e.exportRequest=n}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1,exportRequest:null},z={state:A,actions:T,getters:S,mutations:p};var O=z;const I=(e,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get(n).then((n=>{"success"===n.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,n.data.data.client):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},R={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES);const r=new FormData;r.set("client_id",n.client_id),r.set("response_type",n.response_type),r.set("scope",n.scope),r.set("confirm","true"),n.state&&r.set("state",n.state),n.code_challenge&&r.set("code_challenge",n.code_challenge),n.code_challenge_method&&r.set("code_challenge_method",n.code_challenge_method),o.Z.post("oauth/authorize",r,{headers:{"Content-Type":"multipart/form-data"}}).then((n=>{200==n.status&&n.data.redirect_url?window.location.href=n.data.redirect_url:(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.CREATE_CLIENT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("oauth/apps",n).then((n=>{"created"===n.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,n.data.data.client),u.Z.push(`/profile/apps/${n.data.data.client.id}/created`)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.DELETE_CLIENT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z["delete"](`oauth/apps/${n}`).then((n=>{204===n.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,n){I(e,`oauth/apps/${n}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,n){I(e,`oauth/apps/${n}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("oauth/apps",{params:n}).then((n=>{"success"===n.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,n.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,n.data.pagination)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),o.Z.post(`oauth/apps/${n}/revoke`).then((n=>{"success"===n.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},N={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},g={[m.Km.MUTATIONS.SET_CLIENT](e,n){e.client=n},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,n){e.clients=n},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,n){e.pagination=n},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,n){e.revocationSuccessful=n}},U={client:{},clients:[],pagination:{},revocationSuccessful:!1},C={state:U,actions:R,getters:N,mutations:g};var D=C,v=r(2540);const{locale:h}=v.Z.global,f={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),o.Z.get("config").then((n=>{"success"===n.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("stats/all").then((n=>{"success"===n.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,n.data.data):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.SY.ACTIONS.GET_APPLICATION_PRIVACY_POLICY](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("config").then((n=>{"success"===n.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY,n.data.data):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.patch("config",n).then((n=>{"success"===n.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data),u.Z.push("/admin/application")):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,n){document.querySelector("html")?.setAttribute("lang",n),e.commit(m.SY.MUTATIONS.UPDATE_LANG,n),h.value=n}},P={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var L=r(6287);const w={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,n){e.errorMessages=n},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,n){e.application.config=n},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,n){e.appLoading=n},[m.SY.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY](e,n){e.application.config.privacy_policy=n.privacy_policy,e.application.config.privacy_policy_date=n.privacy_policy_date},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,n){e.application.statistics=n},[m.SY.MUTATIONS.UPDATE_LANG](e,n){e.language=n,e.locale=L.v1[n]}};var k=r(5826);const b={root:!0,language:"en",locale:k.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},M={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("sports").then((n=>{"success"===n.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,n.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.patch(`sports/${n.id}`,{is_active:n.isActive}).then((n=>{"success"===n.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},y={[m.O8.GETTERS.SPORTS]:e=>e.sports},G={[m.O8.MUTATIONS.SET_SPORTS](e,n){e.sports=n}},F={sports:[]},W={state:F,actions:M,getters:y,mutations:G};var Y=W;const x={[m.gu.ACTIONS.GET_USER_STATS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get(`stats/${n.username}/${n.filterType}`,{params:n.params}).then((n=>{"success"===n.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,n.data.data.statistics):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},B={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},K={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,n){e.statistics=n},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},H={statistics:{}},V={state:H,actions:x,getters:B,mutations:K};var Z=V;const $={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},q={[m.RT.MUTATIONS.UPDATE_USER](e,n){e.user=n},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,n){e.users=e.users.map((e=>e.username===n.username?n:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,n){e.users=n},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,n){e.loading=n},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,n){e.pagination=n},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,n){e.isSuccess=n}},X={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},j={state:X,actions:E,getters:$,mutations:q};var Q=j,J=r(52);const ee=(e,n,r)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("workouts",{params:n}).then((n=>{"success"===n.data.status?(e.commit(m.aX.MUTATIONS[r],n.data.data.workouts),r===J.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,n.data.pagination)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},ne={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,n){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,n,J.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,n){ee(e,n,J.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,n){ee(e,n,J.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,n){ee(e,n,J.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const r=n.segmentId?`/segment/${n.segmentId}`:"";o.Z.get(`workouts/${n.workoutId}`).then((t=>{const a=t.data.data.workouts[0];if("success"===t.data.status){if(n.segmentId&&(0===a.segments.length||!a.segments[+n.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(m.aX.MUTATIONS.SET_WORKOUT,t.data.data.workouts[0]),t.data.data.workouts[0].with_gpx&&(o.Z.get(`workouts/${n.workoutId}/chart_data${r}`).then((n=>{"success"===n.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,n.data.data.chart_data)})),o.Z.get(`workouts/${n.workoutId}/gpx${r}`).then((n=>{"success"===n.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_GPX,n.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,null)})).catch((n=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),o.Z["delete"](`workouts/${n.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),o.Z.patch(`workouts/${n.workoutId}`,n.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:n.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:n.workoutId}})}))})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,n){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!n.file)throw new Error("No file part");const r=n.notes.replace(/"/g,'\\"'),t=new FormData;t.append("file",n.file),t.append("data",`{"sport_id": ${n.sport_id}, "notes": "${r}"}`),o.Z.post("workouts",t,{headers:{"content-type":"multipart/form-data"}}).then((n=>{if("created"===n.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const r=n.data.data.workouts[0];u.Z.push(1===n.data.data.workouts.length?`/workouts/${r.id}`:"/")}})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),o.Z.post("workouts/no_gpx",n).then((n=>{if("created"===n.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const r=n.data.data.workouts[0];u.Z.push(`/workouts/${r.id}`)}})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},re={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},te={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,n){e.timeline_workouts=e.timeline_workouts.concat(n)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,n){e.calendar_workouts=n},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,n){e.timeline_workouts=n},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,n){e.user_workouts=n},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,n){e.pagination=n},[m.aX.MUTATIONS.SET_WORKOUT](e,n){e.workoutData.workout=n},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,n){e.workoutData.chartData=n},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,n){e.workoutData.gpx=n},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,n){e.workoutData.loading=n},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},oe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},ae={state:oe,actions:ne,getters:re,mutations:te};var ie=ae;const se={authUserModule:O,oAuthModule:D,sportsModule:Y,statsModule:Z,usersModule:Q,workoutsModule:ie},le={state:b,actions:f,getters:P,mutations:w,modules:se};var ce=le;const ue=(0,t.MT)(ce);var me=ue},52:function(e,n,r){"use strict";var t,o,a;r.d(n,{CW:function(){return a},JP:function(){return o},tW:function(){return t}}),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"}(t||(t={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(o||(o={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(a||(a={}))},9917:function(e,n,r){"use strict";r.d(n,{o:function(){return o}});var t=r(3907);function o(){return(0,t.oR)()}},2766:function(e,n,r){"use strict";r.d(n,{Hf:function(){return o},Ne:function(){return c},fS:function(){return t},lM:function(){return m},pm:function(){return l},z_:function(){return i}});const t=["asc","desc"],o=1,a=10,i=(e,n)=>e&&"string"===typeof e&&+e>0?+e:n,s=(e,n,r)=>e&&"string"===typeof e&&n.includes(e)?e:r,l=(e,n,r,l)=>{const c=l||{},u=c.defaultSort||"asc",m={};return m.page=i(e.page,o),m.per_page=i(e.per_page,a),m.order=s(e.order,t,u),m.order_by=s(e.order_by,n,r),"string"===typeof e.q?m.q=e.q:delete m.q,m},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id","title"],u=(e,n=1)=>Array.from({length:e-n+1},((e,r)=>n+r)),m=(e,n)=>{if(e<0)return[];if(e<9)return u(e);let r=[1,2];return n<4?r=r.concat([3,4,5]):n<6?r=r.concat(u(n+2,3)):(r=r.concat(["..."]),n=e-2&&+r[r.length-1]{switch(e){case"week":return(0,t.Z)(n,{weekStartsOn:r?1:0});case"year":return(0,o.Z)(n);case"month":return(0,a.Z)(n);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},p=(e,n)=>{switch(e){case"week":return(0,i.Z)(n,7);case"year":return(0,s.Z)(n,1);case"month":return(0,l.Z)(n,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},A=(e,n)=>(0,d.Z)(new Date(e),n),z=(e,n)=>{const r=(0,a.Z)(e),o=(0,c.Z)(e),i=n?1:0;return{start:(0,t.Z)(r,{weekStartsOn:i}),end:(0,u.Z)(o,{weekStartsOn:i})}},O=(e,n=null,r=null)=>(n||(n="yyyy/MM/dd"),n=N(n,T.value),r||(r="HH:mm"),{workout_date:(0,m.Z)(e,n,{locale:_.v1[T.value]}),workout_time:(0,m.Z)(e,r)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],R={de:"do MMM yyyy",en:"MMM. do, yyyy",es:"d MMM yyyy",fr:"d MMM yyyy",gl:"d MMM yyyy",it:"d MMM yyyy",nb:"do MMM yyyy",nl:"d MMM yyyy"},N=(e,n)=>"date_string"===e?R[n]:e,g=(e,n,r,t=!0,o=null,a=!1)=>{o||(o=T.value);const i=t?a?" HH:mm:ss":" HH:mm":"";return(0,m.Z)(A(e,n),`${N(r,o)}${i}`,{locale:_.v1[o]})},U=(e,n,r=null)=>{const t=r||T.value,o=[];return I.map((r=>{const a=N(r,t);o.push({label:`${a} - ${g(e,n,a,!1,t)}`,value:r})})),o}},8966:function(e,n,r){"use strict";r.d(n,{Z:function(){return o},j:function(){return a}});const t=["bytes","KB","MB","GB","TB"],o=(e,n=!0)=>{const r=Math.floor(Math.log(e)/Math.log(1024));if(!e)return n?"0 bytes":{size:"0",suffix:"bytes"};const o=(e/Math.pow(1024,r)).toFixed(1),a=t[r];return n?`${o}${a}`:{size:o,suffix:a}},a=e=>{const n=e/1048576;return+n.toFixed(2)}},2024:function(e,n,r){"use strict";r.d(n,{S:function(){return a},k:function(){return o}});var t=r(5801);const o=()=>"/api/",a=(e,n,r="UNKNOWN")=>{if(n&&"canceled"===n.message)return;const o=n?.response&&n.response.data?n.response.data:null;if(401===n?.response?.status&&"invalid_token"===o?.error)return localStorage.removeItem("authToken"),void e.dispatch(t.YN.ACTIONS.CHECK_AUTH_USER);const a=n?n.response?413===n.response.status?"file size is greater than the allowed size":o?.message?o.message:r:n.message?n.message:r:r;e.commit(t.SY.MUTATIONS.SET_ERROR_MESSAGES,a.includes("\n")?a.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${a}`)}},2335:function(e,n,r){"use strict";r.d(n,{O:function(){return i}});var t=r(9597),o=r(1036),a=r.n(o);const i=e=>a()((0,t.Z)(e,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"})},6287:function(e,n,r){"use strict";r.d(n,{mT:function(){return T},v1:function(){return d},zK:function(){return E}});var t=r(879),o=r(5826),a=r(3345),i=r(5830),s=r(1229),l=r(8160),c=r(3304),u=r(4638),m=r(2540);const d={de:t.Z,en:o.Z,es:a.Z,fr:i.Z,gl:s.Z,it:l.Z,nb:c.Z,nl:u.Z},E={de:"Deutsch",en:"English",es:"Español",fr:"Français",gl:"Galego",it:"Italiano",nb:"Norsk bokmål",nl:"Nederlands"},{availableLocales:_}=m.Z.global,T=_.map((e=>({label:E[e],value:e})))},631:function(e,n,r){"use strict";r.d(n,{CM:function(){return l},PA:function(){return s},Yx:function(){return o},Zo:function(){return t},xH:function(){return i}});const t={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},o=e=>{const n={};return e.map((e=>n[e.id]=e.color?e.color:t[e.label])),n},a=(e,n)=>{const r=e.translatedLabel.toLowerCase(),t=n.translatedLabel.toLowerCase();return r>t?1:re.filter((e=>"all"===r||(t.includes(e.id)||e[r]))).map((e=>({...e,translatedLabel:n(`sports.${e.label}.LABEL`)}))).sort(a),s=(e,n)=>n.filter((n=>n.id===e.sport_id)).map((e=>e.label))[0],l=(e,n)=>n.filter((n=>n.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,n,r){"use strict";r.d(n,{FN:function(){return f},aZ:function(){return h},v1:function(){return v}});r(7658);var t=r(6761),o=r(8148),a=r(9319),i=r(584),s=r(4559),l=r(3703),c=r(876),u=r(7090),m=r(4135),d=r(1593),E=r(7982),_=r(3500),T=r(1640),S=r(2540),p=r(6558),A=r(6287),z=r(631),O=r(3649);const{locale:I}=S.Z.global,R={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},N=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],g=(e,n)=>{const r=[];for(let t=(0,p.Nh)(e.duration,e.start,n);t<=e.end;t=(0,p.xA)(e.duration,t))r.push(t);return r},U=(e,n,r=!1)=>{const t={label:e,backgroundColor:[n],data:[]};return r&&(t.type="line",t.borderColor=[n],t.spanGaps=!0),t},C=e=>{const n={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const r=e.color?e.color:z.Zo[e.label];n.average_speed.push(U(e.label,r,!0)),n.nb_workouts.push(U(e.label,r)),n.total_distance.push(U(e.label,r)),n.total_duration.push(U(e.label,r)),n.total_ascent.push(U(e.label,r)),n.total_descent.push(U(e.label,r))})),n},D=(e,n,r)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,O.f3)(["average_speed","total_distance"].includes(e)?"km":"m",n,r);default:case"nb_workouts":case"total_duration":return n}},v=(e,n,r,o,a,i,s)=>{const l=g(e,n),c=R[e.duration],u=r.filter((e=>o.includes(e.id))),m=[],d=C(u),E={};return u.map((e=>E[e.label]=e.id)),l.map((n=>{const r=(0,t.Z)(n,c.api),o=(0,t.Z)(n,"week"===e.duration?(0,p.mh)(s,I.value):c.chart,{locale:A.v1[I.value]});m.push(o),N.map((e=>{d[e].map((n=>{n.data.push(r in a&&E[n.label]in a[r]?D(e,a[r][E[n.label]][e],i):"average_speed"===e?null:0)}))}))})),{labels:m,datasets:d}},h=(e,n,r)=>{const t=r?1:0,d="year"===n?(0,o.Z)((0,a.Z)(e,9)):"week"===n?(0,i.Z)((0,s.Z)(e,2),{weekStartsOn:t}):(0,l.Z)((0,s.Z)(e,11)),E="year"===n?(0,c.Z)(e):"week"===n?(0,u.Z)(e,{weekStartsOn:t}):(0,m.Z)(e);return{duration:n,end:E,start:d}},f=(e,n,r)=>{const{duration:t,start:S,end:p}=e,A=r?1:0;return{duration:t,end:"year"===t?(0,c.Z)(n?(0,a.Z)(p,1):(0,d.Z)(p,1)):"week"===t?(0,u.Z)(n?(0,E.Z)(p,1):(0,_.Z)(p,1),{weekStartsOn:A}):(0,m.Z)(n?(0,s.Z)(p,1):(0,T.Z)(p,1)),start:"year"===t?(0,o.Z)(n?(0,a.Z)(S,1):(0,d.Z)(S,1)):"week"===t?(0,i.Z)(n?(0,E.Z)(S,1):(0,_.Z)(S,1),{weekStartsOn:A}):(0,l.Z)(n?(0,s.Z)(S,1):(0,T.Z)(S,1))}}},3649:function(e,n,r){"use strict";r.d(n,{Dl:function(){return t},Y2:function(){return l},f3:function(){return i},sC:function(){return a},x$:function(){return s}});const t={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},o={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},a=(e,n,r,a=3)=>{const i=t[n],s=t[r],l=e*i.multiplier*o[i.system][s.system]/s.multiplier;return null!==a?parseFloat(l.toFixed(a)):l},i=(e,n,r)=>{const o=r?t[e].defaultTarget:e;return r?a(n,e,o,2):n},s=(e,n)=>{const r=n?1.8*e+32:e,t=n?" °F":"°C";return`${0===r?0:Number(r).toFixed(1)}${t}`},l=(e,n)=>{const r=n?2.2369363*e:e,t=n?" mph":"m/s";return`${0===r?0:Number(r).toFixed(1)}${t}`}},3768:function(e,n,r){"use strict";r.d(n,{BN:function(){return a},EX:function(){return o},eR:function(){return i}});r(7658);var t=r(3649);const o=(e,n,r)=>{const o={speed:{label:n("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:n("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},a=[],i=[],s=[];return e.map((e=>{a.push((0,t.f3)("km",e.distance,r)),i.push(e.duration),o.speed.data.push((0,t.f3)("km",e.speed,r)),o.elevation.data.push((0,t.f3)("m",e.elevation,r)),s.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:a,duration_labels:i,datasets:o,coordinates:s}},a=e=>{const n=e.length;if(0===n)return{};const r={};return e.map((e=>{r[e.sport_id]||(r[e.sport_id]={count:0,percentage:0}),r[e.sport_id].count+=1,r[e.sport_id].percentage=r[e.sport_id].count/n})),r},i={order:"desc",order_by:"workout_date"}},2531:function(e,n,r){"use strict";r.d(n,{Z:function(){return m}});var t=r(6252);const o={class:"card"},a={class:"card-title"},i={class:"card-content"};function s(e,n){return(0,t.wg)(),(0,t.iD)("div",o,[(0,t._)("div",a,[(0,t.WI)(e.$slots,"title")]),(0,t._)("div",i,[(0,t.WI)(e.$slots,"content")])])}var l=r(3744);const c={},u=(0,l.Z)(c,[["render",s]]);var m=u},8626:function(e,n,r){"use strict";r.d(n,{Z:function(){return S}});var t=r(6252),o=r(3577),a=r(2262);const i={class:"table-selects"},s=["value"],l=["value"],c=["value"],u=["value"],m=["value"],d=["value"];var E=(0,t.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:n}){const r=e,{order_by:E,query:_,sort:T,message:S}=(0,a.BK)(r),p=[10,25,50,100];function A(e){n("updateSelect",e.target.id,e.target.value)}return(e,n)=>((0,t.wg)(),(0,t.iD)("div",i,[(0,t._)("label",null,[(0,t.Uk)((0,o.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,t._)("select",{name:"order_by",id:"order_by",value:(0,a.SU)(_).order_by,onChange:A},[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(E),(n=>((0,t.wg)(),(0,t.iD)("option",{value:n,key:n},(0,o.zw)(e.$t(`${(0,a.SU)(S)}.${n.toUpperCase()}`)),9,l)))),128))],40,s)]),(0,t._)("label",null,[(0,t.Uk)((0,o.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,t._)("select",{name:"order",id:"order",value:(0,a.SU)(_).order,onChange:A},[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(T),(n=>((0,t.wg)(),(0,t.iD)("option",{value:n,key:n},(0,o.zw)(e.$t(`common.SELECTS.ORDER.${n.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,t._)("label",null,[(0,t.Uk)((0,o.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,t._)("select",{name:"per_page",id:"per_page",value:(0,a.SU)(_).per_page,onChange:A},[((0,t.wg)(),(0,t.iD)(t.HY,null,(0,t.Ko)(p,(e=>(0,t._)("option",{value:e,key:e},(0,o.zw)(e),9,d))),64))],40,m)])]))}}),_=r(3744);const T=(0,_.Z)(E,[["__scopeId","data-v-72463173"]]);var S=T},7167:function(e,n,r){"use strict";r.d(n,{Z:function(){return m}});var t=r(6252);const o={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},a=(0,t.uE)(' ',1),i=[a];function s(e,n,r,a,s,l){return(0,t.wg)(),(0,t.iD)("svg",o,i)}var l={name:"ErrorImg"},c=r(3744);const u=(0,c.Z)(l,[["render",s]]);var m=u},8273:function(e,n,r){"use strict";r.d(n,{Z:function(){return _}});var t=r(6252),o=r(2262),a=(r(7658),r(3577));const i={id:"error"},s={class:"error-content"};var l=(0,t.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const n=e,{buttonText:r,title:l,message:c,path:u}=(0,o.BK)(n);return(e,n)=>((0,t.wg)(),(0,t.iD)("div",i,[(0,t._)("div",s,[(0,t._)("h1",null,(0,a.zw)((0,o.SU)(l)),1),(0,t._)("p",null,(0,a.zw)((0,o.SU)(c)),1),(0,o.SU)(r)?((0,t.wg)(),(0,t.iD)("button",{key:0,onClick:n[0]||(n[0]=n=>e.$router.push((0,o.SU)(u))),class:"upper"},(0,a.zw)((0,o.SU)(r)),1)):(0,t.kq)("",!0)])]))}}),c=r(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var m=u,d=(0,t.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const n=e,{target:r}=(0,o.BK)(n),a=(0,o.iH)(),i=(0,o.iH)(!1);function s(){a.value=setTimeout((()=>{i.value=!0}),500)}return(0,t.bv)((()=>s())),(0,t.Ah)((()=>{a.value&&clearTimeout(a.value)})),(e,n)=>i.value?((0,t.wg)(),(0,t.j4)(m,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,o.SU)(r)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,t.kq)("",!0)}});const E=d;var _=E},5020:function(e,n,r){"use strict";r.d(n,{Z:function(){return S}});var t=r(6252),o=r(3577),a=r(2262),i=r(2766);const s=e=>((0,t.dD)("data-v-3a9a4a65"),e=e(),(0,t.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=s((()=>(0,t._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),m={key:0},d=s((()=>(0,t._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var E=(0,t.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const n=e,{pagination:r,path:s,query:E}=(0,a.BK)(n);function _(e,n){const r=Object.assign({},E.value);return r.page=n?e+n:e,r}return(e,n)=>{const E=(0,t.up)("router-link");return(0,t.wg)(),(0,t.iD)("nav",l,[(0,t._)("ul",c,[(0,t._)("li",{class:(0,o.C_)(["page-prev",{disabled:!(0,a.SU)(r).has_prev}])},[(0,t.Wm)(E,{class:"page-link",to:{path:(0,a.SU)(s),query:_((0,a.SU)(r).page,-1)},disabled:!(0,a.SU)(r).has_prev},{default:(0,t.w5)((({navigate:n})=>[(0,t.WI)(e.$slots,"default",{onClick:e=>(0,a.SU)(r).has_next?n:null},(()=>[(0,t.Uk)((0,o.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(i.lM)((0,a.SU)(r).pages,(0,a.SU)(r).page),(e=>((0,t.wg)(),(0,t.iD)("li",{key:e,class:(0,o.C_)(["page",{active:e===(0,a.SU)(r).page}])},["..."===e?((0,t.wg)(),(0,t.iD)("span",m," ... ")):((0,t.wg)(),(0,t.j4)(E,{key:1,class:"page-link",to:{path:(0,a.SU)(s),query:_(+e)}},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,t._)("li",{class:(0,o.C_)(["page-next",{disabled:!(0,a.SU)(r).has_next}])},[(0,t.Wm)(E,{class:"page-link",to:{path:(0,a.SU)(s),query:_((0,a.SU)(r).page,1)},disabled:!(0,a.SU)(r).has_next},{default:(0,t.w5)((({navigate:n})=>[(0,t.WI)(e.$slots,"default",{onClick:e=>(0,a.SU)(r).has_next?n:null},(()=>[(0,t.Uk)((0,o.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),d]))])),_:3},8,["to","disabled"])],2)])])}}}),_=r(3744);const T=(0,_.Z)(E,[["__scopeId","data-v-3a9a4a65"]]);var S=T},8403:function(e,n,r){"use strict";r.d(n,{Z:function(){return f}});var t=r(6252),o=r(2262),a=r(9963),i=r(3577),s=r(5275),l=r(5801),c=r(9917);const u=async e=>{switch(e){case"fr":return await r.e(222).then(r.bind(r,6886));case"de":return await r.e(940).then(r.bind(r,5767));case"it":return await r.e(802).then(r.bind(r,8060));case"es":return await r.e(394).then(r.bind(r,9975));default:return await r.e(261).then(r.bind(r,8638))}},m=async e=>{const n=await r.e(881).then(r.bind(r,268)),t=await u(e),o={graphs:n.adjacencyGraphs,dictionary:{...n.dictionary,...t.dictionary}};s.Mu.setOptions(o)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},E={class:"password-strength"},_=["value"],T={key:0,class:"password-strength-details"},S={class:"password-strength-value"},p={key:0,class:"info-box"},A={class:"password-feedback"};var z=(0,t.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const n=e,{password:r}=(0,o.BK)(n),a=(0,c.o)(),u=(0,t.Fl)((()=>a.getters[l.SY.GETTERS.LANGUAGE])),z=(0,t.Fl)((()=>a.getters[l.YN.GETTERS.IS_SUCCESS])),O=(0,o.iH)(0),I=(0,o.iH)(""),R=(0,o.iH)([]),N=(0,o.iH)("0% 100%");function g(e){const n=(0,s.tu)(e);O.value=n.score,I.value=d(O.value),R.value=n.feedback.suggestions,N.value=100*O.value/4+"% 100%"}return(0,t.wF)((async()=>await m(u.value))),(0,t.YP)((()=>u.value),(async e=>{await m(e)})),(0,t.YP)((()=>r.value),(async e=>{z.value?I.value="":g(e)})),(e,n)=>((0,t.wg)(),(0,t.iD)("div",E,[(0,t._)("input",{class:(0,i.C_)(["password-slider",`strength-${O.value}`]),style:(0,i.j5)({backgroundSize:N.value}),type:"range",value:O.value,min:"0",max:"4",step:"1"},null,14,_),I.value?((0,t.wg)(),(0,t.iD)("div",T,[(0,t._)("span",S,(0,i.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),R.value.length>0?((0,t.wg)(),(0,t.iD)("div",p,[(0,t._)("ul",A,[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(R.value,(n=>((0,t.wg)(),(0,t.iD)("li",{key:n},(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${n}`)),1)))),128))])])):(0,t.kq)("",!0)])):(0,t.kq)("",!0)]))}}),O=r(3744);const I=(0,O.Z)(z,[["__scopeId","data-v-74e71df5"]]);var R=I;const N=e=>((0,t.dD)("data-v-5a126514"),e=e(),(0,t.Cn)(),e),g={class:"password-input"},U=["id","disabled","placeholder","required","type"],C={key:0,class:"form-info"},D=N((()=>(0,t._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var v=(0,t.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:n}){const r=e,{checkStrength:s,disabled:l,id:c,password:u,placeholder:m,required:d}=(0,o.BK)(r),E=(0,o.iH)(!1),_=(0,o.iH)("");function T(){E.value=!E.value}function S(e){n("updatePassword",e.target.value)}function p(){n("passwordError")}return(0,t.YP)((()=>u.value),(e=>{""===e&&(_.value="")})),(e,n)=>((0,t.wg)(),(0,t.iD)("div",g,[(0,t.wy)((0,t._)("input",{id:(0,o.SU)(c),disabled:(0,o.SU)(l),placeholder:(0,o.SU)(m),required:(0,o.SU)(d),type:E.value?"text":"password","onUpdate:modelValue":n[0]||(n[0]=e=>_.value=e),minlength:"8",onInput:S,onInvalid:p},null,40,U),[[a.YZ,_.value]]),(0,t._)("div",{class:"show-password",onClick:T},[(0,t.Uk)((0,i.zw)(e.$t(`user.${E.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,t._)("i",{class:(0,i.C_)(["fa","fa-eye"+(E.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,o.SU)(s)?((0,t.wg)(),(0,t.iD)("div",C,[D,(0,t.Uk)(" "+(0,i.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,t.kq)("",!0),(0,o.SU)(s)?((0,t.wg)(),(0,t.j4)(R,{key:1,password:_.value},null,8,["password"])):(0,t.kq)("",!0)]))}});const h=(0,O.Z)(v,[["__scopeId","data-v-5a126514"]]);var f=h},2056:function(e,n,r){"use strict";r.d(n,{Z:function(){return u}});var t=r(6252),o=r(3577),a=r(2262),i=r(2024);const s=(0,t._)("div",{class:"map-attribution"},[(0,t._)("span",{class:"map-attribution-text"},"©"),(0,t._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,t.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const n=e,{displayHover:r}=(0,a.BK)(n),l=`${(0,i.k)()}workouts/map/${n.workout.map}`;return(e,n)=>((0,t.wg)(),(0,t.iD)("div",{class:(0,o.C_)(["static-map",{"display-hover":(0,a.SU)(r)}])},[(0,a.SU)(r)?((0,t.wg)(),(0,t.iD)("img",{key:0,src:l,alt:""})):((0,t.wg)(),(0,t.iD)("div",{key:1,class:"bg-map-image",style:(0,o.j5)({backgroundImage:`url(${l})`})},null,4)),s],2))}});const c=l;var u=c},436:function(e,n,r){"use strict";r.d(n,{Z:function(){return y}});var t=r(6252),o=r(3577);const a={class:"start-chart"},i={key:0},s={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],m=["checked"],d={key:0},E=["checked"],_={key:1},T=["checked"],S={key:2},p=["checked"];function A(e,n,r,A,z,O){const I=(0,t.up)("Chart");return(0,t.wg)(),(0,t.iD)("div",a,[e.hideChartIfNoData&&e.emptyStats?((0,t.wg)(),(0,t.iD)("div",i,(0,o.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,t.wg)(),(0,t.iD)("div",s,[(0,t._)("div",l,[(0,t._)("label",null,[(0,t._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:n[0]||(n[0]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,c),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.DISTANCE")),1)]),(0,t._)("label",null,[(0,t._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:n[1]||(n[1]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,u),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.DURATION")),1)]),(0,t._)("label",null,[(0,t._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:n[2]||(n[2]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,m),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,t.wg)(),(0,t.iD)("label",d,[(0,t._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:n[3]||(n[3]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,E),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,t.kq)("",!0),e.fullStats?((0,t.wg)(),(0,t.iD)("label",_,[(0,t._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:n[4]||(n[4]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,T),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.ASCENT")),1)])):(0,t.kq)("",!0),e.fullStats?((0,t.wg)(),(0,t.iD)("label",S,[(0,t._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:n[5]||(n[5]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,p),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.DESCENT")),1)])):(0,t.kq)("",!0)]),e.labels.length>0?((0,t.wg)(),(0,t.j4)(I,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,t.kq)("",!0)]))])}var z=r(6761),O=r(2262);const I={class:"chart"};function R(e,n,r,o,a,i){const s=(0,t.up)("BarChart");return(0,t.wg)(),(0,t.iD)("div",I,[(0,t.Wm)(s,(0,t.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var N=r(6518),g=r(9150);const U=(e,n=!1)=>{let r="0";n&&(r=String(Math.floor(e/86400)),e%=86400);const t=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const o=String(Math.floor(e/60)).padStart(2,"0"),a=String(e%60).padStart(2,"0");return n?`${"0"===r?"":`${r}d `}${"00"===t?"":`${t}h `}${o}m ${a}s`:`${"00"===t?"":`${t}:`}${o}:${a}`};var C=r(3649);const D=(e,n,r,t=!0,o="km")=>{const a=r?C.Dl[o].defaultTarget:o;switch(e){case"average_speed":return`${n.toFixed(2)} ${a}/h`;case"total_duration":return U(n,t);case"total_distance":case"total_ascent":case"total_descent":return`${n.toFixed(2)} ${a}`;default:return n.toString()}};var v=(0,t.aZ)({name:"Chart",components:{BarChart:N.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:n}=(0,g.QT)();function r(e){return isNaN(e)?0:+e}function o(e,n){return r(e)+r(n)}function a(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const i=(0,t.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(0,t.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(n){return D(e.displayedData,+n,e.useImperialUnits,!1,a(e.displayedData))}},afterFit:function(n){n.width=e.fullStats?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(n){return"average_speed"===e.displayedData&&n.dataset.backgroundColor?n.dataset.backgroundColor[0]:"#666666"},rotation:function(n){return e.fullStats&&n.chart.chartArea.width<580?310:0},display:function(n){return!(e.fullStats&&n.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(n,r){if("average_speed"===e.displayedData)return D(e.displayedData,n,e.useImperialUnits,!1);{const n=r.chart.data.datasets.map((e=>e.data[r.dataIndex])).reduce(((e,n)=>o(e,n)),0);return r.datasetIndex===e.displayedSportIds.length-1&&n>0?D(e.displayedData,n,e.useImperialUnits,!1,a(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(r){let t=n(`sports.${r.dataset.label}.LABEL`)||"";return t&&(t+=": "),null!==r.parsed.y&&(t+=D(e.displayedData,r.parsed.y,e.useImperialUnits,!0,a(e.displayedData))),t},footer:function(r){if("average_speed"===e.displayedData)return"";let t=0;return r.map((e=>{t+=e.parsed.y})),`${n("common.TOTAL")}: `+D(e.displayedData,t,e.useImperialUnits,!0,a(e.displayedData))}}}}}))),{barChartProps:l}=(0,N.xZ)({chartData:i,options:s});return{barChartProps:l}}}),h=r(3744);const f=(0,h.Z)(v,[["render",R]]);var P=f,L=r(5801),w=r(9917),k=r(9318),b=(0,t.aZ)({name:"UserMonthStats",components:{Chart:P},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const n=(0,w.o)(),r=(0,O.iH)("total_distance"),o=(0,t.Fl)((()=>n.getters[L.gu.GETTERS.USER_STATS])),a=(0,t.Fl)((()=>(0,k.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,o.value,e.user.imperial_units,e.user.date_format)));function i(r){n.dispatch(L.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:r})}function s(e){r.value=e.target.name}function l(e,n){return{from:(0,z.Z)(e.start,"yyyy-MM-dd"),to:(0,z.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(n.weekm?"m":""):e.duration}}return(0,t.wF)((()=>i(l(e.chartParams,e.user)))),(0,t.YP)((()=>e.chartParams),(async n=>{i(l(n,e.user))})),{datasets:(0,t.Fl)((()=>a.value.datasets[r.value])),labels:(0,t.Fl)((()=>a.value.labels)),emptyStats:(0,t.Fl)((()=>0===Object.keys(o.value).length)),displayedData:r,updateDisplayData:s}}});const M=(0,h.Z)(b,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=M},2179:function(e,n,r){"use strict";r.d(n,{Z:function(){return g}});var t=r(6252),o=r(2262),a=r(3577),i=r(6595),s=r(5801),l=r(9917);const c={class:"box user-header"},u={class:"user-details"},m={class:"user-name"},d={class:"user-stats"},E={class:"user-stat"},_={class:"stat-number"},T={class:"stat-label"},S={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},z={class:"stat-number"},O={class:"stat-label"};var I=(0,t.aZ)({__name:"UserHeader",props:{user:null},setup(e){const n=e,{user:r}=(0,o.BK)(n),I=(0,l.o)(),R=(0,t.Fl)((()=>I.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,n)=>{const s=(0,t.up)("Distance");return(0,t.wg)(),(0,t.iD)("div",c,[(0,t.Wm)(i.Z,{user:(0,o.SU)(r)},null,8,["user"]),(0,t._)("div",u,[(0,t._)("div",m,(0,a.zw)((0,o.SU)(r).username),1),(0,t._)("div",d,[(0,t._)("div",E,[(0,t._)("span",_,(0,a.zw)((0,o.SU)(r).nb_workouts),1),(0,t._)("span",T,(0,a.zw)(e.$t("workouts.WORKOUT",(0,o.SU)(r).nb_workouts)),1)]),(0,t._)("div",S,[(0,t.Wm)(s,{distance:(0,o.SU)(r).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,o.SU)(R).imperial_units},null,8,["distance","useImperialUnits"]),(0,t._)("span",p,(0,a.zw)((0,o.SU)(R).imperial_units?"miles":"km"),1)]),(0,t._)("div",A,[(0,t._)("span",z,(0,a.zw)((0,o.SU)(r).nb_sports),1),(0,t._)("span",O,(0,a.zw)(e.$t("workouts.SPORT",(0,o.SU)(r).nb_sports)),1)])])])])}}}),R=r(3744);const N=(0,R.Z)(I,[["__scopeId","data-v-20291951"]]);var g=N},1585:function(e,n,r){"use strict";r.d(n,{Z:function(){return v}});r(7658);var t=r(6252),o=r(2262),a=r(3577),i=r(9963),s=r(6761),l=r(5801),c=r(9917),u=r(6558),m=r(6287);const d={id:"user-infos",class:"description-list"},E={key:1,class:"info-box success-message"},_={key:4,class:"email-form form-box"},T={class:"form-items",for:"email"},S={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},z=["onClick"],O={key:5},I={class:"user-bio"},R={key:0,class:"profile-buttons"},N=["onClick"],g={key:1,class:"profile-buttons"};var U=(0,t.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const n=e,r=(0,c.o)(),{user:U,fromAdmin:C}=(0,o.BK)(n),D=(0,t.Fl)((()=>r.getters[l.SY.GETTERS.LANGUAGE])),v=(0,t.Fl)((()=>r.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),h=(0,t.Fl)((()=>n.user.created_at?(0,u.p6)(n.user.created_at,v.value.timezone,v.value.date_format):"")),f=(0,t.Fl)((()=>n.user.birth_date?(0,s.Z)(new Date(n.user.birth_date),`${(0,u.mh)(v.value.date_format,D.value)}`,{locale:m.v1[D.value]}):"")),P=(0,t.Fl)((()=>r.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),L=(0,t.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),w=(0,t.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),k=(0,o.iH)(""),b=(0,o.iH)(!1),M=(0,o.iH)(!1),y=(0,o.iH)(""),G=(0,o.iH)("");function F(e){k.value=e,""!==e&&r.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){r.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function Y(e){G.value="password-reset",r.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function x(e){r.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function B(){V(),y.value=U.value.email_to_confirm?U.value.email_to_confirm:"",M.value=!0,G.value="email-update"}function K(){y.value="",M.value=!1}function H(e){r.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function V(){r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,t.Ah)((()=>V())),(0,t.YP)((()=>P.value),(e=>{e&&(F(""),K())})),(e,n)=>{const r=(0,t.up)("Modal"),s=(0,t.up)("AlertMessage"),l=(0,t.up)("ErrorMessage");return(0,t.wg)(),(0,t.iD)("div",d,[k.value?((0,t.wg)(),(0,t.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===k.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,o.SU)(U).username,onConfirmAction:n[0]||(n[0]=e=>"delete"===k.value?W((0,o.SU)(U).username):Y((0,o.SU)(U).username)),onCancelAction:n[1]||(n[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,t.kq)("",!0),(0,o.SU)(P)?((0,t.wg)(),(0,t.iD)("div",E,(0,a.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,t.kq)("",!0),(0,o.SU)(U).is_active?(0,t.kq)("",!0):((0,t.wg)(),(0,t.j4)(s,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,o.SU)(L)?((0,t.wg)(),(0,t.j4)(l,{key:3,message:(0,o.SU)(L)},null,8,["message"])):(0,t.kq)("",!0),M.value?((0,t.wg)(),(0,t.iD)("div",_,[(0,t._)("form",{class:(0,a.C_)({errors:b.value}),onSubmit:n[4]||(n[4]=(0,i.iM)((e=>H((0,o.SU)(U).username)),["prevent"]))},[(0,t._)("label",T,[(0,t.Uk)((0,a.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,t.wy)((0,t._)("input",{id:"email",type:"email","onUpdate:modelValue":n[2]||(n[2]=e=>(0,o.SU)(U).email=e),disabled:""},null,512),[[i.nr,(0,o.SU)(U).email]])]),(0,t._)("label",S,[(0,t.Uk)((0,a.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,t.wy)((0,t._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":n[3]||(n[3]=e=>y.value=e)},null,512),[[i.nr,y.value]])]),(0,t._)("div",p,[(0,t._)("button",A,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,t._)("button",{class:"cancel",onClick:(0,i.iM)(K,["prevent"])},(0,a.zw)(e.$t("buttons.CANCEL")),9,z)])],34)])):((0,t.wg)(),(0,t.iD)("div",O,[(0,t._)("dl",null,[(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(h)),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(U).first_name),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(U).last_name),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(f)),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(U).location),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,t._)("dd",I,(0,a.zw)((0,o.SU)(U).bio),1)]),(0,o.SU)(C)?((0,t.wg)(),(0,t.iD)("div",R,[(0,o.SU)(v).username!==(0,o.SU)(U).username?((0,t.wg)(),(0,t.iD)("button",{key:0,class:"danger",onClick:n[5]||(n[5]=(0,i.iM)((e=>F("delete")),["prevent"]))},(0,a.zw)(e.$t("admin.DELETE_USER")),1)):(0,t.kq)("",!0),(0,o.SU)(U).is_active?(0,t.kq)("",!0):((0,t.wg)(),(0,t.iD)("button",{key:1,onClick:n[6]||(n[6]=(0,i.iM)((e=>x((0,o.SU)(U).username)),["prevent"]))},(0,a.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,o.SU)(v).username!==(0,o.SU)(U).username?((0,t.wg)(),(0,t.iD)("button",{key:2,onClick:(0,i.iM)(B,["prevent"])},(0,a.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,N)):(0,t.kq)("",!0),(0,o.SU)(v).username!==(0,o.SU)(U).username&&(0,o.SU)(w).is_email_sending_enabled?((0,t.wg)(),(0,t.iD)("button",{key:3,onClick:n[7]||(n[7]=(0,i.iM)((e=>F("reset")),["prevent"]))},(0,a.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,t.kq)("",!0),(0,t._)("button",{onClick:n[8]||(n[8]=n=>e.$router.go(-1))},(0,a.zw)(e.$t("buttons.BACK")),1)])):((0,t.wg)(),(0,t.iD)("div",g,[(0,t._)("button",{onClick:n[9]||(n[9]=n=>e.$router.push("/profile/edit"))},(0,a.zw)(e.$t("user.PROFILE.EDIT")),1),(0,t._)("button",{onClick:n[10]||(n[10]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)]))]))])}}}),C=r(3744);const D=(0,C.Z)(U,[["__scopeId","data-v-217519af"]]);var v=D},776:function(e,n,r){"use strict";r.d(n,{Z:function(){return L}});var t=r(6252),o=r(3577),a=r(2262),i=r(9963),s=r(2201),l=r(8403),c=r(5801),u=r(9917);const m=e=>((0,t.dD)("data-v-4f112f24"),e=e(),(0,t.Cn)(),e),d={id:"user-form"},E={key:2,class:"info-box success-message"},_={class:"form-items"},T=["disabled","placeholder"],S={key:1,class:"form-info"},p=m((()=>(0,t._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],z={key:3,class:"form-info"},O=m((()=>(0,t._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I={key:5,for:"accepted_policy",class:"accepted_policy"},R=["disabled"],N=["disabled"],g={key:3},U={key:0},C={key:4},D={class:"account"},v={key:5};var h=(0,t.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const n=e,r=(0,s.yj)(),m=(0,u.o)(),{action:h}=(0,a.BK)(n),f=(0,a.qj)({username:"",email:"",password:"",accepted_policy:!1}),P=(0,t.Fl)((()=>W(n.action))),L=(0,t.Fl)((()=>m.getters[c.SY.GETTERS.ERROR_MESSAGES])),w=(0,t.Fl)((()=>m.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),k=(0,t.Fl)((()=>m.getters[c.YN.GETTERS.IS_SUCCESS])),b=(0,t.Fl)((()=>m.getters[c.SY.GETTERS.APP_CONFIG])),M=(0,t.Fl)((()=>m.getters[c.SY.GETTERS.LANGUAGE])),y=(0,t.Fl)((()=>"register"===n.action&&!b.value.is_registration_enabled)),G=(0,t.Fl)((()=>["reset-request","account-confirmation-resend"].includes(n.action)&&!b.value.is_email_sending_enabled)),F=(0,a.iH)(!1);function W(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${n.action.toUpperCase()}`}}function Y(){F.value=!0}function x(e){f.password=e}function B(e){switch(e){case"reset":return n.token?m.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:f.password,token:n.token}):m.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return m.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:f.email});case"account-confirmation-resend":return m.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:f.email});default:f["language"]=M.value,m.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:f,redirectUrl:r.query.from})}}function K(){f.username="",f.email="",f.password="",f.accepted_policy=!1}return(0,t.Ah)((()=>m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,t.YP)((()=>r.path),(async()=>{m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),m.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),m.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),F.value=!1,K()})),(e,n)=>{const r=(0,t.up)("AlertMessage"),s=(0,t.up)("router-link"),c=(0,t.up)("i18n-t"),u=(0,t.up)("ErrorMessage");return(0,t.wg)(),(0,t.iD)("div",{id:"user-auth-form",class:(0,o.C_)(`${["reset","reset-request"].includes((0,a.SU)(h))?(0,a.SU)(h):"user-form"}`)},[(0,t._)("div",d,[(0,t._)("div",{class:(0,o.C_)(["form-box",{disabled:(0,a.SU)(y)}])},[(0,a.SU)(y)?((0,t.wg)(),(0,t.j4)(r,{key:0,message:"user.REGISTER_DISABLED"})):(0,t.kq)("",!0),(0,a.SU)(G)?((0,t.wg)(),(0,t.j4)(r,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,t.kq)("",!0),(0,a.SU)(k)||(0,a.SU)(w)?((0,t.wg)(),(0,t.iD)("div",E,(0,o.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,a.SU)(w)?"REGISTRATION"+((0,a.SU)(b).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,t.kq)("",!0),(0,t._)("form",{class:(0,o.C_)({errors:F.value}),onSubmit:n[3]||(n[3]=(0,i.iM)((e=>B((0,a.SU)(h))),["prevent"]))},[(0,t._)("div",_,["register"===(0,a.SU)(h)?(0,t.wy)(((0,t.wg)(),(0,t.iD)("input",{key:0,id:"username",disabled:(0,a.SU)(y),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:Y,"onUpdate:modelValue":n[0]||(n[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,T)),[[i.nr,f.username]]):(0,t.kq)("",!0),"register"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("div",S,[p,(0,t.Uk)(" "+(0,o.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,t.kq)("",!0),"reset"!==(0,a.SU)(h)?(0,t.wy)(((0,t.wg)(),(0,t.iD)("input",{key:2,id:"email",disabled:(0,a.SU)(y)||(0,a.SU)(G),required:"",onInvalid:Y,type:"email","onUpdate:modelValue":n[1]||(n[1]=e=>f.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[i.nr,f.email]]):(0,t.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,a.SU)(h))?((0,t.wg)(),(0,t.iD)("div",z,[O,(0,t.Uk)(" "+(0,o.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,t.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,a.SU)(h))?(0,t.kq)("",!0):((0,t.wg)(),(0,t.j4)(l.Z,{key:4,disabled:(0,a.SU)(y),required:!0,placeholder:"reset"===(0,a.SU)(h)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,a.SU)(h)),onUpdatePassword:x,onPasswordError:Y},null,8,["disabled","placeholder","password","checkStrength"])),"register"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("label",I,[(0,t.wy)((0,t._)("input",{type:"checkbox",id:"accepted_policy",disabled:(0,a.SU)(y),required:"",onInvalid:Y,"onUpdate:modelValue":n[2]||(n[2]=e=>f.accepted_policy=e)},null,40,R),[[i.e8,f.accepted_policy]]),(0,t._)("span",null,[(0,t.Wm)(c,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:(0,t.w5)((()=>[(0,t.Wm)(s,{to:"/privacy-policy",target:"_blank"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])),_:1})])])):(0,t.kq)("",!0)]),(0,t._)("button",{type:"submit",disabled:(0,a.SU)(y)||(0,a.SU)(G)},(0,o.zw)(e.$t((0,a.SU)(P))),9,N)],34),"login"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("div",g,[(0,t.Wm)(s,{class:"links",to:"/register"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,a.SU)(b).is_email_sending_enabled?((0,t.wg)(),(0,t.iD)("span",U,"-")):(0,t.kq)("",!0),(0,a.SU)(b).is_email_sending_enabled?((0,t.wg)(),(0,t.j4)(s,{key:1,class:"links",to:"/password-reset/request"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,t.kq)("",!0)])):(0,t.kq)("",!0),"register"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("div",C,[(0,t._)("span",D,(0,o.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,t.Wm)(s,{class:"links",to:"/login"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,t.kq)("",!0),["login","register"].includes((0,a.SU)(h))&&(0,a.SU)(b).is_email_sending_enabled?((0,t.wg)(),(0,t.iD)("div",v,[(0,t.Wm)(s,{class:"links",to:"/account-confirmation/resend"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,t.kq)("",!0),(0,a.SU)(L)?((0,t.wg)(),(0,t.j4)(u,{key:6,message:(0,a.SU)(L)},null,8,["message"])):(0,t.kq)("",!0)],2)])],2)}}}),f=r(3744);const P=(0,f.Z)(h,[["__scopeId","data-v-4f112f24"]]);var L=P},6595:function(e,n,r){"use strict";r.d(n,{Z:function(){return E}});var t=r(6252),o=r(2262),a=r(2024);const i={class:"user-picture"},s=["alt","src"],l={key:1,class:"no-picture"},c=(0,t._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var m=(0,t.aZ)({__name:"UserPicture",props:{user:null},setup(e){const n=e,r=(0,t.Fl)((()=>n.user.picture?`${(0,a.k)()}users/${n.user.username}/picture?${Date.now()}`:""));return(e,n)=>((0,t.wg)(),(0,t.iD)("div",i,[""!==(0,o.SU)(r)?((0,t.wg)(),(0,t.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,o.SU)(r)},null,8,s)):((0,t.wg)(),(0,t.iD)("div",l,u))]))}});const d=m;var E=d},5630:function(e,n,r){"use strict";r.d(n,{Z:function(){return u}});var t=r(6252),o=r(3577);const a={class:"no-workouts box"};function i(e,n){const r=(0,t.up)("router-link");return(0,t.wg)(),(0,t.iD)("div",a,[(0,t._)("div",null,[(0,t.Uk)((0,o.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,t.Wm)(r,{to:"/workouts/add"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var s=r(3744);const l={},c=(0,s.Z)(l,[["render",i],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,n,r){var t={"./de/de.ts":3010,"./en/en.ts":2709,"./es/es.ts":3429,"./fr/fr.ts":5479,"./gl/gl.ts":6338,"./it/it.ts":6013,"./nb/nb.ts":1901,"./nl/nl.ts":3726,"./pl/pl.ts":5381};function o(e){var n=a(e);return r(n)}function a(e){if(!r.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}o.keys=function(){return Object.keys(t)},o.resolve=a,e.exports=o,o.id=4612},2868:function(){},4777:function(){},9830:function(){},209:function(){},7414:function(){}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var a=n[t]={exports:{}};return e[t].call(a.exports,a,a.exports,r),a.exports}r.m=e,function(){var e=[];r.O=function(n,t,o,a){if(!t){var i=1/0;for(u=0;u=a)&&Object.keys(r.O).every((function(e){return r.O[e](t[l])}))?t.splice(l--,1):(s=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,o,a]}}(),function(){r.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(n,{a:n}),n}}(),function(){var e,n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};r.t=function(t,o){if(1&o&&(t=this(t)),8&o)return t;if("object"===typeof t&&t){if(4&o&&t.__esModule)return t;if(16&o&&"function"===typeof t.then)return t}var a=Object.create(null);r.r(a);var i={};e=e||[null,n({}),n([]),n(n)];for(var s=2&o&&t;"object"==typeof s&&!~e.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((function(e){i[e]=function(){return t[e]}}));return i["default"]=function(){return t},r.d(a,i),a}}(),function(){r.d=function(e,n){for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}}(),function(){r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(n,t){return r.f[t](e,n),n}),[]))}}(),function(){r.u=function(e){return"static/js/"+({24:"reset",193:"statistics",222:"password.fr",261:"password.en",328:"admin",394:"password.es",401:"workouts",802:"password.it",845:"profile",881:"password",940:"password.de"}[e]||e)+"."+{24:"6e5293e6",93:"df2db3a3",193:"ec64386f",222:"eca0ec1d",243:"03fdd6a3",261:"4b788215",328:"757bc8af",394:"0fdfd7ae",401:"eea9f0ee",431:"e117da19",633:"3c920340",802:"9fae932a",845:"e3100ccf",858:"8fd585ad",881:"b8efc50f",940:"d164c0cb"}[e]+".js"}}(),function(){r.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"66742279",845:"567acd35"}[e]+".css"}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="fittrackee_client:";r.l=function(t,o,a,i){if(e[t])e[t].push(o);else{var s,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u{const n=new AbortController;e.signal=n.signal;const r=(0,o.a)(e);o.j.set(r,n);const t=a.Z.getters[i.YN.GETTERS.AUTH_TOKEN];if(t){const n=`Bearer ${t}`;e.headers&&e.headers.Authorization!==n&&(e.headers.Authorization=`Bearer ${t}`)}return e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,o.a)(e.config),e)),(e=>("canceled"!==e.message&&e.response&&(0,o.a)(e.response.config),Promise.reject(e)))),n["Z"]=l},8566:function(e,n,r){"use strict";r.d(n,{a:function(){return a},j:function(){return t}});const t=new Map,o=e=>{const{method:n,url:r,params:t={},data:o={}}=e;return[n,r,JSON.stringify(t),JSON.stringify(o)].join("")},a=e=>{const n=o(e);if(t.has(n)){const e=t.get(n)||{};e?.abort(),t.delete(n)}return n}},2540:function(e,n,r){"use strict";var t=r(9150);const o=["pl"];function a(){const e=r(4612),n={};return e.keys().forEach((r=>{const t=r.match(/([A-Za-z0-9-_]+)\./i);if(t&&t.length>1&&!o.includes(t[1])){const o=t[1];n[o]=e(r).default}})),n}n["Z"]=(0,t.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:a()})},3010:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Über diese Instanz"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["unter ",r(t(0))," Lizenz "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Quellcode"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Wetterdaten von:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Zusätzliche Informationen, die für deine Nutzer nützlich sein könnten. Markdown-Syntax wird unterstützt."])},TEXT:e=>{const{normalize:n}=e;return n(["Detaillierte Instanz-Informationen"])}},ACTION:e=>{const{normalize:n}=e;return n(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Aktiv"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Kontakt-E-Mail des Administrators"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Max. Dateianzahl im zip Archiv"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Max. Anzahl aktiver Nutzer"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Möchtest du wirklich das ",r(t(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Möchtest du wirklich das ",r(t(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Neue E-Mail"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Kein Text eingegeben"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Das wasswort wurde zurückgesetzt."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Füge deine eigene Datenschutzrichtlinie hinzu oder leer lassen, um die standardmäßige zu verwenden. Markdown-Syntax wird unterstützt."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["Trainings existieren"])},IMAGE:e=>{const{normalize:n}=e;return n(["Bild"])},LABEL:e=>{const{normalize:n}=e;return n(["Titel"])}},TITLE:e=>{const{normalize:n}=e;return n(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Aktualisiere Anwemdungskonfiguration."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:n}=e;return n(["Nutzer"])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["Adminstatus"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["Accountstatus"])},USERNAME:e=>{const{normalize:n}=e;return n(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["Trainingsanzahl"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Administratorrechte entfernen"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Die E-Mail Adresse wurde aktualisiert."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["-Element fehlt in der .gpx-Datei."])},"Network Error":e=>{const{normalize:n}=e;return n(["Netzwerkfehler."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Eine Anfrage zum vollständigen Export existiert bereits."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Fehler beim Einlesen der GPX-Datei"])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Fehler bei der GPX-Verarbeitung."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Fehler beim Abrufen der Konfiguration."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Fehler beim Speichern des Workouts."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Fehler beim Aktualisieren der Konfiguration"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["Die Datei ist größer als erlaubt."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["Die .gpx-Datei ist ungültig."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Ungültiges Token, bitte erneut anmelden."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden"])},"no file part":e=>{const{normalize:n}=e;return n(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:n}=e;return n(["Keine Datei ausgewählt."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Kein Track () in der .gpx-Datei."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Eine Anfrage zum Datenexport existiert bereits."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Gebe ein gültiges Authentifizierungstoken an."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Sportart existiert nicht."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Registrierung erfolgreich."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Du hast keine Berechtigung."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["Nächste"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["Vorhergehende"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Bestätigungs-E-Mail erneut senden"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorisieren"])},BACK:e=>{const{normalize:n}=e;return n(["Zurück"])},CANCEL:e=>{const{normalize:n}=e;return n(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:n}=e;return n(["Deaktivieren"])},EDIT:e=>{const{normalize:n}=e;return n(["Bearbeiten"])},ENABLE:e=>{const{normalize:n}=e;return n(["Aktivieren"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Anmelden"])},NO:e=>{const{normalize:n}=e;return n(["Nein"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registrieren"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Daten-Export anfragen"])},RESET:e=>{const{normalize:n}=e;return n(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Speichern"])},YES:e=>{const{normalize:n}=e;return n(["Ja"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["Über"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bestätigung"])},CONTACT:e=>{const{normalize:n}=e;return n(["Kontakt"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["Tag"]),n(["Tage"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["Dokumentation (en)"])},HERE:e=>{const{normalize:n}=e;return n(["hier"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Versteckt"])},HOME:e=>{const{normalize:n}=e;return n(["Startseite"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["aufsteigend"])},DESC:e=>{const{normalize:n}=e;return n(["absteigend"])},LABEL:e=>{const{normalize:n}=e;return n(["sortieren"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["sortiert nach"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["pro Seite"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Dieser Monat"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein. Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Etwas lief schief"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["ID"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Erstellt am"])},NAME:e=>{const{normalize:n}=e;return n(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Geltungsbereich"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Lesezugriff auf auth
-Endpunkte"])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf auth
-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Lesezugriff auf users
-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf users
-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Lesezugriff auf workouts
-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["erlaubt Schreibzugriff auf workouts
-Endpunkte"])}},URL:e=>{const{normalize:n}=e;return n(["Anwendungs-URL"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["OAuth2-Anwendungen"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Die Anwendung ",r(t(0))," fragt an:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n([r(t(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:n}=e;return n(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(["Du kannst die Löschung deines Kontos jederzeit anfragen, indem du (nach dem Anmelden) zu dieser Adresse gehst und auf den „Mein Konto löschen“-Button in der Accountbearbeitung klickst."])},TITLE:e=>{const{normalize:n}=e;return n(["Account löschen"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Wenn wir uns dazu entschließen, unsere Datenschutzrichtlinie zu ändern, werden wir die Änderungen auf dieser Seite posten.\n\nDieses Dokument ist unter der [CC-BY-SA-Lizenz](https://creativecommons.org/licenses/by-sa/4.0/). Angepasst von der Datenschutzrichtlinie von [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Änderungen unserer Datenschutzrichtlinie"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Die folgenden Informationen werden gesammelt:\n- Accountinformationen (Benutzername, E-Mail-Adresse und Password). Du kannst auch zusätzliche Profilinformationen wie Vor- und Nachname, Geburtsdatum, Standort und Biographie eingeben und ein Profilbild hochladen.\n- [GPX](https://de.wikipedia.org/wiki/GPS_Exchange_Format)-Dateien. Diese Dateien enthalten Daten, die mit deinen Aktivitäten zusammenhängen (geographische Koordinaten, Datum, Distanz, Dauer, maximale und durchschnittliche Geschwindigkeit, Höhe, Pulsrate...). Wenn du einige dieser Daten nicht preisgeben möchtest, kannst du die Dateien vor dem Hochladen bereinigen oder Workouts ohne GPX-Dateien hochladen.\n- Workout-Daten (Sportart, Titel, Datum, Dauer, Distanz, An- und Abstieg, Notizen).\n- Technische Informationen (Browser und Betriebssystem)."])},TITLE:e=>{const{normalize:n}=e;return n(["Welche Informationen sammeln wir?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Wir verkaufen deine personenbezogenen Informationen nicht und übertragen sie auch nicht an Dritte.\n\nDies enthält nicht vertrauliche Dritte die uns beim Betreiben dieser Seiten helfen, solange diese Parteien zustimmen, die Informationen vertraulich zu behandeln.\n\nWir können auch Informationen preisgeben, wenn wir denken, dass dieses Preisgeben angemessen ist, um mit dem Gesetz übereinzustimmen, unsere Seitenrichtlinien durchzusetzen oder um unsere oder die Rechte und Sicherheit anderer zu schützen.\n\nWenn du einer Anwendung von Dritten die Berechtigung gibst, deinen Account zu nutzen, abhängig von den Berechtigungen, denen du zustimmst, können sie möglicherweise auf Profilinformationen oder Workouts zugreifen. Anwendungen können niemals dein Passwort einsehen."])},TITLE:e=>{const{normalize:n}=e;return n(["Geben wir Informationen an Außenstehende weiter?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Informationen zu gewährleisten, wenn du diese eingibst oder auf sie zugreifst."])},TITLE:e=>{const{normalize:n}=e;return n(["Wie schützen wir deinen Informationen?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Diese gesammelten Informationen können verwendet werden, um die Kernfunktionen von **FitTrackee** zu gewährleisten:\n- GPX-Dateien werden verwendet, um Workouts zu erstellen, Tracks auf Karten (mit [OpenStreetMap](https://www.openstreetmap.org) und dem konfigurierten Tile-Server) und Diagrammen darzustellen, Karten-Thumbnails zu erstellen, Rekorde zu berechnen und Wetterdaten zu erhalten (wenn ein Wetteranbieter gesetzt wurde).\n- Profilinformationen und Workouts werden nicht öffentlich angezeigt. Ein registrierter Nutzen kann nur seine eigenen Workouts anzeigen.\n- Die E-Mail-Adresse, die du angibst, kann verwendet werden, um dir Informationen oder Bestätigungen zu Accountänderungen zu schicken."])},TITLE:e=>{const{normalize:n}=e;return n(["Für was verwenden wir deine Informationen?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Wenn dieser Server in der EU oder EEA steht: Unsere Seite und Services sind für Personen, die mindestens 16 Jahre alt sind. Wenn du unter 16 bist, benutze diese Seite gemäß den Bestimmungen der [DSGVO](https://de.wikipedia.org/wiki/Datenschutz-Grundverordnung) (Datenschutz-Grundverordnung) nicht.\n\nWenn dieser Server in den USA steht: Unsere Seite und Services sind für Personen, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, benutze diese Seite gemäß den Bestimmungen der [COPPA](https://de.wikipedia.org/wiki/Children%E2%80%99s_Online_Privacy_Protection_Act) (Children’s Online Privacy Protection Act) nicht.\n\nGesetzliche Anforderungen können in anderen Rechtsbereichen anders sein."])},TITLE:e=>{const{normalize:n}=e;return n(["Seitennutzung durch Kinder"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Durch das Benutzen unserer Seite stimmst du der Datenschutzrichtlinie der Webseite zu."])},TITLE:e=>{const{normalize:n}=e;return n(["Deine Zustimmung"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Letztes Update"])},TITLE:e=>{const{normalize:n}=e;return n(["Datenschutzrichtlinie"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Radfahren (Virtuell)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken (elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Bergsteigen"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Rudern"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Gehen"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistik"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["Monat"])},week:e=>{const{normalize:n}=e;return n(["Woche"])},year:e=>{const{normalize:n}=e;return n(["Jahr"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:n}=e;return n(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Gebe ein Passwort ein"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Datenexport"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Archiv herunterladen"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["generiere Link..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Du kannst alle 24 Stunden ein Archiv anfragen"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["fehlgeschlagen (bitte frage einen anderen Export an)"])},in_progress:e=>{const{normalize:n}=e;return n(["in Arbeit..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Ungültiges Token, bitte fordere ein neues Passworts an."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Ich möchte meinen Account löschen"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Sprache"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Die Datenschutzrichtlinie wurde aktualisiert, bitte ",r(t(0))," sie vor dem Fortfahren."])},LOGIN:e=>{const{normalize:n}=e;return n(["Anmeldung"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Abmelden"])},LOG_IN:e=>{const{normalize:n}=e;return n(["Anmelden"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Passwort vergessen?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["mittel"])},GOOD:e=>{const{normalize:n}=e;return n(["gut"])},LABEL:e=>{const{normalize:n}=e;return n(["Passwortstärke"])},STRONG:e=>{const{normalize:n}=e;return n(["start"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Schreibe einige, aber nicht alle Buchstaben groß."])},anotherWord:e=>{const{normalize:n}=e;return n(["Füge weitere weniger gebräuchliche Wörter hinzu."])},associatedYears:e=>{const{normalize:n}=e;return n(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},capitalization:e=>{const{normalize:n}=e;return n(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:n}=e;return n(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},l33t:e=>{const{normalize:n}=e;return n(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},noNeed:e=>{const{normalize:n}=e;return n(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:n}=e;return n(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])},recentYears:e=>{const{normalize:n}=e;return n(["Vermeide Angabe von letzten Jahreszahlen."])},repeated:e=>{const{normalize:n}=e;return n(["Vermeide wiederholungen von Wörtern und Zeichen."])},reverseWords:e=>{const{normalize:n}=e;return n(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},sequences:e=>{const{normalize:n}=e;return n(["Vermeide gebräuchliche Zeichenfolgen."])},useWords:e=>{const{normalize:n}=e;return n(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])}},WEAK:e=>{const{normalize:n}=e;return n(["schwach"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Dein Passwort wurde aktualisiert. Klicke ",r(t(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Kontoausgabe"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Zurück zum Profil"])},BIO:e=>{const{normalize:n}=e;return n(["Biographie"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Geburtsdatum"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Datumsanzeigeformat"])},EDIT:e=>{const{normalize:n}=e;return n(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Einstellungen für Sportarten ändern"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Höhendiagramm startet bei"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Minimale Höhe"])},ZERO:e=>{const{normalize:n}=e;return n(["Null"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Bitte ",r(t(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Erster Tag der Woche"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Vorname"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Sprache"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Nachname"])},LOCATION:e=>{const{normalize:n}=e;return n(["Ort"])},MONDAY:e=>{const{normalize:n}=e;return n(["Montag"])},PICTURE:e=>{const{normalize:n}=e;return n(["Bild"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Bildausgabe"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Bild entfernen"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Bild aktualisieren"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Einstellungsausgabe"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Datenschutzrichtlinie"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Registrierungsdatum"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["Aktion"])},COLOR:e=>{const{normalize:n}=e;return n(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["aktiv"])},LABEL:e=>{const{normalize:n}=e;return n(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["Geschwindigkeitsschwellenwert für Stopp"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Sportarten-Einstellungsausgabe"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Dein Konto wurde erfolgreich aktualisiert."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["Konto"])},APPS:e=>{const{normalize:n}=e;return n(["Anwendungen"])},PICTURE:e=>{const{normalize:n}=e;return n(["Bild"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["Einstellungen"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["Datenschutzrichtlinie"])},PROFILE:e=>{const{normalize:n}=e;return n(["Profil"])},SPORTS:e=>{const{normalize:n}=e;return n(["Sportarten"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Zeitzone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Imperiales System (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Einheiten für die Distanz"])},METRIC:e=>{const{normalize:n}=e;return n(["Metrisches System (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Gefiltert"])},LABEL:e=>{const{normalize:n}=e;return n(["Höchstgeschwindigkeitsstrategie"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Rau"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Ich habe die ",r(t(0))," gelesen und stimme ihr zu."])},REGISTER:e=>{const{normalize:n}=e;return n(["Registrieren"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Entschuldigung, die Registrierung ist deaktiviert."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["E-Mail zur Kontobestätigung erneut senden"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort zurücksetzen"])},REVIEW:e=>{const{normalize:n}=e;return n(["überprüfen"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Dieser Account ist inaktiv."])},USERNAME:e=>{const{normalize:n}=e;return n(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(["3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["Benutzerbild"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Du hast die ",r(t(0))," akzeptiert."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["Analyse"])},ASCENT:e=>{const{normalize:n}=e;return n(["Aufstieg"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["Durchschnittsgeschwindigkeit"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["Durchschn. Geschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["zurück zum Training"])},DATE:e=>{const{normalize:n}=e;return n(["Datum"])},DESCENT:e=>{const{normalize:n}=e;return n(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["zeige Filter"])},DISTANCE:e=>{const{normalize:n}=e;return n(["Entfernung"])},DURATION:e=>{const{normalize:n}=e;return n(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:n}=e;return n(["Höhe"])},END:e=>{const{normalize:n}=e;return n(["Ende"])},FROM:e=>{const{normalize:n}=e;return n(["Von"])},GPX_FILE:e=>{const{normalize:n}=e;return n([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["verberge Filter"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["Die Distanz muss größer als 0 sein"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["Die Dauer muss größer als 0 Sekunden sein"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Nächstes Training"])},NOTES:e=>{const{normalize:n}=e;return n(["Anmerkungen"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Keine Trainings."])},PAUSES:e=>{const{normalize:n}=e;return n(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Vorheriges Training"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["Aufzeichnung"]),n(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Weiteste Entfernung"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Höchster Anstieg"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["verbleibende Zeichen"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["Segment"]),n(["Segmente"])])},SPEED:e=>{const{normalize:n}=e;return n(["Geschwindigkeit"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["Sportart"]),n(["Sportarten"])])},START:e=>{const{normalize:n}=e;return n(["Start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:n}=e;return n(["Titel"])},TO:e=>{const{normalize:n}=e;return n(["bis"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Füge erstes Training hinzu!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["klarer Tag"])},"clear-night":e=>{const{normalize:n}=e;return n(["klare Nacht"])},cloudy:e=>{const{normalize:n}=e;return n(["wolkig"])},fog:e=>{const{normalize:n}=e;return n(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:n}=e;return n(["Regen"])},sleet:e=>{const{normalize:n}=e;return n(["Schneeregen"])},snow:e=>{const{normalize:n}=e;return n(["Schnee"])},wind:e=>{const{normalize:n}=e;return n(["Wind"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["Temperatur"])},WIND:e=>{const{normalize:n}=e;return n(["Wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["O"])},ENE:e=>{const{normalize:n}=e;return n(["ONO"])},ESE:e=>{const{normalize:n}=e;return n(["OSO"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NO"])},NNE:e=>{const{normalize:n}=e;return n(["NNO"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SO"])},SSE:e=>{const{normalize:n}=e;return n(["SSO"])},SSW:e=>{const{normalize:n}=e;return n(["SSW"])},SW:e=>{const{normalize:n}=e;return n(["SW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["ohne .gpx Datei"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["mit .gpx Datei"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["Training"]),n(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["oder .zip Datei mit .gpx Dateien"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},2709:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["About this instance"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["under ",r(t(0))," license "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Source code"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Weather data from:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Any additional information that may be useful to your users. Markdown syntax can be used."])},TEXT:e=>{const{normalize:n}=e;return n(["Detailed instance information"])}},ACTION:e=>{const{normalize:n}=e;return n(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activate account"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Active"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Add/remove admin rights, delete user account."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Administrator email for contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Max. files of zip archive"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["If 0, no limitation on registration."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Max. number of active users"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Are you sure you want to delete ",r(t(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Are you sure you want to reset ",r(t(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Current email"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["New email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["No text entered"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["The password has been reset."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Add your own privacy policy or leave blank to use the default one. Markdown syntax can be used."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Active"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["workouts exist"])},IMAGE:e=>{const{normalize:n}=e;return n(["Image"])},LABEL:e=>{const{normalize:n}=e;return n(["Label"])}},TITLE:e=>{const{normalize:n}=e;return n(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Update application configuration."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Update email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["user"]),n(["users"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["admin status"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["registration date"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["account status"])},USERNAME:e=>{const{normalize:n}=e;return n(["username"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["workout count"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Remove admin rights"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["The email address has been updated."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n([" element is missing in .gpx file."])},"Network Error":e=>{const{normalize:n}=e;return n(["Network Error."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Please try again or contact the administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["At least one file in zip archive exceeds size limit, please check the archive."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["A completed export request already exists."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: valid email must be provided."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Error during gpx file parsing."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Error during gpx processing."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Error on getting configuration."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Error when saving workout."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["File size is greater than the allowed size."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["The .gpx file is invalid."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Invalid credentials."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Invalid token, please log in again."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:n}=e;return n(["No file provided."])},"no selected file":e=>{const{normalize:n}=e;return n(["No selected file."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["No track () in .gpx file."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["A data export request already exists."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Provide a valid auth token."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Signature expired. Please log in again."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Sport does not exist."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Successfully registered."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["The number of files in the archive exceeds the limit."])},"user does not exist":e=>{const{normalize:n}=e;return n(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["You do not have permissions."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["next"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["previous"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Resend confirmation email"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Authorize"])},BACK:e=>{const{normalize:n}=e;return n(["Back"])},CANCEL:e=>{const{normalize:n}=e;return n(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Delete my account"])},DISABLE:e=>{const{normalize:n}=e;return n(["Disable"])},EDIT:e=>{const{normalize:n}=e;return n(["Edit"])},ENABLE:e=>{const{normalize:n}=e;return n(["Enable"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Log in"])},NO:e=>{const{normalize:n}=e;return n(["No"])},REGISTER:e=>{const{normalize:n}=e;return n(["Register"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Request data export"])},RESET:e=>{const{normalize:n}=e;return n(["Reset"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Submit"])},YES:e=>{const{normalize:n}=e;return n(["Yes"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["about"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmation"])},CONTACT:e=>{const{normalize:n}=e;return n(["contact"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["day"]),n(["days"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Displayed"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentation"])},HERE:e=>{const{normalize:n}=e;return n(["here"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Hidden"])},HOME:e=>{const{normalize:n}=e;return n(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascending"])},DESC:e=>{const{normalize:n}=e;return n(["descending"])},LABEL:e=>{const{normalize:n}=e;return n(["sort"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["order by"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["par page"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["This month"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["The application seems to have encountered some issues. Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Page not found"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Something went wrong"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Please try again or contact the administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Secret"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Application description"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Issue at"])},NAME:e=>{const{normalize:n}=e;return n(["Application name"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants read access to auth
endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to auth
endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants read access to users
endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to users
endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants read access to workouts
endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["grants write access to workouts
endpoints."])}},URL:e=>{const{normalize:n}=e;return n(["Application URL"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["OAuth2 applications"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["The application ",r(t(0))," is requesting:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Authorize ",r(t(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Delete application"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Add an application"])},NO_APP:e=>{const{normalize:n}=e;return n(["Application not found!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["All existing associated tokens have been revoked."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['You can request the deletion of your account at any time by going to this address (after logging in) and clicking on "Delete My Account" button in your account edition.'])},TITLE:e=>{const{normalize:n}=e;return n(["Account deletion"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["If we decide to change our privacy policy, we will post those changes on this page.\n\nThis document is under [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) license. Originally adapted from the [Discourse](https://github.com/discourse/discourse) privacy policy."])},TITLE:e=>{const{normalize:n}=e;return n(["Changes to our Privacy Policy"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["The following information are collected:\n- Account information (username, e-mail address and password). You may also enter additional profile information such as a first name, last name, birth date, location, biography and upload a profile picture.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) files. These files contain data related to your activities (geographic coordinates, date, distance, duration, max and average speeds, elevation, heart rate…). If you don't want to expose some data, clean them before upload or add workouts without GPX files.\n- Workout data (sport, title, date, duration, distance, ascent, descent, notes).\n- Technical information (browser name and operating system)."])},TITLE:e=>{const{normalize:n}=e;return n(["What information do we collect?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["We do not sell, trade or otherwise transfer to outside parties your personally identifiable information.\n\nThis does not include trusted third parties who assist us in operating our site and servicing you, so long as those parties agree to keep this information confidential. \n\nWe may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.\n\nWhen you authorize a third-party application to use your account, depending on the scope of permissions you approve, it may access your profile information or your workouts. Applications can never access your password."])},TITLE:e=>{const{normalize:n}=e;return n(["Do we disclose any information to outside parties?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information."])},TITLE:e=>{const{normalize:n}=e;return n(["How do we protect your information?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Any of the information we collect from you may be used to provide the core functionality of **FitTrackee**:\n- GPX files are used to create workouts, display tracks on map (with [OpenStreetMap](https://www.openstreetmap.org) and the configured tile server) and charts, generate map thumbnails, calculate records and get weather data (if a weather provider is set).\n- Profile information and workouts are not displayed publicly. A registered user can only display his own workouts.\n- The email address you provide may be used to send you information or confirm your account modifications."])},TITLE:e=>{const{normalize:n}=e;return n(["What do we use your information for?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["If this server is in the EU or the EEA: Our site and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation) do not use this site.\n\nIf this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act) do not use this site.\n\nLaw requirements can be different if this server is in another jurisdiction."])},TITLE:e=>{const{normalize:n}=e;return n(["Site usage by children"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["By using our site, you consent to our web site privacy policy."])},TITLE:e=>{const{normalize:n}=e;return n(["Your Consent"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Last update"])},TITLE:e=>{const{normalize:n}=e;return n(["privacy policy"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Cycling (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking (Electric)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Mountaineering"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Rowing"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Walking"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistics"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["month"])},week:e=>{const{normalize:n}=e;return n(["week"])},year:e=>{const{normalize:n}=e;return n(["year"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Current password"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Enter a password"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Data export"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Download archive"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["generating link..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["You can request an archive by 24 hours"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["errored (please request another export)"])},in_progress:e=>{const{normalize:n}=e;return n(["in progres..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["hide password"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Invalid token, please request a new password reset."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["I want to delete my account"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Language"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["The privacy policy has been updated, please ",r(t(0))," it before proceeding."])},LOGIN:e=>{const{normalize:n}=e;return n(["Login"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Logout"])},LOG_IN:e=>{const{normalize:n}=e;return n(["log in"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["New password"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["No users found."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Forgot password?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["At least 8 characters required."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["average"])},GOOD:e=>{const{normalize:n}=e;return n(["good"])},LABEL:e=>{const{normalize:n}=e;return n(["password strength"])},STRONG:e=>{const{normalize:n}=e;return n(["strong"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Capitalize some, but not all letters."])},anotherWord:e=>{const{normalize:n}=e;return n(["Add more words that are less common."])},associatedYears:e=>{const{normalize:n}=e;return n(["Avoid years that are associated with you."])},capitalization:e=>{const{normalize:n}=e;return n(["Capitalize more than the first letter."])},dates:e=>{const{normalize:n}=e;return n(["Avoid dates and years that are associated with you."])},l33t:e=>{const{normalize:n}=e;return n(["Avoid predictable letter substitutions like ","@"," for a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Use longer keyboard patterns and change typing direction multiple times."])},noNeed:e=>{const{normalize:n}=e;return n(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:n}=e;return n(["If you use this password elsewhere, you should change it."])},recentYears:e=>{const{normalize:n}=e;return n(["Avoid recent years."])},repeated:e=>{const{normalize:n}=e;return n(["Avoid repeated words and characters."])},reverseWords:e=>{const{normalize:n}=e;return n(["Avoid reversed spellings of common words."])},sequences:e=>{const{normalize:n}=e;return n(["Avoid common character sequences."])},useWords:e=>{const{normalize:n}=e;return n(["Use multiple words, but avoid common phrases."])}},WEAK:e=>{const{normalize:n}=e;return n(["weak"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Your password have been updated. Click ",r(t(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Account edition"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Ascent-related data (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Back to profile"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Birth date"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Date display format"])},EDIT:e=>{const{normalize:n}=e;return n(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Edit sports preferences"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Elevation chart starts at"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Minimum altitude"])},ZERO:e=>{const{normalize:n}=e;return n(["Zero"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Please ",r(t(0))," to change your email address again or contact the administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["First day of week"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["First name"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Language"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Last name"])},LOCATION:e=>{const{normalize:n}=e;return n(["Location"])},MONDAY:e=>{const{normalize:n}=e;return n(["Monday"])},PICTURE:e=>{const{normalize:n}=e;return n(["Picture"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Picture edition"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Remove picture"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Update picture"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Preferences edition"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Privacy policy"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Registration date"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["action"])},COLOR:e=>{const{normalize:n}=e;return n(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["active"])},LABEL:e=>{const{normalize:n}=e;return n(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["stopped speed threshold"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Sports preferences edition"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Your account has been updated successfully."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["account"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["picture"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferences"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["privacy policy"])},PROFILE:e=>{const{normalize:n}=e;return n(["profile"])},SPORTS:e=>{const{normalize:n}=e;return n(["sports"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Imperial system (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Units for distance"])},METRIC:e=>{const{normalize:n}=e;return n(["Metric system (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtered"])},HELP:e=>{const{normalize:n}=e;return n(["If filtered, it excludes extreme values (which may be GPS errors) when calculating the maximum speed."])},LABEL:e=>{const{normalize:n}=e;return n(["GPX max speed strategy"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Raw"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["I have read and agree to the ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["Register"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Sorry, registration is disabled."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Resend account confirmation email"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset your password"])},REVIEW:e=>{const{normalize:n}=e;return n(["review"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["This user account is inactive."])},USERNAME:e=>{const{normalize:n}=e;return n(["Username"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["user picture"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["You have accepted the ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Add a workout"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analysis"])},ASCENT:e=>{const{normalize:n}=e;return n(["ascent"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["average speed"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["ave. speed"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["back to workout"])},DATE:e=>{const{normalize:n}=e;return n(["date"])},DESCENT:e=>{const{normalize:n}=e;return n(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["display filters"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distance"])},DURATION:e=>{const{normalize:n}=e;return n(["duration"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Edit the workout"])},ELEVATION:e=>{const{normalize:n}=e;return n(["elevation"])},END:e=>{const{normalize:n}=e;return n(["end"])},FROM:e=>{const{normalize:n}=e;return n(["from"])},GPX_FILE:e=>{const{normalize:n}=e;return n([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["hide filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Both elevation values must be provided and be greater than or equal to 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["The distance must be greater than 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["The duration must be greater than 0 seconds"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["max. altitude"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["max files"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["max size"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Next workout"])},NOTES:e=>{const{normalize:n}=e;return n(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["No file provided"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["no folder inside"])},NO_MAP:e=>{const{normalize:n}=e;return n(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["No next workout"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["No previous workout"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["No records."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["No workouts."])},PAUSES:e=>{const{normalize:n}=e;return n(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Previous workout"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["records"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Ave. speed"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Farthest distance"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Highest ascent"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Longest duration"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["remaining characters"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segments"])])},SPEED:e=>{const{normalize:n}=e;return n(["speed"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sports"])])},START:e=>{const{normalize:n}=e;return n(["start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["start elevation axis at zero"])},TITLE:e=>{const{normalize:n}=e;return n(["title"])},TO:e=>{const{normalize:n}=e;return n(["to"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Upload one!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["clear day"])},"clear-night":e=>{const{normalize:n}=e;return n(["clear night"])},cloudy:e=>{const{normalize:n}=e;return n(["cloudy"])},fog:e=>{const{normalize:n}=e;return n(["fog"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["partly cloudy night"])},rain:e=>{const{normalize:n}=e;return n(["rain"])},sleet:e=>{const{normalize:n}=e;return n(["sleet"])},snow:e=>{const{normalize:n}=e;return n(["snow"])},wind:e=>{const{normalize:n}=e;return n(["wind"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humidity"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperature"])},WIND:e=>{const{normalize:n}=e;return n(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSW"])},SW:e=>{const{normalize:n}=e;return n(["SW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["without .gpx file"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["with .gpx file"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["workout"]),n(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["or .zip file containing .gpx files"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},3429:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Sobre esta instancia"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacta con la administración"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee es un gestor de actividades en exterior autohospedado."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["con licencia ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Código fuente"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Datos meteorología:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Cualquier tipo de información adicional que pueda ser útil para tus usuarios. Puedes usar Markdown."])},TEXT:e=>{const{normalize:n}=e;return n(["Información detallada sobre la instancia"])}},ACTION:e=>{const{normalize:n}=e;return n(["Acción"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activar cuenta"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Activa"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administración"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Añadir/Retirar derechos de aministración, eliminar cuenta de usuario."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Aplicación"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Contacto por email con la administración"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Núm. máximo de ficheros en el zip"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Si 0, no hay límite para los registros."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Núm. máximo de usuarios activos"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["sin email de contacto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño máx. de los ficheros subidos (en Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Configuración de la aplicación"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño máx. del fichero zip (en Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Volver a admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["¿Seguro que quieres eliminar la cuenta ",r(t(0)),"? Se borrarán todos los datos y no será reversible."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["¿Seguro que quieres restablecer la contraseña de ",r(t(0)),"?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Email actual"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Eliminar usuario"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["El envío de email está desactivado."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Activar/desactivar deportes."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nuevo email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["No hay texto"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Se ha restablecido la contraseña."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Añade tu propia política de privacidad o déjalo en blanco para usar una por defecto. Puedes usar Markdown."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Actualmente está desactivada la creación de cuentas."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Actualmente está abierta la creación de cuentas."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablecer contraseña"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Activa"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["ya existe el entrenamiento"])},IMAGE:e=>{const{normalize:n}=e;return n(["Imagen"])},LABEL:e=>{const{normalize:n}=e;return n(["Etiqueta"])}},TITLE:e=>{const{normalize:n}=e;return n(["Administrar deportes"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Actualizar la configuración de la aplicación."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Actualizar email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["usuario"]),n(["usuarios"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["estatus de admin"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["data de registro"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["tipo de cuenta"])},USERNAME:e=>{const{normalize:n}=e;return n(["identificador"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["número de entramientos"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Otorgar permiso de admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Retirar permiso de admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["La dirección de email ha sido actualizada."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["Falta el elemento en el archivo .gpx."])},"Network Error":e=>{const{normalize:n}=e;return n(["Error en la red."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Inténtalo de nuevo o contacta con la administración."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Por lo menos uno de los ficheros dentro del archivo zip excede el límite de tamaño, comprueba el archivo."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Ya existe una solicitud de exportación completa."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: debes proporcionar un email válido."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Error al procesar el fichero gpx."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Error en el procesado del gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Error al obtener la configuración."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Error al guardar el entrenamiento."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Error al actualizar la configuración"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Error, inténtalo de nuevo más tarde o contacta con la administración."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Error, no se permiten nuevos registros."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Extensión de fichero no permitida."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["El tamaño del fichero es mayor del permitido."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["El archivo .gpx no es válido."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Credenciales no válidas."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Los datos proporcionados no son válidos."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Token no válido, por favor vuelve a iniciar sesión."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Token no válido, inicia sesión de nuevo."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["El nuevo email tiene que ser diferente al email actual"])},"no file part":e=>{const{normalize:n}=e;return n(["Sin fichero."])},"no selected file":e=>{const{normalize:n}=e;return n(["Sin fichero seleccionado."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["No hay pista () en el archivo .gpx."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Ya existe una solicitud de exportación."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Contraseña: la contraseña y la confirmación no coinciden."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Proporciona un auth token válido."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Firma caducada. Inicia sesión de nuevo."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Lo sentimos, pero el nombre de usuario ya está en uso."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["No existe este deporte."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Cuenta creada correctamente."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["El número de ficheros en el archivo excede el límite."])},"user does not exist":e=>{const{normalize:n}=e;return n(["No existe el usuario."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Debes proporcionar un email válido para el contacto de administración"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["No puedes eliminar tu cuenta, ninguna otra tiene permisos de administración."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["No tienes permiso."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["siguiente"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["anterior"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Reenviar correo de confirmación"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorizar"])},BACK:e=>{const{normalize:n}=e;return n(["Volver"])},CANCEL:e=>{const{normalize:n}=e;return n(["Cancelar"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Eliminar filtros"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Eliminar mi cuenta"])},DISABLE:e=>{const{normalize:n}=e;return n(["Desactivar"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar"])},ENABLE:e=>{const{normalize:n}=e;return n(["Activar"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtro"])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceder"])},NO:e=>{const{normalize:n}=e;return n(["No"])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear cuenta"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Solicitar exportación de datos"])},RESET:e=>{const{normalize:n}=e;return n(["Restablecer"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Enviar"])},YES:e=>{const{normalize:n}=e;return n(["Si"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["acerca de"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmación"])},CONTACT:e=>{const{normalize:n}=e;return n(["contacto"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["día"]),n(["días"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Mostrado"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentación"])},HERE:e=>{const{normalize:n}=e;return n(["aquí"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Oculto"])},HOME:e=>{const{normalize:n}=e;return n(["Inicio"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascenso"])},DESC:e=>{const{normalize:n}=e;return n(["descenso"])},LABEL:e=>{const{normalize:n}=e;return n(["ordenar"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["ordenar por"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["por página"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Tablero"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Este mes"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Parece que hay algún problema con la aplicación. Por favor inténtalo de nuevo más tarde o contacta con la administración."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["No se encuentra la página"])},WORKOUT:e=>{const{normalize:n}=e;return n(["No se encuentra el entrenamiento"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Ha habido un error"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Error. Inténtalo de nuevo o contacta con la administración."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Añadir aplicación OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Clave secreta"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Descripción de la aplicación"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Edición en"])},NAME:e=>{const{normalize:n}=e;return n(["Nombre de la aplicación"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL de redirección"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Ámbito"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de escritura a la aplicación configurada."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a puntos de acceso auth
."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a los puntos de acceso auth
."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a los puntos de acceso users
."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de escritura a los puntos de acceso users
."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura a los puntos de acceso workouts
."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de escritura a los puntos de acceso workouts
."])}},URL:e=>{const{normalize:n}=e;return n(["URL de la aplicación"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Aplicaciones OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Aplicación creada correctamente. Asegúrate de que copias la clave secreta, no volverá a ser mostrada."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["¿Estás seguro de que quieres eliminar esta app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La aplicación ",r(t(0))," solicita:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["¿Autorizar a ",r(t(0))," a usar tu cuenta?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copiar al portapapeles"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Eliminar aplicación"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Añadir una aplicación"])},NO_APP:e=>{const{normalize:n}=e;return n(["No se encuentra la aplicación!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["sin aplicaciones"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["sin descripción"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Revocar todas las claves"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["¿Estás seguro de revocar todas las claves?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Todas las claves asociadas han sido revocadas."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['Puedes solicitar en cualquier momento la eliminación de tu cuenta yendo a esta dirección (tras iniciar sesión) y pulsando en el botón "Eliminar mi Cuenta" en los ajustes de la cuenta.'])},TITLE:e=>{const{normalize:n}=e;return n(["Eliminación de la cuenta"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Si decidimos cambiar nuestra política de privacidad, anunciaremos los cambios en esta página.\n\nEste documento está bajo licencia [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptado de la política de privacidad original de [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Cambios en la Política de Privacidad"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Recogemos la siguiente información:\n- Información de la cuenta (nombre de usuario, dirección de correo electrónico y contraseña). También información opcional de tu perfil como podría ser el nombre, apellido, fecha de nacimiento, localización, biografía y la imagen de perfil subida. \n- Ficheros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estos ficheros contienen datos relacionados con tus actividades (coordenadas geográficas, fecha, distancia, duración, velocidades máxima y media, altitud, ritmo cardíaco...). Si non quieres exponer estos datos, bórralos antes de subirlos o bien añade los entrenamientos sin fichero GPX. \n- Datos de entrenamiento (deporte, título, fecha, duranción, distancia, ascenso, descenso, notas). \n- Información técnica (navegador y sistema operativo)."])},TITLE:e=>{const{normalize:n}=e;return n(["¿Qué información recopilamos?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["No vendemos, negociamos o transferimos de otro modo a terceras partes los datos que te identifican personalmente.\n\nEsto no incluye a terceras partes que nos ayudan a gestionar nuestra web y darte servicio, siempre que esas terceras partes mantengan el compromiso de confidencialidad.\n\nPodríamos también liberar esta información si al hacerlo creemos que estamos cumpliendo con la ley, reforzando las políticas de nuestra web o protegiendo nuestros y vuestros derechos, propiedad o seguridad.\n\nCuando autorizas a una aplicación de terceros a usar tu cuenta, dependiendo del ámbito de los permisos concedidos, ésta podría acceder a la información de tu perfil o entrenamientos. Las aplicaciones nunca tienen acceso a tu contraseña."])},TITLE:e=>{const{normalize:n}=e;return n(["¿Mostramos algún tipo de información a terceras partes externas?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Implementamos una variedad de medidas de seguridad para mantener tu información personal segura cuando escribes, envías o accedes a tu información personal."])},TITLE:e=>{const{normalize:n}=e;return n(["¿De qué modo protegemos tu información?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Toda la información que recogemos de ti podría usarse para proporcionar las funciones básicas de **FitTrackee**: \n- Los ficheros GPX se usan para crear los entrenamientos, mostrar rutas en el mapa (con [OpenStreetMap](https://www.openstreetmap.org) y el servidor de imágenes de mapa configurado) y gráficos, crear miniaturas de mapa, calcular records e obtener datos de meteorología (si se configura el servicio). \n- Los entrenamientos e información de perfil no se muestran públicamente. Un usuario registrado sólo puede ver sus propios entrenamientos. \n- La dirección de correo electrónico proporcionada podría utilizarse para enviarte información o para confirmar las modificaciones en tu cuenta."])},TITLE:e=>{const{normalize:n}=e;return n(["¿Para qué utilizamos tus datos?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Si este servidor está en la UE o el AEE: nuestra web y servicios están dirigidos a personas de al menos 16 años de edad. Si no tienes 16 años cumplidos, por requerimiento de la [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation) no uses este sitio web.\n\nSi este servidor está en EEUU de América: nuestra web, productos y servicios están orientados a personas de al menos 13 años de edad. Si no tienes 13 cumplidos, por requerimiento de la [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act) no uses esta web.\n\nLos requerimientos legales pueden ser diferentes si este servidor se encuentra en otros lugares."])},TITLE:e=>{const{normalize:n}=e;return n(["Uso de esta web por menores"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Al utilizar nuestra web, aceptas la política de privacidad de nuestra web."])},TITLE:e=>{const{normalize:n}=e;return n(["Tu consentimiento"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Última actualización"])},TITLE:e=>{const{normalize:n}=e;return n(["política de privacidad"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Deportivo)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Transporte)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Senderismo"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Bicicleta por Montaña"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Bicicleta (Eléctrica) por Montaña"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Montañismo"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Remo"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Correr"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí de travesía"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Raquetas de nieve"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Ruta"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Caminar"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Estadísticas"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mes"])},week:e=>{const{normalize:n}=e;return n(["semana"])},year:e=>{const{normalize:n}=e;return n(["año"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["¿No has recibido instrucciones?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Comprueba el correo. Se ha enviado un nuevo email de confirmación a la dirección proporcionada."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["¿Ya tienes una cuenta?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["¿Seguro que quieres eliminar tu cuenta? Se borrarán todos los datos, la decisión no es reversible."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Contraseña actual"])},EMAIL:e=>{const{normalize:n}=e;return n(["Correo electrónico"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Escribe una dirección válida de correo."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Escribe una contraseña"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Exportar datos"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Descargar archivo"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["creando enlace..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Puedes solicitar un archivo cada 24 horas"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["ha fallado (solicita una nueva exportación)"])},in_progress:e=>{const{normalize:n}=e;return n(["en progreso..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrar por nombre de usuario"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["ocultar contraseña"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Clave secreta no válida, solicita un nuevo restablecimiento de contraseña."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Quiero eliminar mi cuenta"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La política de privacidad ha sido actualizada, ",r(t(0))," antes de continuar."])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceder"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Cerrar sesión"])},LOG_IN:e=>{const{normalize:n}=e;return n(["iniciar sesión"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nueva contraseña"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["No hay usuarios."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Contraseña"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["¿Has olvidado la contraseña?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Se requieren 8 caracteres como mínimo."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Restablecer la contraseña"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Comprueba tu email. Si la dirección está en nuestra base de datos recibirás un email con un enlace para restablecer tu contraseña."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["media"])},GOOD:e=>{const{normalize:n}=e;return n(["buena"])},LABEL:e=>{const{normalize:n}=e;return n(["fortaleza de la contraseña"])},STRONG:e=>{const{normalize:n}=e;return n(["fuerte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Usa alguna mayúscula, pero no todas."])},anotherWord:e=>{const{normalize:n}=e;return n(["Añade más palabras poco comunes."])},associatedYears:e=>{const{normalize:n}=e;return n(["Evita los años asociados a ti."])},capitalization:e=>{const{normalize:n}=e;return n(["Usa alguna mayúscula más que en la primera."])},dates:e=>{const{normalize:n}=e;return n(["Evita fechas y años que se puedan asociar a ti."])},l33t:e=>{const{normalize:n}=e;return n(["Evita substituciones evidentes de letras como ","@"," por la a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Usa patrones de teclado más largos y cambia de dirección de escritura varias veces."])},noNeed:e=>{const{normalize:n}=e;return n(["Puedes crear contraseñas fuertes sin usar símbolos, números o letras mayúsculas."])},pwned:e=>{const{normalize:n}=e;return n(["Si utilizas esta contraseña en otros lugares, deberías cambiarla."])},recentYears:e=>{const{normalize:n}=e;return n(["Evita años recientes."])},repeated:e=>{const{normalize:n}=e;return n(["Evita palabras y caracteres repetidos."])},reverseWords:e=>{const{normalize:n}=e;return n(["Evita palabras del revés o palabras comunes."])},sequences:e=>{const{normalize:n}=e;return n(["Evita secuencias comunes de caracteres."])},useWords:e=>{const{normalize:n}=e;return n(["Usa varias palabras, pero evita frases comunes."])}},WEAK:e=>{const{normalize:n}=e;return n(["débil"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Se ha actualizado tu contraseña. Pulsa ",r(t(0))," para iniciar sesión."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Edición de la cuenta"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Datos de ascensión (récords, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Volver al perfil"])},BIO:e=>{const{normalize:n}=e;return n(["Biografía"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Fecha de nacimiento"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Formato de la fecha"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar perfil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias de los deportes"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["La elevación del gráfico empieza en"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Altitud mínima"])},ZERO:e=>{const{normalize:n}=e;return n(["Cero"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Por favor, ",r(t(0))," para cambiar su dirección de correo electrónico de nuevo o póngase en contacto con el administrador"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Primer día de la semana"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Nombre"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Apellido"])},LOCATION:e=>{const{normalize:n}=e;return n(["Localización"])},MONDAY:e=>{const{normalize:n}=e;return n(["Lunes"])},PICTURE:e=>{const{normalize:n}=e;return n(["Fotografía"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Editar la foto"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Eliminar la foto"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Actualizar la foto"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Política de privacidad"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Editar perfil"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Fecha de registro"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["acción"])},COLOR:e=>{const{normalize:n}=e;return n(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["desactivada por admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["activa"])},LABEL:e=>{const{normalize:n}=e;return n(["etiqueta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["límite para detectar detención"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Editar preferencias de los deportes"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Se ha actualizado correctamente tu cuenta. Comprueba tu email para confirmar tu nueva dirección de correo electrónico."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Se ha creado correctamente tu cuenta."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Se ha enviado un enlace en un email a tu correo electrónico para activar la cuenta."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Tu cuenta ha sido actualizada correctamente."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Domingo"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["cuenta"])},APPS:e=>{const{normalize:n}=e;return n(["aplicaciones"])},PICTURE:e=>{const{normalize:n}=e;return n(["fotografía"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferencias"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["política de privacidad"])},PROFILE:e=>{const{normalize:n}=e;return n(["perfil"])},SPORTS:e=>{const{normalize:n}=e;return n(["deportes"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Zona horaria"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Sistema Imperial (ft, mi, mph, ºF)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unidades de distancia"])},METRIC:e=>{const{normalize:n}=e;return n(["Sistema Métrico (m, km, m/s, ºC)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrado"])},LABEL:e=>{const{normalize:n}=e;return n(["Estrategia de velocidad máxima"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["En bruto"])},HELP:e=>{const{normalize:n}=e;return n(["Si se filtra, excluye los valores extremos (que pueden ser errores del GPS) al calcular la velocidad máxima."])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["He leído y aceptado la ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear cuenta"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Lo sentimos, no se admiten nuevas cuentas."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Reenviar email de confirmación de cuenta"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablecer contraseña"])},REVIEW:e=>{const{normalize:n}=e;return n(["revisar"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["mostrar contraseña"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Esta cuenta de usuario no está activa."])},USERNAME:e=>{const{normalize:n}=e;return n(["Nombre de usuario"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['Se requieren entre 3 y 30 caracteres, sólo se permiten alfanuméricos y guión bajo "_".'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["foto del usuario"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Has aceptado la ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Añadir entrenamiento"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["análisis"])},ASCENT:e=>{const{normalize:n}=e;return n(["ascenso"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["velocidad media"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["volver al entrenamiento"])},DATE:e=>{const{normalize:n}=e;return n(["fecha"])},DESCENT:e=>{const{normalize:n}=e;return n(["descenso"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["mostrar filtros"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distancia"])},DURATION:e=>{const{normalize:n}=e;return n(["tiempo"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Editar el entranamiento"])},ELEVATION:e=>{const{normalize:n}=e;return n(["altitud"])},END:e=>{const{normalize:n}=e;return n(["fin"])},FROM:e=>{const{normalize:n}=e;return n(["desde"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["fichero .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["ocultar filtros"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Debes proporcionar ambos valores de altura y tienen que ser igual o superior a 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["La distancia debe ser mayor de 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["La duración debe ser mayor que 0 segundos"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Últimos entrenamientos"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Cargar más entrenamientos"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitud máxima"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["máx. de ficheros"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["tamaño máximo"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["velocidad máxima"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitud mínima"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Sin tramo siguiente"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Siguiente entrenamiento"])},NOTES:e=>{const{normalize:n}=e;return n(["notas"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["datos desde gpx, sin comprobar"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Sin fichero proporcionado"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["no hay carpeta dentro"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Sin mapa"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["No hay tramo siguiente"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["No hay entrenamiento siguiente"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Sin notas"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["No hay tramo anterior"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["No hay entrenamiento anterior"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Sin registros."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Sin entrenamientos."])},PAUSES:e=>{const{normalize:n}=e;return n(["pausas"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Tramo anterior"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Entrenamiento anterior"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["registro"]),n(["registros"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vel. media"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Distancia mayor"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Ascenso mayor"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Duración más larga"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Velocidad máxima"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["caracteres restantes"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["tramo"]),n(["tramos"])])},SPEED:e=>{const{normalize:n}=e;return n(["velocidad"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["deporte"]),n(["deportes"])])},START:e=>{const{normalize:n}=e;return n(["inicio"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Inicio y final"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["poner la altitud de inicio en el cero del gráfico"])},TITLE:e=>{const{normalize:n}=e;return n(["título"])},TO:e=>{const{normalize:n}=e;return n(["para"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["duración total"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Una subida!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["día despejado"])},"clear-night":e=>{const{normalize:n}=e;return n(["noche despejada"])},cloudy:e=>{const{normalize:n}=e;return n(["nublado"])},fog:e=>{const{normalize:n}=e;return n(["niebla"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["día parcialmente nublado"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["noche parcialmente nublada"])},rain:e=>{const{normalize:n}=e;return n(["lluvia"])},sleet:e=>{const{normalize:n}=e;return n(["granizo"])},snow:e=>{const{normalize:n}=e;return n(["nieve"])},wind:e=>{const{normalize:n}=e;return n(["viento"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humedad"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatura"])},WIND:e=>{const{normalize:n}=e;return n(["viento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNO"])},NW:e=>{const{normalize:n}=e;return n(["NO"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSO"])},SW:e=>{const{normalize:n}=e;return n(["SO"])},W:e=>{const{normalize:n}=e;return n(["O"])},WNW:e=>{const{normalize:n}=e;return n(["ONO"])},WSW:e=>{const{normalize:n}=e;return n(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["sin fichero .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["con fichero .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["entrenamiento"]),n(["entrenamientos"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["fecha del entrenamiento"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["¿Seguro que quieres eliminar este entrenamiento?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["fichero .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["o fichero .zip que contiene ficheros .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},5479:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["A propos de cette instance"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["sous licence ",r(t(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Code source (en)"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Source des données météo :"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Toute information supplémentaire qui peut être utile à vos utilisateurs. La syntaxe Markdown peut être utilisée."])},TEXT:e=>{const{normalize:n}=e;return n(["Information détaillée de l'instance"])}},ACTION:e=>{const{normalize:n}=e;return n(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activer le compte"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Actif"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administration"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Email de l'administrateur pour contact "])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Nombre max. de fichiers dans une archive zip "])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Si égal à 0, pas limite d'inscription"])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Nombre maximum d'utilisateurs actifs "])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:n}=e;return n(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Taille max. des archives zip (en Mo) "])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",r(t(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",r(t(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nouvelle adresse email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["pas de texte saisi"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Le mot de passe a été réinitialisé."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Ajouter votre propre politique de confidentialité ou laisser vider pour utiliser la politique par défaut. La syntaxe Markdown peut être utilisée."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["des séances existent"])},IMAGE:e=>{const{normalize:n}=e;return n(["Image"])},LABEL:e=>{const{normalize:n}=e;return n(["Label"])}},TITLE:e=>{const{normalize:n}=e;return n(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Configurer l'application."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Changer l'email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["utilisateur"]),n(["utilisateurs"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["status administrateur"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["statut du compte"])},USERNAME:e=>{const{normalize:n}=e;return n(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["nombre de séances"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Retirer les droits d'admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["L'adresse email a été mise à jour."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["Elément manquant dans le fichier .gpx."])},"Network Error":e=>{const{normalize:n}=e;return n(["Erreur réseau."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Une demande d'export terminée existe déjà."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Erreur lors de l'analyse du fichier."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Erreur lors du traitement du fichier gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Erreur lors de la récupération de la configuration."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Erreur lors de l'enregistrement de la séance."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["La taille du fichier est supérieure à la limite autorisée."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["Le fichier .gpx est invalide."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Jeton de connexion, merci de vous reconnecter."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"no file part":e=>{const{normalize:n}=e;return n(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:n}=e;return n(["Pas de fichier sélectionné."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Pas de trace () dans le fichier .gpx"])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Une demande d'exportation de données existe déjà."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Merci de fournir un jeton de connexion valide."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Ce sport n'existe pas."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Inscription validée."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Le nombre de fichiers de l'archive dépasse la limite."])},"user does not exist":e=>{const{normalize:n}=e;return n(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["suivant"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["précédent"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Renvoyer le message de confirmation"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autoriser"])},BACK:e=>{const{normalize:n}=e;return n(["Retour"])},CANCEL:e=>{const{normalize:n}=e;return n(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:n}=e;return n(["Désactiver"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifier"])},ENABLE:e=>{const{normalize:n}=e;return n(["Activer"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtrer"])},LOGIN:e=>{const{normalize:n}=e;return n(["Se connecter"])},NO:e=>{const{normalize:n}=e;return n(["Non"])},REGISTER:e=>{const{normalize:n}=e;return n(["S'inscrire"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Demander un export de données"])},RESET:e=>{const{normalize:n}=e;return n(["Réinit."])},SUBMIT:e=>{const{normalize:n}=e;return n(["Valider"])},YES:e=>{const{normalize:n}=e;return n(["Oui"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["à propos"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmation"])},CONTACT:e=>{const{normalize:n}=e;return n(["contact"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["jour"]),n(["jours"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Affiché"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentation (en)"])},HERE:e=>{const{normalize:n}=e;return n(["ici"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Masqué"])},HOME:e=>{const{normalize:n}=e;return n(["Accueil"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascendant"])},DESC:e=>{const{normalize:n}=e;return n(["descendant"])},LABEL:e=>{const{normalize:n}=e;return n(["tri"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["trier par "])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["par page"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Ce mois-ci"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["L'application semble rencontrer quelques problèmes. Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Page introuvable"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Une erreur s'est produite"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erreur. Veuillez réessayer ou contacter l'administrateur."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Secret"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Créée le"])},NAME:e=>{const{normalize:n}=e;return n(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en lecture aux routes auth
."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture aux routes auth
."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en lecture aux routes users
."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture aux routes users
."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en lecture aux routes workouts
."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["donne les droits en écriture aux routes workouts
."])}},URL:e=>{const{normalize:n}=e;return n(["URL de l'application"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Applications OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["L'application ",r(t(0))," demande les accès suivants :"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Autoriser ",r(t(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Ajouter une application"])},NO_APP:e=>{const{normalize:n}=e;return n(["Application introuvable !"])},NO_APPS:e=>{const{normalize:n}=e;return n(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Tous les jetons associés existants ont été révoqués."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['Vous pouvez demander à tout moment la suppression de votre compte en vous rendant à cette adresse (après vous être connecté à votre compte), puis en cliquant sur le bouton sous "Supprimer mon compte" dans l\'espace de mise à jour de votre compte.'])},TITLE:e=>{const{normalize:n}=e;return n(["Suppression du compte"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Si nous décidons de changer notre politique de confidentialité, nous afficherons ces modifications sur cette page.\n\nCe document est sous licence [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptée de la politique de confidentialité de [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Modifications de notre politique de confidentialité"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Les informations suivantes sont collectées :\n- Informations liées au compte (nom d'utilisateur, courriel et mot de passe). Vous pouvez également saisir les informations du profil tel que le prénom, le nom de famille, la date de naissance, la localisation, une biographie et envoyer une image de profil.\n- Fichiers [GPX](https://fr.wikipedia.org/wiki/GPX_(format_de_fichier). Ces fichiers contiennent les données liées à vos activités (coordonnées géographiques, date, distance, durée, vitesses maximale et moyenne, altitude, rythme cardiaque…). Si vous ne souhaitez pas exposer certaines données, nettoyer les fichiers avant de les envoyer ou ajouter des activités sans fichier GPX.\n- Données d'activités (sport, titre, date, durée, distance, dénivelé positif et négatif, notes).\n- Données techniques (nom du navigateur et du système d'exploitation)."])},TITLE:e=>{const{normalize:n}=e;return n(["Quelles sont les informations que nous recueillons ?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Nous ne vendons pas, ni échangeons ou même transférons vos renseignements personnelles à des tiers.\n\nCeci n’inclut pas les tiers de confiance qui nous aident à exploiter notre site ou vous servir, tant que ces parties conviennent à garder ces informations confidentielles.\n\nNous pouvons également divulguer vos informations lorsque nous croyons nécessaire de se conformer à la loi, appliquer nos politiques de site, ou la nôtre ou d’autres droits, la propriété ou la sécurité.\n\nSi vous autorisez une application tierce à utiliser votre compte, selon le périmètre des permissions accordées, elle pourra avoir accès à vos informations de profil ou vos activités. Les applications tierces ne peuvent jamais accéder à votre mot de passe."])},TITLE:e=>{const{normalize:n}=e;return n(["Divulguons-nous des informations à des tiers ?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Nous mettons en œuvre une variété de mesures de sécurité pour maintenir la sécurité de vos informations personnelles lorsque vous saisissez, soumettez ou d’accédez à vos renseignements personnels."])},TITLE:e=>{const{normalize:n}=e;return n(["Comment protégeons-nous vos informations ?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Toutes les informations que nous recueillons auprès de vous peuvent être utilisées afin de fournir les fonctionnalités de **FitTrackee** :\n- Les fichiers GPX sont utilisés pour créer des activités, afficher des traces sur une carte (avec [OpenStreetMap](https://www.openstreetmap.org) et le serveur de tuiles configuré) et des graphiques, générer des vignettes de cartes, calculer des records et obtenir des données météo (si un fournisseur de données météorologiques est configuré).\n- Les informations du profil et les activités ne sont pas affichées publiquement. Un utilisateur enregistré ne peut voir que ses propres activités.\n- Le courriel que vous avez fourni peut être utilisé pour vous envoyer des informations ou confirmer des actions de modification de votre compte."])},TITLE:e=>{const{normalize:n}=e;return n(["Comment utilisons-nous vos informations ?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Si ce serveur est localisé dans l'Union Européenne (UE) ou l'Espace Economique Européen (EEA) : notre site et nos services sont tous destinés aux personnes âgées d'au moins 16 ans. Si vous avez moins de 16 ans, conformément aux exigences du [RGPD](https://fr.wikipedia.org/wiki/R%C3%A8glement_g%C3%A9n%C3%A9ral_sur_la_protection_des_donn%C3%A9es) (Règlement général sur la protection des données), n'utilisez pas ce site.\n\nSi ce serveur se trouve aux États-Unis : notre site et nos services sont tous destinés à des personnes âgées d'au moins 13 ans. Si vous avez moins de 13 ans, conformément aux exigences de la loi [COPPA](https://fr.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), n'utilisez pas ce site.\n\nLes exigences légales peuvent être différentes si ce serveur se trouve dans une autre juridiction."])},TITLE:e=>{const{normalize:n}=e;return n(["Protection des mineurs"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["En utilisant notre site, vous acceptez la politique de confidentialité de notre site web."])},TITLE:e=>{const{normalize:n}=e;return n(["Votre consentement"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Dernière mise à jour"])},TITLE:e=>{const{normalize:n}=e;return n(["politique de confidentialité"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Vélo (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Vélo (Virtuel)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["VTT (Électrique)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Alpinisme"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Aviron"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Marche"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistiques"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mois"])},week:e=>{const{normalize:n}=e;return n(["semaine"])},year:e=>{const{normalize:n}=e;return n(["année"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacées."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:n}=e;return n(["Courriel"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Saisissez un mot de passe"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Export des données"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Télécharger l'archive"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["lien en cours de génération..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Vous pouvez demander un export par 24h"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["en erreur (veuillez demander une nouvelle archive)"])},in_progress:e=>{const{normalize:n}=e;return n(["en cours..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Je souhaite supprimer mon compte"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Langue"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La politique de confidentialité a été mise à jour. Veuillez l'",r(t(0))," avant de poursuivre."])},LOGIN:e=>{const{normalize:n}=e;return n(["Se connecter"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Se déconnecter"])},LOG_IN:e=>{const{normalize:n}=e;return n(["connecter"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Mot de passe"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Mot de passe oublié ?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["8 caractères minimum."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["moyenne"])},GOOD:e=>{const{normalize:n}=e;return n(["bonne"])},LABEL:e=>{const{normalize:n}=e;return n(["robustesse du mot de passe"])},STRONG:e=>{const{normalize:n}=e;return n(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Mettez quelques lettres en majuscules, mais pas toutes."])},anotherWord:e=>{const{normalize:n}=e;return n(["Ajoutez des mots moins courants."])},associatedYears:e=>{const{normalize:n}=e;return n(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},capitalization:e=>{const{normalize:n}=e;return n(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:n}=e;return n(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},l33t:e=>{const{normalize:n}=e;return n(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},noNeed:e=>{const{normalize:n}=e;return n(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:n}=e;return n(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])},recentYears:e=>{const{normalize:n}=e;return n(["Évitez les dernières années."])},repeated:e=>{const{normalize:n}=e;return n(["Évitez les mots et les caractères répétés."])},reverseWords:e=>{const{normalize:n}=e;return n(["Évitez les orthographes inversées des mots courants."])},sequences:e=>{const{normalize:n}=e;return n(["Évitez les séquences de caractères courantes."])},useWords:e=>{const{normalize:n}=e;return n(["Utilisez plusieurs mots, mais évitez les phrases courantes."])}},WEAK:e=>{const{normalize:n}=e;return n(["faible"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Votre mot de passe a été mis à jour. Cliquez ",r(t(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour du compte"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Données relatives au dénivelé positif (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Revenir au profil"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Date de naissance"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Format d'affichage de la date"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifier les préférences des sports"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Début de l'axe pour le graphe affichant l'altitude"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Altitude minimale"])},ZERO:e=>{const{normalize:n}=e;return n(["0"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Veuillez vous ",r(t(0))," pour changer de nouveau votre adresse électronique ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Prénom"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Langue"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Nom"])},LOCATION:e=>{const{normalize:n}=e;return n(["Lieu"])},MONDAY:e=>{const{normalize:n}=e;return n(["Lundi"])},PICTURE:e=>{const{normalize:n}=e;return n(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour de l'image de profil"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Supprimer"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Mettre à jour l'image"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour des préférences"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Politique de confidentialité"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Date d'inscription"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["action"])},COLOR:e=>{const{normalize:n}=e;return n(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["actif"])},LABEL:e=>{const{normalize:n}=e;return n(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["seuil de vitesse arrêtée"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Mise à jour des préférences des sports"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Votre compte a été modifié avec succès."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["compte"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["image"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["préférences"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["politique de confidentialité"])},PROFILE:e=>{const{normalize:n}=e;return n(["profil"])},SPORTS:e=>{const{normalize:n}=e;return n(["sports"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Fuseau horaire"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Système impérial (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unités pour les distances"])},METRIC:e=>{const{normalize:n}=e;return n(["Système métrique (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtré"])},HELP:e=>{const{normalize:n}=e;return n(["Si filtré, les valeurs extrêmes (qui peuvent être des erreurs GPS) sont exclues lors du calcul de la vitesse maximale."])},LABEL:e=>{const{normalize:n}=e;return n(["Calcul de la vitesse maximale"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Brut"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["J'ai lu et accepte la ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Envoyer à nouveau le courriel de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Réinitialiser votre mot de passe"])},REVIEW:e=>{const{normalize:n}=e;return n(["accepter"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Le compte de cet utilisateur est inactif."])},USERNAME:e=>{const{normalize:n}=e;return n(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(["3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés."])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["photo de l'utilisateur"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Vous avez accepté la ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analyse"])},ASCENT:e=>{const{normalize:n}=e;return n(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["revenir à la séance"])},DATE:e=>{const{normalize:n}=e;return n(["date"])},DESCENT:e=>{const{normalize:n}=e;return n(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["afficher les filtres"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distance"])},DURATION:e=>{const{normalize:n}=e;return n(["durée"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Modifier la séance"])},ELEVATION:e=>{const{normalize:n}=e;return n(["altitude"])},END:e=>{const{normalize:n}=e;return n(["fin"])},FROM:e=>{const{normalize:n}=e;return n(["à partir de"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["masquer les filtres"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["La distance doit être supérieure à 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["La durée doit être supérieure à 0 secondes"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitude max"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["taille max. "])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Séance suivante"])},NOTES:e=>{const{normalize:n}=e;return n(["notes"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["pas de répertoire"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Pas de séances."])},PAUSES:e=>{const{normalize:n}=e;return n(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Séance précédente"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["records"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Distance la + longue"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Dénivelé positif le + élevé"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segments"])])},SPEED:e=>{const{normalize:n}=e;return n(["vitesse"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sports"])])},START:e=>{const{normalize:n}=e;return n(["début"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:n}=e;return n(["titre"])},TO:e=>{const{normalize:n}=e;return n(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Ajoutez votre première séance !"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["ensoleillé"])},"clear-night":e=>{const{normalize:n}=e;return n(["nuit claire"])},cloudy:e=>{const{normalize:n}=e;return n(["nuageux"])},fog:e=>{const{normalize:n}=e;return n(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:n}=e;return n(["pluie"])},sleet:e=>{const{normalize:n}=e;return n(["neige fondue"])},snow:e=>{const{normalize:n}=e;return n(["neige"])},wind:e=>{const{normalize:n}=e;return n(["venteux"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humidité"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["température"])},WIND:e=>{const{normalize:n}=e;return n(["vent"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNO"])},NW:e=>{const{normalize:n}=e;return n(["NO"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSO"])},SW:e=>{const{normalize:n}=e;return n(["SO"])},W:e=>{const{normalize:n}=e;return n(["O"])},WNW:e=>{const{normalize:n}=e;return n(["ONO"])},WSW:e=>{const{normalize:n}=e;return n(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["sans fichier .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["avec un fichier .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["séance"]),n(["séances"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["ou une archive .zip contenant des fichiers .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},6338:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Acerca desta instancia"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacta coa administración"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee é un xestor autohospedado de actividades en exterior."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["con licenza ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Código fonte"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Datos meteoroloxía:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Calquera información adicional que puidese ser útil para as túas usuarias. Podes usar Markdown."])},TEXT:e=>{const{normalize:n}=e;return n(["Información detallada sobre a instancia"])}},ACTION:e=>{const{normalize:n}=e;return n(["Acción"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activar conta"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Activa"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administración"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Engadir/Eliminar permiso de admin, eliminar conta de usuarias."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Aplicación"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Email de contacto da administración"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Num. máximo ficheiros arquivo zip"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Se 0, non hai límite de rexistros."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Número máx. de usuarias activas"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["sen correo de contacto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño Máx. dos ficheiros subidos (en MB)"])},TITLE:e=>{const{normalize:n}=e;return n(["Configuración da aplicación"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Tamaño Máx. do arquivo zip (en MB)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Volver a admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Tes a certeza de querer eliminar a conta ",r(t(0)),"? Borraranse todos os datos, non hai volta atrás."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Tes certeza de querer restablecer o contrasinal de ",r(t(0)),"?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Email actual"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Eliminar usuaria"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["O envío de correos está desactivado."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Activar/desactivar deportes."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Novo email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Non escribiches texto"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Restableceuse o contrasinal."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Engade a túa propia política de privacidade ou déixaa baleira para usar unha por defecto. Podes usar Markdown."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Actualmente non se poden crear máis contas."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Actualmente pódense crear novas contas."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablecer contrasinal"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Activo"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["xa existe o adestramento"])},IMAGE:e=>{const{normalize:n}=e;return n(["Imaxe"])},LABEL:e=>{const{normalize:n}=e;return n(["Etiqueta"])}},TITLE:e=>{const{normalize:n}=e;return n(["Administrar deportes"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Actualizar configuración da aplicación."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Actualizar email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["usuaria"]),n(["usuarias"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["rol de admin"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["data de rexistro"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["estado da conta"])},USERNAME:e=>{const{normalize:n}=e;return n(["identificador"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["número adestramentos"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Conceder permisos admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Retirar permisos admin"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Actualizouse o enderezo de email."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n(["falta o elemento no ficheiro .gpx."])},"Network Error":e=>{const{normalize:n}=e;return n(["Erro na rede."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erro. Inténtao outra vez ou contacta coa administración."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Polo menos un ficheiro no arquivo .zip excede o tamaño máximo, comproba o arquivo."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Xa existe unha solicitude de exportación completa."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: debes escribir un correo electrónico válido."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Erro ao procesar o ficheiro gpx."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Erro no procesado gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Erro ao obter a configuración."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Erro ao gardar o adestramento."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Erro ao actualizar a configuración"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Erro, inténtao outra vez ou contacta coa administración."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Erro, non se admiten novas usuarias."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Non está permitida a extensión do ficheiro."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["O tamaño do ficheiro supera o tamaño permitido."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["O ficheiro .gpx non é válido."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Credenciais incorrectas."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Os datos proporcionados non son válidos."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Token non válido, accede outra vez."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Token non válido, accede outra vez."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["O novo email ten que ser diferente ao actual"])},"no file part":e=>{const{normalize:n}=e;return n(["Sen ficheiro proporcionado."])},"no selected file":e=>{const{normalize:n}=e;return n(["Sen ficheiro seleccionado."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Non hai ruta () no ficheiro .gpx."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Xa existe unha solicitude de exportación de datos."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Contrasinal: o contrasinal e a súa confirmación non concordan."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Proporciona unha chave secreta válida."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Caducou a sinatura. Accede outra vez."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Lamentámolo, o nome de usuaria xa está en uso."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Non existe o deporte."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Conta creada correctamente."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["O número de ficheiros no arquivo supera o límite."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Non existe a usuaria."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Hai que proporcionar un correo electrónico válido para contacto de administración"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Non podes eliminar a túa conta, non hai outra usuaria con permisos de administración."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Non tes permisos."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["seguinte"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["anterior"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Volver a enviar un correo de confirmación"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorizar"])},BACK:e=>{const{normalize:n}=e;return n(["Volver"])},CANCEL:e=>{const{normalize:n}=e;return n(["Cancelar"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Limpar filtros"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Eliminar a miña conta"])},DISABLE:e=>{const{normalize:n}=e;return n(["Desactivar"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar"])},ENABLE:e=>{const{normalize:n}=e;return n(["Activar"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtro"])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceder"])},NO:e=>{const{normalize:n}=e;return n(["Non"])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear conta"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Solicitar exportación dos datos"])},RESET:e=>{const{normalize:n}=e;return n(["Restablecer"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Enviar"])},YES:e=>{const{normalize:n}=e;return n(["Si"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["acerca de"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Confirmación"])},CONTACT:e=>{const{normalize:n}=e;return n(["contacto"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["día"]),n(["días"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Mostrado"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentación"])},HERE:e=>{const{normalize:n}=e;return n(["aquí"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Agochado"])},HOME:e=>{const{normalize:n}=e;return n(["Inicio"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["ascenso"])},DESC:e=>{const{normalize:n}=e;return n(["descenso"])},LABEL:e=>{const{normalize:n}=e;return n(["orde"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["ordenar por"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["por páxina"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Total"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Taboleiro"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Este mes"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["A aplicación atopou algún problema. Inténtao máis tarde ou contacta coa administración."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Non se atopa a páxina"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Non se atopa o adestramento"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Algo fallou"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Erro. Inténtao outra vez ou contacta coa administración."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Engadir nova aplicación OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Chave secreta"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Descrición da aplicación"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Edición en"])},NAME:e=>{const{normalize:n}=e;return n(["Noma da aplicación"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL de redirección"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Ámbitos"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso a escritura na configuración da aplicación."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de lectura aos puntos de acceso auth
."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de escritura aos puntos de acceso auth
."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de lectura aos puntos de acceso users
."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede acceso de escritura aos puntos de acceso users
."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permiso de lectura aos puntos de acceso workouts
."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["concede permisos de escritura aos puntos de acceso workouts
."])}},URL:e=>{const{normalize:n}=e;return n(["URL da aplicación"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Aplicacións OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Creouse correctamente a aplicación. Pon coidado en gardar agora a chave secreta, non se volverá a mostrar."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Tes certeza de querer eliminar esta app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["A aplicación ",r(t(0))," solicita:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Autorizar a ",r(t(0))," a que use a túa conta?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copiar ao portapapeis"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Eliminar aplicación"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Engadir unha aplicación"])},NO_APP:e=>{const{normalize:n}=e;return n(["Non se atopa a aplicación!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["sen aplicacións"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["sen descrición"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Revogar todas as chaves"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Tes a certeza de querer eliminar todas as chaves de acceso?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Foron revogadas todas as chaves de acceso asociadas."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['Podes solicitar en todo momento a eliminación da túa conta indo a este enderezo (con sesión iniciada) e premendo no botón "Eliminar a miña conta" nos axustes da túa conta.'])},TITLE:e=>{const{normalize:n}=e;return n(["Eliminación da conta"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Se decidimos cambiar a nosa política de privacidade, publicaremos os cambios nesta páxina.\n\nEste documento está baixo licenza [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptado do orixinal da política de privacidade de [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Cambios na nosa Política de Privacidade"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["Recollemos a seguinte información:\n- Información da conta (identificador, enderezo de email e contrasinal). Poderías engadir información adicional ao perfil como o nome, apelido, data de nacemento, localización, biografía e subir unha foto de perfil.\n- Ficheiros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes ficheiros conteñen datos relacionados coas túas actividades (coordenadas xeográficas, data, distancia, duración, velocidades máxima e media, altitude, pulso cardíaco...). Se non queres mostrar algún dos datos, elimínaos antes de subir ou engadir adestramentos con ficheiros GPX.\n- Datos do adestramento (deporte, título, data, duración, distancia, ascenso, descenso, notas).\n- Información técnica (nome do navegador e sistema operativo)."])},TITLE:e=>{const{normalize:n}=e;return n(["Que información recollemos?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Non vendemos, comerciamos ou transferimos doutro xeito a terceiras partes externas ningunha información que te identifique persoalmente.\n\nIsto non inclúe a terceiras partes de confianza que non axudan a xestionar e proporcionarche o noso servizo, mentras esas terceiras partes acepten manter confidencial esta información.\n\nPoderiamos liberar esta información sempre que ao facelo sexa acorde co cumprimento da ley, reforce as nosas políticas da web, ou protexa os nosos dereitos e seguridade ou os de outras persoas.\n\nCando autorizas a terceiras partes a usar a túa conta, dependendo dos permisos concedidos, podería acceder á túa información de perfil ou adestramentos. As aplicacións nunca teñen acceso ao teu contrasinal."])},TITLE:e=>{const{normalize:n}=e;return n(["Mostramos algún tipo de información a terceiras partes externas?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Tomamos varias medidas de seguridade para gardar a túa información persoal cando inicias sesión, envías ou accedes á túa información persoal."])},TITLE:e=>{const{normalize:n}=e;return n(["Como protexemos a túa información?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["Toda a información que recollemos de ti pode ser usada para proporcionar o servizo básico de **FitTrackee**:\n- Os ficheiros GPX úsanse para crear adestramentos, mostrar rutas nun mapa (con OpenStreetMap](https://www.openstreetmap.org) e o servidor de teselas configurado) e gráficos, crear miniaturas do mapa, calcular records e obter datos meteorolóxicos (se está así establecido).\n- A información de perfil e adestramentos non se mostran publicamente. Unha usuaria rexistrada só pode ver os seus propios adestramentos.\n- O enderezo de correo electrónico que nos proporcionas podería ser usado para mandarche información ou confirmar as modificacións na conta."])},TITLE:e=>{const{normalize:n}=e;return n(["Para que usamos a túa información?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Se este servidor está na UE ou no EEA: a nosa web e servizos están dirixidos a persoas a partir dos 16 anos. Non uses esta web se non tes 16 anos, por requerimento da [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation).\n\nSe este servidor está en EEUU de América: A nosa web, produtos e servizos están dirixidos a persoas a partir dos 13 anos. Se non tes 13 anos, por requerimento da [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), non uses esta web.\n\nOs requerimentos legais poderían ser diferentes se este servidor está baixo outra xurisdición."])},TITLE:e=>{const{normalize:n}=e;return n(["Uso da web por menores"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Ao usar esta web, aceptas a política de privacidade desta web."])},TITLE:e=>{const{normalize:n}=e;return n(["O teu consentimento"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Última actualización"])},TITLE:e=>{const{normalize:n}=e;return n(["política de privacidade"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Deportivo)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Transporte)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Sendeirismo"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo por Montaña"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo por Montaña (Eléctrica)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Montañismo"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Remo"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Correr"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Esquí (de travesía)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Raquetas de neve"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Camiñar"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Estatísticas"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mes"])},week:e=>{const{normalize:n}=e;return n(["semana"])},year:e=>{const{normalize:n}=e;return n(["ano"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Non recibiches instrucións?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Comproba o correo. Enviouse un correo de confirmación ao enderezo proporcionado."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Xa tes unha conta?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Tes a certeza de querer eliminar a conta? Todos os datos serán borrados, e non poderás restablecelos."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Contrasinal actual"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Escribe un enderezo válido."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Escribe un contrasinal"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Exportar datos"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Descargar arquivo"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["creando ligazón..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Podes solicitar un arquivo cada 24 horas"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["fallou (solicita outra exportación)"])},in_progress:e=>{const{normalize:n}=e;return n(["en progreso..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrar por identificador"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["agochar contrasinal"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Token non válido, solicita un novo restablecemento de contrasinal."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Quero eliminar a miña conta"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Actualizouse a política de privacidade, podes ",r(t(0))," antes de continuar."])},LOGIN:e=>{const{normalize:n}=e;return n(["Acceso"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Pechar sesión"])},LOG_IN:e=>{const{normalize:n}=e;return n(["acceder"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Novo contrasinal"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Non hai usuarias."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Contrasinal"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Esqueciches o contrasinal?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Require 8 caracteres como mínimo."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Restablecer contrasinal"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Comproba o correo electrónico. Se o enderezo está na base de datos recibirás un correo cunha ligazón de restablecemento."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["media"])},GOOD:e=>{const{normalize:n}=e;return n(["boa"])},LABEL:e=>{const{normalize:n}=e;return n(["forza do contrasinal"])},STRONG:e=>{const{normalize:n}=e;return n(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Inclúe algunha letra maiúscula, non todas."])},anotherWord:e=>{const{normalize:n}=e;return n(["Engade máis palabras pouco comúns."])},associatedYears:e=>{const{normalize:n}=e;return n(["Evita os anos que teñan relación contigo."])},capitalization:e=>{const{normalize:n}=e;return n(["Usa máis maiúsculas que só na primeira letra."])},dates:e=>{const{normalize:n}=e;return n(["Evita datas e anos que teñan relación contigo."])},l33t:e=>{const{normalize:n}=e;return n(["Evita substitucións de letras que sexan evidentes como ","@"," polo a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Usa patróns longos no teclado e cambia de dirección de escritura varias veces."])},noNeed:e=>{const{normalize:n}=e;return n(["Podes crear contrasinais fortes sen usar símbolos, números ou letras maiúsculas."])},pwned:e=>{const{normalize:n}=e;return n(["Se usas este contrasinal noutros lugares entón deberías cambialo."])},recentYears:e=>{const{normalize:n}=e;return n(["Evita anos recentes."])},repeated:e=>{const{normalize:n}=e;return n(["Evita palabras e caracteres repetidos."])},reverseWords:e=>{const{normalize:n}=e;return n(["Evita palabras comúns escritas ao revés."])},sequences:e=>{const{normalize:n}=e;return n(["Evita secuencias comúns de caracteres."])},useWords:e=>{const{normalize:n}=e;return n(["Usa varias palabras, pero evita frases comúns."])}},WEAK:e=>{const{normalize:n}=e;return n(["feble"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Actualizouse o teu contrasinal. Preme en ",r(t(0))," para acceder."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Edición da conta"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Datos de ascensión (gravacións, total)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Volver ao perfil"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Data de nacemento"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Formato para as datas"])},EDIT:e=>{const{normalize:n}=e;return n(["Editar perfil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Editar preferencias dos deportes"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["O gráfico de elevación comeza en"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Altitude mínima"])},ZERO:e=>{const{normalize:n}=e;return n(["Cero"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n([r(t(0))," para cambiar o enderezo de correo electrónico ou contacta coa administración"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Primeiro día da semana"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Nome"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Idioma"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Apelido"])},LOCATION:e=>{const{normalize:n}=e;return n(["Localización"])},MONDAY:e=>{const{normalize:n}=e;return n(["Luns"])},PICTURE:e=>{const{normalize:n}=e;return n(["Fotografía"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Edición da foto"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Eliminar foto"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Actualizar foto"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Editar preferencias"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Política de privacidade"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Edición do perfil"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Data de rexistro"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["acción"])},COLOR:e=>{const{normalize:n}=e;return n(["cor"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["desactivado por admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["activa"])},LABEL:e=>{const{normalize:n}=e;return n(["etiqueta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["limiar para detectar pausa"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Edición das preferencias do deporte"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["A conta actualizouse correctamente. Comproba o teu correo para confirmar o novo enderezo de correo electrónico."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Creouse correctamente a conta."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Enviouse un correo ao enderezo proporcionado cunha ligazón para activar a conta."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Actualizouse correctamente a conta."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Domingo"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["conta"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["imaxe"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferencias"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["política de privacidade"])},PROFILE:e=>{const{normalize:n}=e;return n(["perfil"])},SPORTS:e=>{const{normalize:n}=e;return n(["deportes"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Zona horaria"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Sistema Imperial (ft, mi, mph, ºF)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unidades de distancia"])},METRIC:e=>{const{normalize:n}=e;return n(["Sistema Métrico (m, km, m/s, ºC)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrado"])},LABEL:e=>{const{normalize:n}=e;return n(["Estratexia para velocidade máx. GPX"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["En bruto"])},HELP:e=>{const{normalize:n}=e;return n(["Se filtras, excluirá os valores extremos (que poderían deberse a erros do GPS) ao calcular a velocidade máxima."])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Lin e acepto a ",r(t(0)),"."])},REGISTER:e=>{const{normalize:n}=e;return n(["Crear conta"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Lamentámolo, pero non se permiten novas contas."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Reenviar o correo de confirmación de conta"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Restablece o contrasinal"])},REVIEW:e=>{const{normalize:n}=e;return n(["revisar"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["mostrar contrasinal"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Esta conta de usuaria está desactivada."])},USERNAME:e=>{const{normalize:n}=e;return n(["Identificador"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['Require entre 3 e 30 caracteres, só se permiten alfanuméricos e o trazo baixo "_".'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["foto da usuaria"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Aceptaches a ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Engadir adestramento"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["análise"])},ASCENT:e=>{const{normalize:n}=e;return n(["ascenso"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["velocidade media"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["volver ao adestramento"])},DATE:e=>{const{normalize:n}=e;return n(["data"])},DESCENT:e=>{const{normalize:n}=e;return n(["descenso"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["mostrar filtros"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distancia"])},DURATION:e=>{const{normalize:n}=e;return n(["duración"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Editar adestramento"])},ELEVATION:e=>{const{normalize:n}=e;return n(["altitude"])},END:e=>{const{normalize:n}=e;return n(["fin"])},FROM:e=>{const{normalize:n}=e;return n(["desde"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["ficheiro .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["agochar filtros"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Hai que proporcionar os dous valores de altitude e deben ser iguais o maiores que 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["A distancia debe ser superior a 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["A duración debe superar os 0 segundos"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Últimos adestramentos"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Cargar máis adestramentos"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["Altitude máx."])},MAX_FILES:e=>{const{normalize:n}=e;return n(["máx. de ficheiros"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["Tamaño máx."])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["Vel. máxima"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["Altitude min."])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Non hai tramo seguinte"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Seguinte adestramento"])},NOTES:e=>{const{normalize:n}=e;return n(["notas"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["datos directos do .gpx, sen limpar"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Non hai ficheiro"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["sen cartafoles dentro"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Sen mapa"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Non hai tramo seguinte"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Non hai adestramento seguinte"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Sen notas"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Non hai tramo anterior"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Non hai adestramento anterior"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Sen récords."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Sen adestramentos."])},PAUSES:e=>{const{normalize:n}=e;return n(["pausas"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Tramo anterior"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Adestramento anterior"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["récord"]),n(["récords"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vel. media"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["A maior distancia"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["O maior desnivel"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["A duración máis longa"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Vel. máxima"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["caracteres restantes"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["tramo"]),n(["tramos"])])},SPEED:e=>{const{normalize:n}=e;return n(["velocidade"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["deporte"]),n(["deportes"])])},START:e=>{const{normalize:n}=e;return n(["inicio"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Inicio e fin"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["situar a altitude de inicio no cero da gráfica"])},TITLE:e=>{const{normalize:n}=e;return n(["título"])},TO:e=>{const{normalize:n}=e;return n(["a"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["duración total"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Subiches un!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["día despexado"])},"clear-night":e=>{const{normalize:n}=e;return n(["noite despexada"])},cloudy:e=>{const{normalize:n}=e;return n(["nubrado"])},fog:e=>{const{normalize:n}=e;return n(["néboa"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["día algo nubrado"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["noite algo nubrada"])},rain:e=>{const{normalize:n}=e;return n(["chuvia"])},sleet:e=>{const{normalize:n}=e;return n(["sarabia"])},snow:e=>{const{normalize:n}=e;return n(["neve"])},wind:e=>{const{normalize:n}=e;return n(["vento"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["humidade"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatura"])},WIND:e=>{const{normalize:n}=e;return n(["vento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["L"])},ENE:e=>{const{normalize:n}=e;return n(["XAN"])},ESE:e=>{const{normalize:n}=e;return n(["LSL"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NL"])},NNE:e=>{const{normalize:n}=e;return n(["NNL"])},NNW:e=>{const{normalize:n}=e;return n(["NNO"])},NW:e=>{const{normalize:n}=e;return n(["NO"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SL"])},SSE:e=>{const{normalize:n}=e;return n(["SSL"])},SSW:e=>{const{normalize:n}=e;return n(["SSO"])},SW:e=>{const{normalize:n}=e;return n(["SO"])},W:e=>{const{normalize:n}=e;return n(["O"])},WNW:e=>{const{normalize:n}=e;return n(["ONO"])},WSW:e=>{const{normalize:n}=e;return n(["OSO"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["sen ficheiro .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["con ficheiro .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["adestramento"]),n(["adestramentos"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["data do adestramento"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Tes certeza de querer borrar este adestramento?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["ficheiro .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["ou ficheiro .zip que contén ficheiros .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},6013:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contatta l'amministratore"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee è un tracker self-hosted per attività outdoor."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Sotto licenza ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Codice sorgente"])}},o={ACTION:e=>{const{normalize:n}=e;return n(["Azione"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Attiva account"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Attivo"])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Amministrazione"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Aggiungi/rimuovi permessi, elimina account utente."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Applicazione"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Email di contatto dell'amministratore"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Numero massimo di files zip"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Se settato a 0, non ci sono limiti per le registrazioni."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Numero massimo di utenti attivi"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["nessuna mail di contatto"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Dimensione massima dei file caricabili (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Configurazione applicazione"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Dimensione massima dell'archivio zip (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Ritorna ad amministrazione"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Sei sicuro di voler eliminare ",r(t(0))," account? Tutti i dati verranno persi, quest'azione non può essere annullata."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Sei sicuro di voler resettare ",r(t(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Email corrente"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Elimina utente"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["L'invio di email è disabilitato."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Attiva/Disattiva sports."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nuova email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["La password è stata reimpostata."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["La registrazione è al momento disabilitata."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["La registrazione è al momento abilitata."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Attivo"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["workout esistono"])},IMAGE:e=>{const{normalize:n}=e;return n(["Immagine"])},LABEL:e=>{const{normalize:n}=e;return n(["Etichetta"])}},TITLE:e=>{const{normalize:n}=e;return n(["Amministrazione sport"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Aggiorna configurazione applicazione."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Aggiorna email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["utente"]),n(["utenti"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["stato admin"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["data di registrazione"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["stato account"])},USERNAME:e=>{const{normalize:n}=e;return n(["nome utente"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["numero di workout"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Aggiungi permessi di amministratore"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Rimuovi permessi di amministratore"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["L'indirizzo email è stato aggiornato."])}},a={ERROR:{"Network Error":e=>{const{normalize:n}=e;return n(["Errore di rete."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Errore. Per favore riprova o contatta l'amminstratore."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: dev'essere inserita un'email valida."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Errore nella lettura del file gpx."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Errore nell'elaborazione del file gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Errore nella lettura della configurazione."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Errore nell'aggiornamento della configurazione"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Errore, per favore riprova o contatta l'amministratore."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Errore, la registrazione è disabilitata."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["File con estensione non permessa."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["La dimensione del file è maggiore di quella massima permessa."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Credenziali errate."])},"invalid payload":e=>{const{normalize:n}=e;return n(["I dati inseriti non sono validi."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Token scaduto, per favore ripeti il log in."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Token scaduto, per favore ripeti il log in."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["La nuova email dev'essere diversa dalla vecchia mail"])},"no file part":e=>{const{normalize:n}=e;return n(["Nessun file scelto."])},"no selected file":e=>{const{normalize:n}=e;return n(["Nessun file scelto."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Password: la password inserita e la conferma non combaciano."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Insersci un token di autenticazione valido."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Token scaduto. Per favore ripeti il log in."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Mi dispiace, quell'username è già esistente."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Questo sport non esiste."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Registrato con successo."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Il numero di files nell'archivio supera il limite massimo permesso."])},"user does not exist":e=>{const{normalize:n}=e;return n(["L'utente non esiste."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Dev'essere inserita un'email valida"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["Non hai i permessi necessari."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["avanti"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["precedente"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Re-invia email di conferma"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Autorizza"])},BACK:e=>{const{normalize:n}=e;return n(["Indietro"])},CANCEL:e=>{const{normalize:n}=e;return n(["Annulla"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Resetta filtri"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Elimina il mio account"])},DISABLE:e=>{const{normalize:n}=e;return n(["Disattiva"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifica"])},ENABLE:e=>{const{normalize:n}=e;return n(["Attiva"])},FILTER:e=>{const{normalize:n}=e;return n(["Filtra"])},LOGIN:e=>{const{normalize:n}=e;return n(["Log in"])},NO:e=>{const{normalize:n}=e;return n(["No"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registra"])},RESET:e=>{const{normalize:n}=e;return n(["Reset"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Invia"])},YES:e=>{const{normalize:n}=e;return n(["Si"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["about"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Conferma"])},CONTACT:e=>{const{normalize:n}=e;return n(["contatto"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["giorno"]),n(["giorni"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Mostrato"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentazione"])},HERE:e=>{const{normalize:n}=e;return n(["qui"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Nascosto"])},HOME:e=>{const{normalize:n}=e;return n(["Home"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["Dal più basso al più alto"])},DESC:e=>{const{normalize:n}=e;return n(["Dal più alto al più basso"])},LABEL:e=>{const{normalize:n}=e;return n(["ordina"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["ordina per"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["per pagina"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Totale"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Questo mese"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["L'applicazione ha riscontrato dei problemi. Per favore riprova più tardi o contatta l'amministratore."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Pagina non trovata"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Workout non trovato"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Qualcosa è andato storto"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Errore. Per favore riprova o contatta l'amministratore."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Aggiungi una nuova applicazione OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Secret"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Descrizione applicazione"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Issue at"])},NAME:e=>{const{normalize:n}=e;return n(["Nome applicazione"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["URL redirect"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura alla configurazioen dell'applicazione."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di lettura a auth
endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura a auth
endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di lettura a users
endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura a users
endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di lettura a workouts
endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["da permessi di scrittura a workouts
endpoints."])}},URL:e=>{const{normalize:n}=e;return n(["URL applicazione"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["Applicazioni OAuth2"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler eliminare quest'app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["L'applicazione ",r(t(0))," sta chiedendo:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Autorizzi ",r(t(0))," ad utilizzare il tuo account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["copia nella clipboard"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Elimina applicazione"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Aggiungi applicazione"])},NO_APP:e=>{const{normalize:n}=e;return n(["Applicazione non trovata!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["nessuna applicazione"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["nessuna descrizione"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Rimuovi tutti i tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler rimuovere tutti i token?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Tutti i token esistenti associati sono stati rimossi."])}},m={},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Ciclismo (Trasporto)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Cicliscmo (Virtuale)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Escursioni"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountain Biking (Elettrica)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Alpinismo"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Canottaggio"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Corsa"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Sci (Alpino)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Sci (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Racchette da neve"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Sentieri"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Camminata"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistiche"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["mese"])},week:e=>{const{normalize:n}=e;return n(["settimana"])},year:e=>{const{normalize:n}=e;return n(["anno"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Non hai ricevuto istruzioni?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato."])},ADMIN:e=>{const{normalize:n}=e;return n(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Hai già un account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata"])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Password corrente"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Inserisci un indirizzo email valido."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Inserisci una password"])},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtra per username"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["nascondi password"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Token invalido, per favore richiedi un nuovo reset della password."])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Lingua"])},LOGIN:e=>{const{normalize:n}=e;return n(["Login"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Logout"])},LOG_IN:e=>{const{normalize:n}=e;return n(["log in"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nuova password"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Nessun utente trovato."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Password"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Password dimenticata?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Inserisci almeno 8 caratteri."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Reset password"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["media"])},GOOD:e=>{const{normalize:n}=e;return n(["buona"])},LABEL:e=>{const{normalize:n}=e;return n(["sicurezza password"])},STRONG:e=>{const{normalize:n}=e;return n(["forte"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Inserisci qualche maiuscola."])},anotherWord:e=>{const{normalize:n}=e;return n(["Aggiungi più parole che sono meno comuni."])},associatedYears:e=>{const{normalize:n}=e;return n(["Evita date che possono essere associate a te."])},capitalization:e=>{const{normalize:n}=e;return n(["Inserisci maiuscole oltre alla prima lettera."])},dates:e=>{const{normalize:n}=e;return n(["Evita date che possono essere associate a te."])},l33t:e=>{const{normalize:n}=e;return n(["Evita sostituzioni prevedibili, per esempio, ","@"," per la a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Usa patterns più lunghi e cambia direzione di scrittura più volte."])},noNeed:e=>{const{normalize:n}=e;return n(["Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole."])},pwned:e=>{const{normalize:n}=e;return n(["È consigliabile cambiare questa password se è utilizzata per altro."])},recentYears:e=>{const{normalize:n}=e;return n(["Evita date recenti."])},repeated:e=>{const{normalize:n}=e;return n(["Evita di ripetere lettere e parole."])},reverseWords:e=>{const{normalize:n}=e;return n(["Evita di scrivere parole al contrario."])},sequences:e=>{const{normalize:n}=e;return n(["Evita sequenze di caratteri comuni."])},useWords:e=>{const{normalize:n}=e;return n(["Usa più parole, ma evita frasi comuni."])}},WEAK:e=>{const{normalize:n}=e;return n(["bassa"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["La tua password è stata aggiornata. Clicca ",r(t(0))," per effettuare il login."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Tipo di account"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Dati relativi alle salite (singoli, totale)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Ritorna al profilo"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Data di nascita"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Formato data"])},EDIT:e=>{const{normalize:n}=e;return n(["Modifica profilo"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifica preferenze"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Modifica preferenze sport"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Per favore ",r(t(0))," per cambiare di nuovo la tua mail o contatta l'amministratore"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Primo giorno della settimana"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Nome"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Lingua"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Cognome"])},LOCATION:e=>{const{normalize:n}=e;return n(["Posizione"])},MONDAY:e=>{const{normalize:n}=e;return n(["Lunedì"])},PICTURE:e=>{const{normalize:n}=e;return n(["Foto"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Foto"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Rimuovi foto"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Aggiorna foto"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Preferenze"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profilo"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Data di registrazione"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["azione"])},COLOR:e=>{const{normalize:n}=e;return n(["colore"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["disattivato dall'amministratore"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["attivo"])},LABEL:e=>{const{normalize:n}=e;return n(["etichetta"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["Limite minimo di velocità"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Preferenze sport"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Il tuo account è stato creato con successo."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Un link per attivare il tuo account è stato inviato all'indirizzo specificato."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Il tuo account è stato aggiornato con successo."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Domenica"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["account"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["foto"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["preferenze"])},PROFILE:e=>{const{normalize:n}=e;return n(["profilo"])},SPORTS:e=>{const{normalize:n}=e;return n(["sports"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Timezone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Sistema imperiale (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Unità per la distanza"])},METRIC:e=>{const{normalize:n}=e;return n(["Sistema metrico (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrato"])},LABEL:e=>{const{normalize:n}=e;return n(["Strategia di massima velocità"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Greggio"])}}},REGISTER:e=>{const{normalize:n}=e;return n(["Registra"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Mi dispiace, la registrazione è disabilitata."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Re-invia email di conferma dell'account"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Resetta password"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["mostra password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Questo account è inattivo."])},USERNAME:e=>{const{normalize:n}=e;return n(["Username"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo "_".'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["foto profilo"])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Aggiungi un workout"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analisi"])},ASCENT:e=>{const{normalize:n}=e;return n(["salita"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["velocità media"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["vel. media"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["ritorna al workout"])},DATE:e=>{const{normalize:n}=e;return n(["data"])},DESCENT:e=>{const{normalize:n}=e;return n(["discesa"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["mostra filtri"])},DISTANCE:e=>{const{normalize:n}=e;return n(["distanza"])},DURATION:e=>{const{normalize:n}=e;return n(["durata"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Modifica il workout"])},ELEVATION:e=>{const{normalize:n}=e;return n(["elevazione"])},END:e=>{const{normalize:n}=e;return n(["fine"])},FROM:e=>{const{normalize:n}=e;return n(["da"])},GPX_FILE:e=>{const{normalize:n}=e;return n(["file .gpx"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["nascondi filtri"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Entrambi i valori di elevazione devono essere forniti ed essere maggiori o uguali a 0."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["La distanza dev'essere maggiore di 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["La durata dev'essere maggiore di 0"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Ultimi workout"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Carica più workout"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitudine massima"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["file massimi"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["dimensione massima"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["velocità massima"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["altitudine minima"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Nessun segmento successivo"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Prossimo workout"])},NOTES:e=>{const{normalize:n}=e;return n(["note"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(['data dal file gpx, senza "pulizia"'])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Nessun file scelto"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["nessuna cartella all'interno"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Nessuna mappa"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Nessun segmento successivo"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Nessun workout successivo"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Nessuna nota"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Nessun segmento precedente"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Nessun workout precedente"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Nessun record."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Nessun workout."])},PAUSES:e=>{const{normalize:n}=e;return n(["pause"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Segmento precedente"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Workout precedente"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["record"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Vel. media"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Distanza più lunga"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Salita più alta"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Durata più lunga"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Vel. massima"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["caratteri rimanenti"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segmento"]),n(["segmenti"])])},SPEED:e=>{const{normalize:n}=e;return n(["velocità"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sport"])])},START:e=>{const{normalize:n}=e;return n(["inizio"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Inizio e fine"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["partenza asse elevazione a 0"])},TITLE:e=>{const{normalize:n}=e;return n(["titolo"])},TO:e=>{const{normalize:n}=e;return n(["a"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["durata totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Carica file!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["cielo chiaro"])},"clear-night":e=>{const{normalize:n}=e;return n(["notte chiara"])},cloudy:e=>{const{normalize:n}=e;return n(["nuvoloso"])},fog:e=>{const{normalize:n}=e;return n(["nebbia"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["parzialmente nuvoloso"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["notte parzialmente nuvolosa"])},rain:e=>{const{normalize:n}=e;return n(["pioggia"])},sleet:e=>{const{normalize:n}=e;return n(["nevischio"])},snow:e=>{const{normalize:n}=e;return n(["neve"])},wind:e=>{const{normalize:n}=e;return n(["vento"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["umidità"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatura"])},WIND:e=>{const{normalize:n}=e;return n(["vento"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["E"])},ENE:e=>{const{normalize:n}=e;return n(["ENE"])},ESE:e=>{const{normalize:n}=e;return n(["ESE"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NE"])},NNE:e=>{const{normalize:n}=e;return n(["NNE"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["S"])},SE:e=>{const{normalize:n}=e;return n(["SE"])},SSE:e=>{const{normalize:n}=e;return n(["SSE"])},SSW:e=>{const{normalize:n}=e;return n(["SSW"])},SW:e=>{const{normalize:n}=e;return n(["SW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WSW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["senza file .gpx"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["con file .gpx"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["allenamento"]),n(["allenamenti"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["data workout"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Sei sicuro di voler eliminare questo workout?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n(["file .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["o file .zip contenente files .gpx"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},1901:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Om denne instansen"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Kontakt administratoren"])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Kildekode"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Værdata fra:"])}},o={ABOUT:{TEXT:e=>{const{normalize:n}=e;return n(["Detaljert info om instansen"])}},ACTION:e=>{const{normalize:n}=e;return n(["Handling"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Aktiv"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Administrasjon"])},APPLICATION:e=>{const{normalize:n}=e;return n(["Program"])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Vil du tilbakestille ",r(t(0))," passord?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Nåværende e-postadresse"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Slett bruker"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Ingen tekst innskrevet"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Passordet har blitt tilbakestilt."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Tilbakestill passord"])},SPORTS:{TABLE:{IMAGE:e=>{const{normalize:n}=e;return n(["Bilde"])},LABEL:e=>{const{normalize:n}=e;return n(["Etikett"])}}},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["bruker"]),n(["brukere"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["administratorstatus"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["registreringsdato"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["kontostatus"])}}}}},a={ERROR:{"Network Error":e=>{const{normalize:n}=e;return n(["Nettverksfeil."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Kunne ikke lagre arbeidsøkt."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Filendelsen tillates ikke."])},"no file part":e=>{const{normalize:n}=e;return n(["Ingen fil angitt."])},"no selected file":e=>{const{normalize:n}=e;return n(["Ingen valgt fil."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Sporten finnes ikke."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Brukeren finnes ikke."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["neste"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["forrige"])}}},i={BACK:e=>{const{normalize:n}=e;return n(["Tilbake"])},CANCEL:e=>{const{normalize:n}=e;return n(["Avbryt"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Tøm filtre"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Slett kontoen min"])},DISABLE:e=>{const{normalize:n}=e;return n(["Skru av"])},EDIT:e=>{const{normalize:n}=e;return n(["Rediger"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Logg inn"])},NO:e=>{const{normalize:n}=e;return n(["Nei"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registrer"])},RESET:e=>{const{normalize:n}=e;return n(["Tilbakestill"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["om"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bekreftelse"])},CONTACT:e=>{const{normalize:n}=e;return n(["kontakt"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["dag"]),n(["dager"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Vist"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["dokumentasjon"])},HERE:e=>{const{normalize:n}=e;return n(["her"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Skjult"])},HOME:e=>{const{normalize:n}=e;return n(["Hjem"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["sorter etter"])}}}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Oversikt"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Denne måneden"])}},c={NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Fant ikke siden"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Fant ikke arbeidsøkten"])}}},u={APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["ID"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Hemmelinghet"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["Programbeskrivelse"])},NAME:e=>{const{normalize:n}=e;return n(["Programnavn"])},URL:e=>{const{normalize:n}=e;return n(["Programnettadresse"])}},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["kopier til utklippstavlen"])},NO_APPS:e=>{const{normalize:n}=e;return n(["ingen programmer"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["ingen beskrivelse"])}},m={CONTENT:{ACCOUNT_DELETION:{TITLE:e=>{const{normalize:n}=e;return n(["Kontosletting"])}}},TITLE:e=>{const{normalize:n}=e;return n(["personvernspraksis"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Sykling (sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Sykling (transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Sykling (virtuell)"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Fjellsykling"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Fjellsykling (elektrisk)"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Roing"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Løping"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Truger"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistikk"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["måned"])},week:e=>{const{normalize:n}=e;return n(["uke"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Mottok du ikke noen instruks?"])},ADMIN:e=>{const{normalize:n}=e;return n(["Administrator"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Har du allerede en konto?"])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Nåværende passord"])},EMAIL:e=>{const{normalize:n}=e;return n(["E-post"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Skriv inn en gyldig e-postadresse."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Skriv inn et passord"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Dataeksport"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Last ned arkiv"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["genererer lenke …"])},STATUS:{in_progress:e=>{const{normalize:n}=e;return n(["underveis …"])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filtrer på brukernavn"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["skjul passord"])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Jeg vil slette kontoen min"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Språk"])},LOGIN:e=>{const{normalize:n}=e;return n(["Logg inn"])},LOG_IN:e=>{const{normalize:n}=e;return n(["logg inn"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nytt passord"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Fant ingen brukere."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Passord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Glemt passordet?"])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["gjen."])},GOOD:e=>{const{normalize:n}=e;return n(["bra"])},LABEL:e=>{const{normalize:n}=e;return n(["passordstyrke"])},STRONG:e=>{const{normalize:n}=e;return n(["sterkt"])},WEAK:e=>{const{normalize:n}=e;return n(["svakt"])}},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Kontoredigering"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Tilbake til profil"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Fødselsdag"])},EDIT:e=>{const{normalize:n}=e;return n(["Rediger profil"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Rediger innstillinger"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Fornavn"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Språk"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Etternavn"])},MONDAY:e=>{const{normalize:n}=e;return n(["Mandag"])},PICTURE:e=>{const{normalize:n}=e;return n(["Bilde"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Fjern bilde"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Oppdater bilde"])},TABS:{PROFILE:e=>{const{normalize:n}=e;return n(["profil"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Tidssone"])},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Filtrert"])},LABEL:e=>{const{normalize:n}=e;return n(["Maks hastighet strategi"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Rå"])}}},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Tilbakestill passordet ditt"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["vis passord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Denne brukerkontoen er inaktiv."])},USERNAME:e=>{const{normalize:n}=e;return n(["Brukernavn"])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["brukerbilde"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Du har samtykket til ",r(t(0)),"."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Legg til en arbeidsøkt"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analyse"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["tilbake til arbeidsøkt"])},DATE:e=>{const{normalize:n}=e;return n(["dato"])},DISTANCE:e=>{const{normalize:n}=e;return n(["avstand"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Rediger arbeidsøkten"])},FROM:e=>{const{normalize:n}=e;return n(["fra"])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["Avstanden må være større enn 0"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["maks. størrelse"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["maks. hastighet"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Neste arbeidsøkt"])},NOTES:e=>{const{normalize:n}=e;return n(["notater"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Ingen fil angitt"])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Ingen arbeidsøkter."])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Forrige segment"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Lengste varighet"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Maks. hastighet"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["gjenstående tegn"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segmenter"])])},SPEED:e=>{const{normalize:n}=e;return n(["hastighet"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sporter"])])},START:e=>{const{normalize:n}=e;return n(["start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start og slutt"])},TO:e=>{const{normalize:n}=e;return n(["til"])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["total varighet"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["tøm dag"])},rain:e=>{const{normalize:n}=e;return n(["regn"])},snow:e=>{const{normalize:n}=e;return n(["snø"])},wind:e=>{const{normalize:n}=e;return n(["vind"])}},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatur"])},WIND:e=>{const{normalize:n}=e;return n(["vind"])}},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip-fil"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},3726:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["Over deze instantie"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Contacteer uw administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["FitTrackee is zelf-gehoste activiteiten tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Onder ",r(t(0))," licentie "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Broncode"])},WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Weer gegevens van:"])}},o={ABOUT:{DESCRIPTION:e=>{const{normalize:n}=e;return n(["Extra informatie die nuttig kan zijn voor uw gebruikers. Markdown opmaak kan gebruikt worden."])},TEXT:e=>{const{normalize:n}=e;return n(["Gedetailleerde informatie over deze instantie"])}},ACTION:e=>{const{normalize:n}=e;return n(["Actie"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Activeer account"])},ACTIVE:e=>{const{normalize:n}=e;return n(["Ingeschakeld"])},ADMIN:e=>{const{normalize:n}=e;return n(["Beheer"])},ADMINISTRATION:e=>{const{normalize:n}=e;return n(["Instellingen"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:n}=e;return n(["Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount."])},APPLICATION:e=>{const{normalize:n}=e;return n(["Applicatie"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:n}=e;return n(["Administrator email voor contact"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:n}=e;return n(["Max. aantal bestanden in zip archief"])},MAX_USERS_HELP:e=>{const{normalize:n}=e;return n(["Bij 0, geen limiet op registratie."])},MAX_USERS_LABEL:e=>{const{normalize:n}=e;return n(["Max. aantal actieve gebruikers"])},NO_CONTACT_EMAIL:e=>{const{normalize:n}=e;return n(["geen contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. grootte van bestanden voor upload (in Mb)"])},TITLE:e=>{const{normalize:n}=e;return n(["Applicatie configureren"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:n}=e;return n(["Max. grootte van zip archief (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:n}=e;return n(["Terug naar beheer"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Weet u zeker dat u de account ",r(t(0))," wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Weet u zeker dat u het wachtwoord voor ",r(t(0))," wilt resetten?"])},CURRENT_EMAIL:e=>{const{normalize:n}=e;return n(["Huidige email"])},DELETE_USER:e=>{const{normalize:n}=e;return n(["Verwijder gebruiker"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:n}=e;return n(["Emails verzenden is uitgeschakeld."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:n}=e;return n(["Aan- of uitzetten van sporten."])},NEW_EMAIL:e=>{const{normalize:n}=e;return n(["Nieuwe email"])},NO_TEXT_ENTERED:e=>{const{normalize:n}=e;return n(["Geen tekst ingegeven"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Het wachtwoord werd gereset."])},PRIVACY_POLICY_DESCRIPTION:e=>{const{normalize:n}=e;return n(["Voeg uw eigen privacybeleid toe, of laat leeg om het standaard beleid te gebruiken. Markdown opmaak kan gebruikt worden."])},REGISTRATION_DISABLED:e=>{const{normalize:n}=e;return n(["Registratie is momenteel uitgeschakeld."])},REGISTRATION_ENABLED:e=>{const{normalize:n}=e;return n(["Registratie is momenteel ingeschakeld."])},RESET_USER_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset wachtwoord"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:n}=e;return n(["Ingeschakeld"])},HAS_WORKOUTS:e=>{const{normalize:n}=e;return n(["Trainingen aanwezig"])},IMAGE:e=>{const{normalize:n}=e;return n(["Afbeelding"])},LABEL:e=>{const{normalize:n}=e;return n(["Label"])}},TITLE:e=>{const{normalize:n}=e;return n(["Beheer sporten"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:n}=e;return n(["De applicatie configureren."])},UPDATE_USER_EMAIL:e=>{const{normalize:n}=e;return n(["Update email"])},USER:e=>{const{normalize:n,plural:r}=e;return r([n(["gebruiker"]),n(["gebruikers"])])},USERS:{SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:n}=e;return n(["admin status"])},CREATED_AT:e=>{const{normalize:n}=e;return n(["Registratie datum"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["Account status"])},USERNAME:e=>{const{normalize:n}=e;return n(["gebruikersnaam"])},WORKOUTS_COUNT:e=>{const{normalize:n}=e;return n(["aantal trainingen"])}}},TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Admin rechten toevoegen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:n}=e;return n(["Verwijder admin rechten"])}}},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:n}=e;return n(["Het emailadres werd bijgewerkt."])}},a={ERROR:{" is missing in gpx file":e=>{const{normalize:n}=e;return n([" gedeelte ontbreekt in het .gpx bestand."])},"Network Error":e=>{const{normalize:n}=e;return n(["Netwerk fout."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fout. Probeer opnieuw of contacteer de administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:n}=e;return n(["Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren."])},"completed request already exists":e=>{const{normalize:n}=e;return n(["Er bestaat al een voltooide export aanvraag."])},"email: valid email must be provided":e=>{const{normalize:n}=e;return n(["Email: een geldige email is vereist."])},"error during gpx file parsing":e=>{const{normalize:n}=e;return n(["Fout bij het verwerken van het gpx bestand."])},"error during gpx processing":e=>{const{normalize:n}=e;return n(["Fout bij verwerken van gpx."])},"error on getting configuration":e=>{const{normalize:n}=e;return n(["Fout bij ophalen van configuratie."])},"error when saving workout":e=>{const{normalize:n}=e;return n(["Fout bij het opslaan van de activiteit."])},"error when updating configuration":e=>{const{normalize:n}=e;return n(["Fout bij het updaten van de configuratie"])},"error, please try again or contact the administrator":e=>{const{normalize:n}=e;return n(["Fout, probeer opnieuw of contacteer de administrator."])},"error, registration is disabled":e=>{const{normalize:n}=e;return n(["Fout, registratie is uitgeschakeld."])},"file extension not allowed":e=>{const{normalize:n}=e;return n(["Bestandsformaat niet toegelaten."])},"file size is greater than the allowed size":e=>{const{normalize:n}=e;return n(["Bestandsgrootte is groter dan toegestaan."])},"gpx file is invalid":e=>{const{normalize:n}=e;return n(["Het .gpx bestand is ongeldig."])},"invalid credentials":e=>{const{normalize:n}=e;return n(["Ongeldige inloggegevens."])},"invalid payload":e=>{const{normalize:n}=e;return n(["Ingegeven data is ongeldig."])},"invalid token, please log in again":e=>{const{normalize:n}=e;return n(["Ongeldige token, log opnieuw in."])},"invalid token, please request a new token":e=>{const{normalize:n}=e;return n(["Ongeldige token, log opnieuw in."])},"new email must be different than curent email":e=>{const{normalize:n}=e;return n(["Het nieuwe email adres dient te verschillen van het oude"])},"no file part":e=>{const{normalize:n}=e;return n(["Geen bestand opgegeven."])},"no selected file":e=>{const{normalize:n}=e;return n(["Geen bestand geselecteerd."])},"no tracks in gpx file":e=>{const{normalize:n}=e;return n(["Geen route () aanwezig in het .gpx bestand."])},"ongoing request exists":e=>{const{normalize:n}=e;return n(["Er bestaat al een export aanvraag."])},"password: password and password confirmation do not match":e=>{const{normalize:n}=e;return n(["Wachtwoord: het wachtwoord en de bevestiging komen niet overeen."])},"provide a valid auth token":e=>{const{normalize:n}=e;return n(["Geef een geldig auth token."])},"signature expired, please log in again":e=>{const{normalize:n}=e;return n(["Signatuur verlopen. Log opnieuw in."])},"sorry, that username is already taken":e=>{const{normalize:n}=e;return n(["Sorry, deze gebruikersnaam is al in gebruik."])},"sport does not exist":e=>{const{normalize:n}=e;return n(["Deze sport bestaat niet."])},"successfully registered":e=>{const{normalize:n}=e;return n(["Succesvol geregistreerd."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:n}=e;return n(["Het aantal bestanden in het zip archief overschrijdt de limiet."])},"user does not exist":e=>{const{normalize:n}=e;return n(["Gebruiker bestaat niet."])},"valid email must be provided for admin contact":e=>{const{normalize:n}=e;return n(["Een geldige email is vereist voor admin contact informatie"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:n}=e;return n(["U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten."])},"you do not have permissions":e=>{const{normalize:n}=e;return n(["U hebt geen machtigingen."])}},PAGINATION:{NEXT:e=>{const{normalize:n}=e;return n(["volgende"])},PREVIOUS:e=>{const{normalize:n}=e;return n(["vorige"])}}},i={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:n}=e;return n(["Herzend bevestigings email"])},AUTHORIZE:e=>{const{normalize:n}=e;return n(["Toekennen"])},BACK:e=>{const{normalize:n}=e;return n(["Terug"])},CANCEL:e=>{const{normalize:n}=e;return n(["Annuleren"])},CLEAR_FILTER:e=>{const{normalize:n}=e;return n(["Verwijder filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Verwijder mijn account"])},DISABLE:e=>{const{normalize:n}=e;return n(["Uitzetten"])},EDIT:e=>{const{normalize:n}=e;return n(["Bewerken"])},ENABLE:e=>{const{normalize:n}=e;return n(["Aanzetten"])},FILTER:e=>{const{normalize:n}=e;return n(["Filter"])},LOGIN:e=>{const{normalize:n}=e;return n(["Inloggen"])},NO:e=>{const{normalize:n}=e;return n(["Nee"])},REGISTER:e=>{const{normalize:n}=e;return n(["Registreer"])},REQUEST_DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Data export aanvragen"])},RESET:e=>{const{normalize:n}=e;return n(["Reset"])},SUBMIT:e=>{const{normalize:n}=e;return n(["Opslaan"])},YES:e=>{const{normalize:n}=e;return n(["Ja"])}},s={ABOUT:e=>{const{normalize:n}=e;return n(["over"])},CONFIRMATION:e=>{const{normalize:n}=e;return n(["Bevestiging"])},CONTACT:e=>{const{normalize:n}=e;return n(["contacteer"])},DAY:e=>{const{normalize:n,plural:r}=e;return r([n(["dag"]),n(["dagen"])])},DISPLAYED:e=>{const{normalize:n}=e;return n(["Weergegeven"])},DOCUMENTATION:e=>{const{normalize:n}=e;return n(["documentatie"])},HERE:e=>{const{normalize:n}=e;return n(["hier"])},HIDDEN:e=>{const{normalize:n}=e;return n(["Verborgen"])},HOME:e=>{const{normalize:n}=e;return n(["Startscherm"])},SELECTS:{ORDER:{ASC:e=>{const{normalize:n}=e;return n(["oplopend"])},DESC:e=>{const{normalize:n}=e;return n(["aflopend"])},LABEL:e=>{const{normalize:n}=e;return n(["sorteer"])}},ORDER_BY:{LABEL:e=>{const{normalize:n}=e;return n(["sorteer op"])}},PER_PAGE:{LABEL:e=>{const{normalize:n}=e;return n(["per pagina"])}}},TOTAL:e=>{const{normalize:n}=e;return n(["Totaal"])}},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Dashboard"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Deze maand"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Er heeft zich een onbekende fout voorgedaan. Probeer aub later opnieuw of contacteer de administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Pagina niet gevonden"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Training niet gevonden"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Er ging iets mis"])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Fout. Probeer opnieuw of contacteer de administrator."])}},u={ADD_A_NEW_APP:e=>{const{normalize:n}=e;return n(["Nieuwe OAuth2 app toevoegen"])},APP:{CLIENT_ID:e=>{const{normalize:n}=e;return n(["Id"])},CLIENT_SECRET:e=>{const{normalize:n}=e;return n(["Geheim"])},DESCRIPTION:e=>{const{normalize:n}=e;return n(["App omschrijving"])},ISSUE_AT:e=>{const{normalize:n}=e;return n(["Probleem bij"])},NAME:e=>{const{normalize:n}=e;return n(["Naam van de app"])},REDIRECT_URL:e=>{const{normalize:n}=e;return n(["Doorverwijs URL"])},SCOPE:{LABEL:e=>{const{normalize:n}=e;return n(["Omvang"])},"application:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["geeft toestemming tot aanpassen van de applicatie instellingen."])},"profile:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat leestoegang toe aan auth
endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat schrijftoegang toe aan auth
endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat leestoegang toe aan users
endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat schrijftoegang toe aan users
endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat leestoegang toe aan workouts
endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:n}=e;return n(["staat schrijftoegang toe aan workouts
endpoints."])}},URL:e=>{const{normalize:n}=e;return n(["App URL"])}},APPS_LIST:e=>{const{normalize:n}=e;return n(["OAuth2 apps"])},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:n}=e;return n(["App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u deze app wilt verwijderen?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["De app ",r(t(0))," vraagt:"])},AUTHORIZE_APP:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Toegang geven aan ",r(t(0))," tot uw gebruikersaccount?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:n}=e;return n(["kopieer naar klembord"])},DELETE_APP:e=>{const{normalize:n}=e;return n(["Verwijder app"])},NEW_APP:e=>{const{normalize:n}=e;return n(["Voeg een app toe"])},NO_APP:e=>{const{normalize:n}=e;return n(["App niet gevonden!"])},NO_APPS:e=>{const{normalize:n}=e;return n(["geen apps"])},NO_DESCRIPTION:e=>{const{normalize:n}=e;return n(["geen beschrijving"])},REVOKE_ALL_TOKENS:e=>{const{normalize:n}=e;return n(["Verwijder alle tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u alle tokens wilt intrekken?"])},TOKENS_REVOKED:e=>{const{normalize:n}=e;return n(["Alle bestaande tokens werden ingetrokken."])}},m={CONTENT:{ACCOUNT_DELETION:{CONTENT:e=>{const{normalize:n}=e;return n(['U kunt uw account op elk moment opzeggen door naar volgend adres te gaan, en na inloggen op de knop "Verwijder mijn account" te klikken in uw instellingen.'])},TITLE:e=>{const{normalize:n}=e;return n(["Account verwijderen"])}},CHANGES_TO_OUR_PRIVACY_POLICY:{CONTENT:e=>{const{normalize:n}=e;return n(["Eventuele aanpassingen aan het privacybeleid zullen op deze pagina worden weergegeven.\n\nDit document valt onder volgende licentie [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Een aanpassing van dit origineel privacybeleid [Discourse](https://github.com/discourse/discourse)."])},TITLE:e=>{const{normalize:n}=e;return n(["Aanpassingen aan ons Privacybeleid"])}},DATA_COLLECTED:{CONTENT:e=>{const{normalize:n}=e;return n(["De volgende informatie wordt verzameld:\n- Account informatie (gebruikersnaam, email en wachtwoord). U kan ook bijkomende informatie opgeven zoals: naam, voornaam, geboortedatum, locatie, biografie en een profiel-afbeelding.\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) bestanden. Deze bestanden bevatten gegevens over uw activiteiten (coördinaten, datums, afstand, duur, maximum en minimum snelheden, hoogtegegevens, hartslag, ...). Als u bepaalde gegevens hiervan niet wil delen, verwijder deze dan uit het bestand alvorens deze te uploaden.\n- Sportgerelateerde gegevens (soort sport, titel, datum, duur, afstand, geklommen afstand, gedaalde afstand, notities).\n- Technische informatie (de browsernaam en naam van het besturingssysteem)."])},TITLE:e=>{const{normalize:n}=e;return n(["Welke informatie wordt er door ons verzameld?"])}},INFORMATION_DISCLOSURE:{CONTENT:e=>{const{normalize:n}=e;return n(["Persoonlijke informatie wordt niet verkocht, geruild of op enige manier doorgegeven aan derden/andere instanties.\n\nDe uitzondering hierop zijn derden die vertrouwd worden en hebben ingestemd om uw gegevens niet te delen. Dit zijn bijvoorbeeld website administrators en vertrouwde applicaties.\n\nWanneer je een app van derden linkt aan je gebruikersaccount, kan het naargelang de toegestane rechten toegang krijgen tot je profiel informatie en activiteiten. Apps hebben nooit toegang tot uw wachtwoord.\n\nMogelijk kan er informatie worden gedeeld wanneer dit nodig is om aan de wetgeving te voldoen, wanneer de regels van ons beleid dienen afgedwongen te worden, of om onze of anderen hun rechten, eigendom of veiligheid te beschermen."])},TITLE:e=>{const{normalize:n}=e;return n(["Wordt er informatie met derden gedeeld?"])}},INFORMATION_PROTECTION:{CONTENT:e=>{const{normalize:n}=e;return n(["Er worden verschillende maatregelen gebruikt om de veiligheid van uw persoonlijke informatie te beschermen. Zowel tijdens het ingegeven, uploaden en bekijken van uw informatie."])},TITLE:e=>{const{normalize:n}=e;return n(["Hoe beschermen we uw informatie?"])}},INFORMATION_USAGE:{CONTENT:e=>{const{normalize:n}=e;return n(["De informatie die we verzamelen is nodig voor de basis functionaliteit van **FitTrackee**:\n- GPX worden gebruikt om activiteiten aan te maken, routes te tonen op de map (door [OpenStreetMap](https://www.openstreetmap.org), grafieken te tonen, thumbnails voor de route aan te maken, berekenen van records en weerdata op te vragen (indien geconfigureerd).\n- Profiel informatie en activiteiten zijn niet publiek zichtbaar. Een gebruiker kan enkel zijn eigen activiteiten bekijken.\n- Het opgegeven email adres kan worden gebruikt om informatie met u te delen, of om wijzigingen aan uw account te melden."])},TITLE:e=>{const{normalize:n}=e;return n(["Waarvoor wordt de opgegeven informatie gebruikt?"])}},SITE_USAGE_BY_CHILDREN:{CONTENT:e=>{const{normalize:n}=e;return n(["Als de server zich in de EU of EEA bevindt: Deze site en zijn services zijn gericht op personen van minstens 16 jaar oud. Als u onder de 16 jaar bent, volgens naleving van de [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation), gelieve deze site niet te gebruiken.\n\nAls de server zich in de USA bevindt: Deze site en zijn services zijn gericht op personen van minstens 13 jaar oud. Als u onder de 13 jaar bent, volgens naleving van de [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), gelieve deze site niet te gebruiken.\n\nWetgeving kan verschillen als de server zich op een andere plaats bevindt."])},TITLE:e=>{const{normalize:n}=e;return n(["Gebruik door minderjarigen"])}},YOUR_CONSENT:{CONTENT:e=>{const{normalize:n}=e;return n(["Door deze site te gebruiken, gaat u akkoord met ons privacybeleid."])},TITLE:e=>{const{normalize:n}=e;return n(["Uw toestemming"])}}},LAST_UPDATE:e=>{const{normalize:n}=e;return n(["Laatste aanpassing"])},TITLE:e=>{const{normalize:n}=e;return n(["privacybeleid"])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:n}=e;return n(["Fietsen (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:n}=e;return n(["Fietsen (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:n}=e;return n(["Fietsen (Virtueel)"])}},Hiking:{LABEL:e=>{const{normalize:n}=e;return n(["Trektocht"])}},"Mountain Biking":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:n}=e;return n(["Mountainbiken (Elektrisch)"])}},Mountaineering:{LABEL:e=>{const{normalize:n}=e;return n(["Bergbeklimmen"])}},Rowing:{LABEL:e=>{const{normalize:n}=e;return n(["Roeien"])}},Running:{LABEL:e=>{const{normalize:n}=e;return n(["Lopen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiën (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:n}=e;return n(["Skiën (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:n}=e;return n(["Sneeuwschoenen"])}},Trail:{LABEL:e=>{const{normalize:n}=e;return n(["Trail"])}},Walking:{LABEL:e=>{const{normalize:n}=e;return n(["Wandelen"])}}},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statistieken"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["maand"])},week:e=>{const{normalize:n}=e;return n(["week"])},year:e=>{const{normalize:n}=e;return n(["jaar"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:n}=e;return n(["Geen instructies ontvangen?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:n}=e;return n(["Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres."])},ADMIN:e=>{const{normalize:n}=e;return n(["Beheer"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:n}=e;return n(["Al een account aangemaakt?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden."])},CURRENT_PASSWORD:e=>{const{normalize:n}=e;return n(["Huidig wachtwoord"])},EMAIL:e=>{const{normalize:n}=e;return n(["Email"])},EMAIL_INFO:e=>{const{normalize:n}=e;return n(["Geef een geldig email adres op."])},ENTER_PASSWORD:e=>{const{normalize:n}=e;return n(["Geef een paswoord in"])},EXPORT_REQUEST:{DATA_EXPORT:e=>{const{normalize:n}=e;return n(["Data exporteren"])},DOWNLOAD_ARCHIVE:e=>{const{normalize:n}=e;return n(["Archief downloaden"])},GENERATING_LINK:e=>{const{normalize:n}=e;return n(["link aanmaken..."])},ONLY_ONE_EXPORT_PER_DAY:e=>{const{normalize:n}=e;return n(["Je kan 1 keer per 24h een archief aanvragen"])},STATUS:{errored:e=>{const{normalize:n}=e;return n(["fout (gelieve een nieuw archief aan te vragen)"])},in_progress:e=>{const{normalize:n}=e;return n(["Bezig met verwerken..."])}}},FILTER_ON_USERNAME:e=>{const{normalize:n}=e;return n(["Filter op gebruikersnaam"])},HIDE_PASSWORD:e=>{const{normalize:n}=e;return n(["verberg wachtwoord"])},INVALID_TOKEN:e=>{const{normalize:n}=e;return n(["Ongeldig token, vraag een nieuwe wachtwoord reset aan."])},I_WANT_TO_DELETE_MY_ACCOUNT:e=>{const{normalize:n}=e;return n(["Ik wil mijn account verwijderen"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Taal"])},LAST_PRIVACY_POLICY_TO_VALIDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Het privacybeleid werd aangepast, gelieve te ",r(t(0))," voor verdergaan."])},LOGIN:e=>{const{normalize:n}=e;return n(["Inloggen"])},LOGOUT:e=>{const{normalize:n}=e;return n(["Uitloggen"])},LOG_IN:e=>{const{normalize:n}=e;return n(["inloggen"])},NEW_PASSWORD:e=>{const{normalize:n}=e;return n(["Nieuw wachtwoord"])},NO_USERS_FOUND:e=>{const{normalize:n}=e;return n(["Geen gebruikers gevonden."])},PASSWORD:e=>{const{normalize:n}=e;return n(["Wachtwoord"])},PASSWORD_FORGOTTEN:e=>{const{normalize:n}=e;return n(["Wachtwoord vergeten?"])},PASSWORD_INFO:e=>{const{normalize:n}=e;return n(["Tenminste 8 karakters vereist."])},PASSWORD_RESET:e=>{const{normalize:n}=e;return n(["Wachtwoord reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:n}=e;return n(["Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten."])},PASSWORD_STRENGTH:{AVERAGE:e=>{const{normalize:n}=e;return n(["gemiddeld"])},GOOD:e=>{const{normalize:n}=e;return n(["goed"])},LABEL:e=>{const{normalize:n}=e;return n(["wachtwoord sterkte"])},STRONG:e=>{const{normalize:n}=e;return n(["sterk"])},SUGGESTIONS:{allUppercase:e=>{const{normalize:n}=e;return n(["Gebruik enkele hoofdletters."])},anotherWord:e=>{const{normalize:n}=e;return n(["Voeg meer niet gangbare woorden toe."])},associatedYears:e=>{const{normalize:n}=e;return n(["Vermijd jaartallen met een persoonlijke betekenis."])},capitalization:e=>{const{normalize:n}=e;return n(["Gebruik niet enkel voor de eerste letter een hoofdletter."])},dates:e=>{const{normalize:n}=e;return n(["Vermijd persoonlijke gegevens en jaartallen."])},l33t:e=>{const{normalize:n}=e;return n(["Vermijd voorspelbare vervangingen, zoals ","@"," voor de letter a."])},longerKeyboardPattern:e=>{const{normalize:n}=e;return n(["Gebruik langere patronen en verander de richting van typen meerdere malen."])},noNeed:e=>{const{normalize:n}=e;return n(["U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters."])},pwned:e=>{const{normalize:n}=e;return n(["Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen."])},recentYears:e=>{const{normalize:n}=e;return n(["Vermijd recente jaartallen."])},repeated:e=>{const{normalize:n}=e;return n(["Vermijd opeenvolgende woorden en karakters."])},reverseWords:e=>{const{normalize:n}=e;return n(["Vermijd gangbare woorden die achterstevoren geschreven zijn."])},sequences:e=>{const{normalize:n}=e;return n(["Vermijd voorspelbare opeenvolgingen."])},useWords:e=>{const{normalize:n}=e;return n(["Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen."])}},WEAK:e=>{const{normalize:n}=e;return n(["zwak"])}},PASSWORD_UPDATED:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Uw wachtwoord werd aangepast. Klik ",r(t(0))," om in te loggen."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:n}=e;return n(["Account aanpassen"])},ASCENT_DATA:e=>{const{normalize:n}=e;return n(["Hoogte gerelateerde data (opnames, totaal)"])},BACK_TO_PROFILE:e=>{const{normalize:n}=e;return n(["Terug naar profiel"])},BIO:e=>{const{normalize:n}=e;return n(["Bio"])},BIRTH_DATE:e=>{const{normalize:n}=e;return n(["Geboortedatum"])},DATE_FORMAT:e=>{const{normalize:n}=e;return n(["Weergaveformaat datum"])},EDIT:e=>{const{normalize:n}=e;return n(["Profiel aanpassen"])},EDIT_PREFERENCES:e=>{const{normalize:n}=e;return n(["Voorkeuren wijzigen"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:n}=e;return n(["Sport voorkeuren wijzigen"])},ELEVATION_CHART_START:{LABEL:e=>{const{normalize:n}=e;return n(["Hoogte grafiek begint op"])},MIN_ALT:e=>{const{normalize:n}=e;return n(["Minimum hoogte"])},ZERO:e=>{const{normalize:n}=e;return n(["Nul"])}},ERRORED_EMAIL_UPDATE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Gelieve ",r(t(0))," om uw email adres opnieuw te wijzigen of contacteer uw administrator"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:n}=e;return n(["Eerste dag van de week"])},FIRST_NAME:e=>{const{normalize:n}=e;return n(["Voornaam"])},LANGUAGE:e=>{const{normalize:n}=e;return n(["Taal"])},LAST_NAME:e=>{const{normalize:n}=e;return n(["Achternaam"])},LOCATION:e=>{const{normalize:n}=e;return n(["Locatie"])},MONDAY:e=>{const{normalize:n}=e;return n(["Maandag"])},PICTURE:e=>{const{normalize:n}=e;return n(["Afbeelding"])},PICTURE_EDITION:e=>{const{normalize:n}=e;return n(["Afbeelding aanpassen"])},PICTURE_REMOVE:e=>{const{normalize:n}=e;return n(["Afbeelding verwijderen"])},PICTURE_UPDATE:e=>{const{normalize:n}=e;return n(["Afbeelding veranderen"])},PREFERENCES_EDITION:e=>{const{normalize:n}=e;return n(["Voorkeuren aanpassen"])},"PRIVACY-POLICY_EDITION":e=>{const{normalize:n}=e;return n(["Privacybeleid"])},PROFILE_EDITION:e=>{const{normalize:n}=e;return n(["Profiel aanpassen"])},REGISTRATION_DATE:e=>{const{normalize:n}=e;return n(["Datum registratie"])},SPORT:{ACTION:e=>{const{normalize:n}=e;return n(["actie"])},COLOR:e=>{const{normalize:n}=e;return n(["kleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:n}=e;return n(["uitgeschakeld door admin"])},IS_ACTIVE:e=>{const{normalize:n}=e;return n(["actief"])},LABEL:e=>{const{normalize:n}=e;return n(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:n}=e;return n(["snelheidsgrens voor stilstand"])}},SPORTS_EDITION:e=>{const{normalize:n}=e;return n(["Sport voorkeuren aanpassen"])},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:n}=e;return n(["Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:n}=e;return n(["Uw account werd succesvol aangemaakt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:n}=e;return n(["Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres."])},SUCCESSFUL_UPDATE:e=>{const{normalize:n}=e;return n(["Uw account werd succesvol bijgewerkt."])},SUNDAY:e=>{const{normalize:n}=e;return n(["Zondag"])},TABS:{ACCOUNT:e=>{const{normalize:n}=e;return n(["account"])},APPS:e=>{const{normalize:n}=e;return n(["apps"])},PICTURE:e=>{const{normalize:n}=e;return n(["afbeelding"])},PREFERENCES:e=>{const{normalize:n}=e;return n(["voorkeuren"])},"PRIVACY-POLICY":e=>{const{normalize:n}=e;return n(["Privacybeleid"])},PROFILE:e=>{const{normalize:n}=e;return n(["profiel"])},SPORTS:e=>{const{normalize:n}=e;return n(["sporten"])}},TIMEZONE:e=>{const{normalize:n}=e;return n(["Tijdzone"])},UNITS:{IMPERIAL:e=>{const{normalize:n}=e;return n(["Imperialistisch systeem (ft, mi, mph, °F)"])},LABEL:e=>{const{normalize:n}=e;return n(["Eenheid voor afstand"])},METRIC:e=>{const{normalize:n}=e;return n(["Metrisch systeem (m, km, m/s, °C)"])}},USE_RAW_GPX_SPEED:{FILTERED_SPEED:e=>{const{normalize:n}=e;return n(["Gefilterd"])},LABEL:e=>{const{normalize:n}=e;return n(["Strategie voor maximale snelheid"])},RAW_SPEED:e=>{const{normalize:n}=e;return n(["Rauw"])}}},READ_AND_ACCEPT_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["Ik heb het ",r(t(0))," gelezen en goedgekeurd."])},REGISTER:e=>{const{normalize:n}=e;return n(["Registreren"])},REGISTER_DISABLED:e=>{const{normalize:n}=e;return n(["Sorry, registreren is uitgeschakeld."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Opnieuw zenden van account bevestigingsmail"])},RESET_PASSWORD:e=>{const{normalize:n}=e;return n(["Reset uw wachtwoord"])},REVIEW:e=>{const{normalize:n}=e;return n(["beoordeel"])},SHOW_PASSWORD:e=>{const{normalize:n}=e;return n(["toon wachtwoord"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:n}=e;return n(["Deze account is niet actief."])},USERNAME:e=>{const{normalize:n}=e;return n(["Gebruikersnaam"])},USERNAME_INFO:e=>{const{normalize:n}=e;return n(['3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter "_" zijn toegestaan.'])},USER_PICTURE:e=>{const{normalize:n}=e;return n(["gebruikersafbeelding"])},YOU_HAVE_ACCEPTED_PRIVACY_POLICY:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["U hebt het ",r(t(0))," aanvaard."])}},T={ADD_WORKOUT:e=>{const{normalize:n}=e;return n(["Training toevoegen"])},ANALYSIS:e=>{const{normalize:n}=e;return n(["analyse"])},ASCENT:e=>{const{normalize:n}=e;return n(["geklommen"])},AVERAGE_SPEED:e=>{const{normalize:n}=e;return n(["gemiddelde snelheid"])},AVE_SPEED:e=>{const{normalize:n}=e;return n(["gem. snelheid"])},BACK_TO_WORKOUT:e=>{const{normalize:n}=e;return n(["Terug naar training"])},DATE:e=>{const{normalize:n}=e;return n(["datum"])},DESCENT:e=>{const{normalize:n}=e;return n(["gedaald"])},DISPLAY_FILTERS:e=>{const{normalize:n}=e;return n(["toon filters"])},DISTANCE:e=>{const{normalize:n}=e;return n(["afstand"])},DURATION:e=>{const{normalize:n}=e;return n(["duur"])},EDIT_WORKOUT:e=>{const{normalize:n}=e;return n(["Training aanpassen"])},ELEVATION:e=>{const{normalize:n}=e;return n(["hoogte"])},END:e=>{const{normalize:n}=e;return n(["einde"])},FROM:e=>{const{normalize:n}=e;return n(["van"])},GPX_FILE:e=>{const{normalize:n}=e;return n([".gpx bestand"])},HIDE_FILTERS:e=>{const{normalize:n}=e;return n(["verberg filters"])},INVALID_ASCENT_OR_DESCENT:e=>{const{normalize:n}=e;return n(["Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn."])},INVALID_DISTANCE:e=>{const{normalize:n}=e;return n(["De afstand moet groter zijn dan 0"])},INVALID_DURATION:e=>{const{normalize:n}=e;return n(["De duur moet langer zijn dan 0 seconden"])},LATEST_WORKOUTS:e=>{const{normalize:n}=e;return n(["Laatste trainingen"])},LOAD_MORE_WORKOUT:e=>{const{normalize:n}=e;return n(["Toon meer trainingen"])},MAX_ALTITUDE:e=>{const{normalize:n}=e;return n(["max. hoogte"])},MAX_FILES:e=>{const{normalize:n}=e;return n(["max. aantal bestanden"])},MAX_SIZE:e=>{const{normalize:n}=e;return n(["max. grootte"])},MAX_SPEED:e=>{const{normalize:n}=e;return n(["max. snelheid"])},MIN_ALTITUDE:e=>{const{normalize:n}=e;return n(["min. hoogte"])},NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Geen volgend segment"])},NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Volgende training"])},NOTES:e=>{const{normalize:n}=e;return n(["notities"])},NO_DATA_CLEANING:e=>{const{normalize:n}=e;return n(["data vanuit gpx, zonder op te schonen"])},NO_FILE_PROVIDED:e=>{const{normalize:n}=e;return n(["Geen bestand opgegeven"])},NO_FOLDER:e=>{const{normalize:n}=e;return n(["geen map aanwezig"])},NO_MAP:e=>{const{normalize:n}=e;return n(["Geen kaart"])},NO_NEXT_SEGMENT:e=>{const{normalize:n}=e;return n(["Geen volgend segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:n}=e;return n(["Geen volgende training"])},NO_NOTES:e=>{const{normalize:n}=e;return n(["Geen notities"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Geen vorig segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Geen vorige training"])},NO_RECORDS:e=>{const{normalize:n}=e;return n(["Geen records."])},NO_WORKOUTS:e=>{const{normalize:n}=e;return n(["Geen trainingen."])},PAUSES:e=>{const{normalize:n}=e;return n(["pauzes"])},PREVIOUS_SEGMENT:e=>{const{normalize:n}=e;return n(["Vorig segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:n}=e;return n(["Vorige training"])},RECORD:e=>{const{normalize:n,plural:r}=e;return r([n(["record"]),n(["records"])])},RECORD_AS:e=>{const{normalize:n}=e;return n(["Gem. snelheid"])},RECORD_FD:e=>{const{normalize:n}=e;return n(["Langste afstand"])},RECORD_HA:e=>{const{normalize:n}=e;return n(["Hoogst geklommen"])},RECORD_LD:e=>{const{normalize:n}=e;return n(["Langste duur"])},RECORD_MS:e=>{const{normalize:n}=e;return n(["Max. snelheid"])},REMAINING_CHARS:e=>{const{normalize:n}=e;return n(["resterende karakters"])},SEGMENT:e=>{const{normalize:n,plural:r}=e;return r([n(["segment"]),n(["segmenten"])])},SPEED:e=>{const{normalize:n}=e;return n(["snelheid"])},SPORT:e=>{const{normalize:n,plural:r}=e;return r([n(["sport"]),n(["sporten"])])},START:e=>{const{normalize:n}=e;return n(["start"])},START_AND_FINISH:e=>{const{normalize:n}=e;return n(["Start en aankomst"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:n}=e;return n(["Zet hoogte-as vast op 0"])},TITLE:e=>{const{normalize:n}=e;return n(["titel"])},TO:e=>{const{normalize:n}=e;return n(["tem."])},TOTAL_DURATION:e=>{const{normalize:n}=e;return n(["totale duur"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:n}=e;return n(["Eén uploaden!"])},WEATHER:{DARK_SKY:{"clear-day":e=>{const{normalize:n}=e;return n(["heldere dag"])},"clear-night":e=>{const{normalize:n}=e;return n(["heldere nacht"])},cloudy:e=>{const{normalize:n}=e;return n(["bewolkt"])},fog:e=>{const{normalize:n}=e;return n(["mist"])},"partly-cloudy-day":e=>{const{normalize:n}=e;return n(["gedeeltelijk bewolkte dag"])},"partly-cloudy-night":e=>{const{normalize:n}=e;return n(["gedeeltelijk bewolkte nacht"])},rain:e=>{const{normalize:n}=e;return n(["regen"])},sleet:e=>{const{normalize:n}=e;return n(["natte sneeuw"])},snow:e=>{const{normalize:n}=e;return n(["sneeuw"])},wind:e=>{const{normalize:n}=e;return n(["wind"])}},HUMIDITY:e=>{const{normalize:n}=e;return n(["vochtigheid"])},TEMPERATURE:e=>{const{normalize:n}=e;return n(["temperatuur"])},WIND:e=>{const{normalize:n}=e;return n(["wind"])},WIND_DIRECTIONS:{E:e=>{const{normalize:n}=e;return n(["O"])},ENE:e=>{const{normalize:n}=e;return n(["ONO"])},ESE:e=>{const{normalize:n}=e;return n(["OZO"])},N:e=>{const{normalize:n}=e;return n(["N"])},NE:e=>{const{normalize:n}=e;return n(["NO"])},NNE:e=>{const{normalize:n}=e;return n(["NNO"])},NNW:e=>{const{normalize:n}=e;return n(["NNW"])},NW:e=>{const{normalize:n}=e;return n(["NW"])},S:e=>{const{normalize:n}=e;return n(["Z"])},SE:e=>{const{normalize:n}=e;return n(["ZO"])},SSE:e=>{const{normalize:n}=e;return n(["ZZO"])},SSW:e=>{const{normalize:n}=e;return n(["ZZW"])},SW:e=>{const{normalize:n}=e;return n(["ZW"])},W:e=>{const{normalize:n}=e;return n(["W"])},WNW:e=>{const{normalize:n}=e;return n(["WNW"])},WSW:e=>{const{normalize:n}=e;return n(["WZW"])}}},WITHOUT_GPX:e=>{const{normalize:n}=e;return n(["zonder .gpx bestand"])},WITH_GPX:e=>{const{normalize:n}=e;return n(["met .gpx bestand"])},WORKOUT:e=>{const{normalize:n,plural:r}=e;return r([n(["training"]),n(["trainingen"])])},WORKOUT_DATE:e=>{const{normalize:n}=e;return n(["datum training"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:n}=e;return n(["Weet u zeker dat u deze training wilt verwijderen?"])},ZIP_ARCHIVE:e=>{const{normalize:n}=e;return n([".zip bestand"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:n}=e;return n(["of .zip archief met .gpx bestanden"])}},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},5381:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return S}});var t={WEATHER_DATA_FROM:e=>{const{normalize:n}=e;return n(["Dane pogodowe z:"])},ABOUT_THIS_INSTANCE:e=>{const{normalize:n}=e;return n(["O tej instancji"])},CONTACT_ADMIN:e=>{const{normalize:n}=e;return n(["Skontaktuj się z administratorem"])},FITTRACKEE_LICENSE:e=>{const{normalize:n,interpolate:r,list:t}=e;return n(["na licencji ",r(t(0))," "])},SOURCE_CODE:e=>{const{normalize:n}=e;return n(["Kod źródłowy"])}},o={},a={},i={},s={},l={DASHBOARD:e=>{const{normalize:n}=e;return n(["Panel"])},THIS_MONTH:e=>{const{normalize:n}=e;return n(["Ten miesiąc"])}},c={APP_ERROR:e=>{const{normalize:n}=e;return n(["Wygląda na to, że aplikacja napotkała pewne problemy. Spróbuj ponownie później lub skontaktuj się z administratorem."])},UNKNOWN:e=>{const{normalize:n}=e;return n(["Błąd. Proszę spróbować ponownie lub skontaktować się z administratorem."])},NOT_FOUND:{PAGE:e=>{const{normalize:n}=e;return n(["Nie znaleziono strony"])},WORKOUT:e=>{const{normalize:n}=e;return n(["Nie znaleziono treningu"])}},SOMETHING_WRONG:e=>{const{normalize:n}=e;return n(["Coś poszło nie tak"])}},u={},m={},d={},E={STATISTICS:e=>{const{normalize:n}=e;return n(["Statystyki"])},TIME_FRAMES:{month:e=>{const{normalize:n}=e;return n(["miesiąc"])},week:e=>{const{normalize:n}=e;return n(["tydzień"])},year:e=>{const{normalize:n}=e;return n(["rok"])}}},_={},T={},S={about:t,admin:o,api:a,buttons:i,common:s,dashboard:l,error:c,oauth2:u,privacy_policy:m,sports:d,statistics:E,user:_,workouts:T}},6413:function(e,n,r){"use strict";var t=r(3148),o=r(7028),a=r(9963),i=r(2343),s=r(5205);(0,s.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=r(6252),c=r(2262),u=r(3577);const m=e=>((0,l.dD)("data-v-97e20d3a"),e=e(),(0,l.Cn)(),e),d={id:"footer"},E={class:"footer-items"},_={class:"footer-item"},T=m((()=>(0,l._)("strong",null,"FitTrackee",-1))),S=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},z={key:1,class:"footer-item"},O=["href"],I=m((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),R={class:"footer-item"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const n=e,{adminContact:r,version:t}=(0,c.BK)(n);return(e,n)=>{const o=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",d,[(0,l._)("div",E,[(0,l._)("div",_,[T,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(t)),1)]),S,(0,l._)("div",p,[(0,l.Wm)(o,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",z,[(0,l._)("a",{href:`mailto:${(0,c.SU)(r)}`},(0,u.zw)(e.$t("common.CONTACT")),9,O)])):(0,l.kq)("",!0),I,(0,l._)("div",R,[(0,l.Wm)(o,{to:"/privacy-policy"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])])])}}}),g=r(3744);const U=(0,g.Z)(N,[["__scopeId","data-v-97e20d3a"]]);var C=U,D=(r(7658),r(6595)),v=r(5801),h=r(9917),f=r(6287);const P=e=>((0,l.dD)("data-v-7c04bc24"),e=e(),(0,l.Cn)(),e),L={id:"nav"},w={class:"nav-container"},k={class:"nav-app-name"},b={class:"nav-items-close"},M=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),y={key:0,class:"nav-items-group"},G=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),F={class:"nav-items-user-menu"},W={key:0,class:"nav-items-group"},Y={class:"nav-item nav-profile-img"},x={key:1,class:"nav-items-group"},B=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var K=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:n}){const r=(0,h.o)(),t=(0,l.Fl)((()=>r.getters[v.YN.GETTERS.AUTH_USER_PROFILE])),o=(0,l.Fl)((()=>r.getters[v.YN.GETTERS.IS_AUTHENTICATED])),a=(0,l.Fl)((()=>r.getters[v.SY.GETTERS.LANGUAGE])),i=(0,c.iH)(!1);function s(){i.value=!0,n("menuInteraction",!0)}function m(){i.value=!1,n("menuInteraction",!1)}function d(e){r.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function E(){r.dispatch(v.YN.ACTIONS.LOGOUT)}return(e,n)=>{const r=(0,l.up)("router-link"),_=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",L,[(0,l._)("div",w,[(0,l._)("div",k,[(0,l._)("div",{class:"nav-item app-name",onClick:n[0]||(n[0]=n=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":i.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:n[1]||(n[1]=e=>s())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":i.value}])},[(0,l._)("div",b,[M,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!i.value}]),onClick:n[2]||(n[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:n[3]||(n[3]=e=>m())},[(0,c.SU)(o)?((0,l.wg)(),(0,l.iD)("div",y,[(0,l.Wm)(r,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(o)&&(0,c.SU)(t).admin?((0,l.wg)(),(0,l.j4)(r,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),G])):(0,l.kq)("",!0)]),(0,l._)("div",F,[(0,c.SU)(o)?((0,l.wg)(),(0,l.iD)("div",W,[(0,l._)("div",Y,[(0,l.Wm)(D.Z,{user:(0,c.SU)(t)},null,8,["user"])]),(0,l.Wm)(r,{class:"nav-item",to:"/profile",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(t).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:E},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",x,[(0,l.Wm)(r,{class:"nav-item",to:"/login",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(r,{class:"nav-item",to:"/register",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(f.mT)&&(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(_,{key:2,class:"nav-item",options:(0,c.SU)(f.mT),selected:(0,c.SU)(a),onSelected:d},{default:(0,l.w5)((()=>[B])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const H=(0,g.Z)(K,[["__scopeId","data-v-7c04bc24"]]);var V=H,Z=r(7167);const $={id:"no-config"},q={class:"error-page"},X={class:"error-img"},j=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,n)=>((0,l.wg)(),(0,l.iD)("div",$,[(0,l._)("div",q,[(0,l._)("div",X,[(0,l.Wm)(Z.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,j)])]))}});const J=(0,g.Z)(Q,[["__scopeId","data-v-47759238"]]);var ee=J;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},te={class:"app-loading"},oe={class:"container scroll"},ae=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),ie=[ae];var se=(0,l.aZ)({__name:"App",setup(e){const n=(0,h.o)(),r=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.APP_CONFIG])),t=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.APP_LOADING])),o=(0,c.iH)(!1),a=(0,c.iH)(!1);function i(e){o.value=e}function s(e){return e.getBoundingClientRect().top=0}function m(){window.onscroll=()=>{const e=document.querySelector("#bottom");a.value=null!==e&&s(e)}}function d(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{a.value=!1}),300)}function E(){let e="en";try{const n=navigator.language.split("-")[0];n in f.v1&&(e=n)}catch(r){e="en"}n.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{E(),n.dispatch(v.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>m())),(e,n)=>{const s=(0,l.up)("Loader"),m=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)(V,{onMenuInteraction:i}),(0,c.SU)(t)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",te,[(0,l.Wm)(s)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":o.value}])},[(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(m,{key:0})):((0,l.wg)(),(0,l.j4)(ee,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":a.value}]),onClick:d},ie,2)]),(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(C,{key:2,version:(0,c.SU)(r)?(0,c.SU)(r).version:"",adminContact:(0,c.SU)(r).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const le=se;var ce=le,ue=r(2540),me=r(4413),de=r(2894);const Ee={class:"alert-message"},_e=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const n=e,{message:r}=(0,c.BK)(n);return(e,n)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(r))},null,8,_e)]))}});const Se=(0,g.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var pe=Se,Ae=r(2531);const ze={class:"custom-textarea"},Oe=["id","name","maxLength","disabled"],Ie={class:"remaining-chars"};var Re=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:n}){const r=e,t=(0,c.iH)("");function o(e){n("updateValue",e.target.value)}return(0,l.YP)((()=>r.input),(e=>{t.value=null===e?"":e})),(n,r)=>((0,l.wg)(),(0,l.iD)("div",ze,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLength:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":r[0]||(r[0]=e=>t.value=e),onInput:o},null,40,Oe),[[a.nr,t.value]]),(0,l._)("div",Ie,(0,u.zw)(n.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(t.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,g.Z)(Re,[["__scopeId","data-v-eb7fa534"]]);var ge=Ne,Ue=r(3649),Ce=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const n=e,{digits:r,displayUnit:t,distance:o,speed:a,strong:i,unitFrom:s,useImperialUnits:m}=(0,c.BK)(n),d=(0,l.Fl)((()=>m.value?Ue.Dl[s.value].defaultTarget:s.value)),E=(0,l.Fl)((()=>m.value?(0,Ue.sC)(o.value,s.value,d.value,r.value):parseFloat(o.value.toFixed(r.value))));return(e,n)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(E)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(0,c.SU)(t)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(i)}])},(0,u.zw)((0,c.SU)(d))+(0,u.zw)((0,c.SU)(a)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const De=(0,g.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var ve=De,he=r(2201);const fe={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},Le=["onClick"];var we=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:n}){const r=e,t=(0,he.yj)(),o=(0,c.iH)(!1),a=r.options.map((e=>e));function i(){o.value=!o.value}function s(e){n("selected",e),o.value=!1}return(0,l.YP)((()=>t.path),(()=>o.value=!1)),(n,r)=>((0,l.wg)(),(0,l.iD)("div",fe,[(0,l._)("div",{class:"dropdown-selected",onClick:i},[(0,l.WI)(n.$slots,"default")]),o.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(a),((n,r)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:n.value===e.selected}]),key:r,onClick:e=>s(n)},(0,u.zw)(n.label),11,Le)))),128))])):(0,l.kq)("",!0)]))}});const ke=(0,g.Z)(we,[["__scopeId","data-v-9590c0e6"]]);var be=ke;const Me={class:"error-message"},ye={key:0},Ge={key:1};var Fe=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const n=e,{message:r}=(0,c.BK)(n);return(e,n)=>((0,l.wg)(),(0,l.iD)("div",Me,[Array.isArray((0,c.SU)(r))?((0,l.wg)(),(0,l.iD)("ul",ye,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(r),((n,r)=>((0,l.wg)(),(0,l.iD)("li",{key:r},(0,u.zw)(e.$t(n)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Ge,(0,u.zw)(e.$t((0,c.SU)(r))),1))]))}});const We=(0,g.Z)(Fe,[["__scopeId","data-v-2659a79a"]]);var Ye=We;const xe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Ke=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),He=[Be,Ke];function Ve(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",xe,He)}var Ze={name:"CyclingSport"};const $e=(0,g.Z)(Ze,[["render",Ve]]);var qe=$e;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),Je=[je,Qe];function en(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Xe,Je)}var nn={name:"CyclingTransport"};const rn=(0,g.Z)(nn,[["render",en]]);var tn=rn;const on={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"},an=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),sn=[an];function ln(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",on,sn)}var cn={name:"CyclingVirtual"};const un=(0,g.Z)(cn,[["render",ln]]);var mn=un;const dn={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"},En=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),_n=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),Tn=[En,_n];function Sn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",dn,Tn)}var pn={name:"Hiking"};const An=(0,g.Z)(pn,[["render",Sn]]);var zn=An;const On={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},In=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Rn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),Nn=[In,Rn];function gn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",On,Nn)}var Un={name:"MountainBiking"};const Cn=(0,g.Z)(Un,[["render",gn]]);var Dn=Cn;const vn={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"},hn=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),fn=[hn];function Pn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",vn,fn)}var Ln={name:"MountainBikingElectric"};const wn=(0,g.Z)(Ln,[["render",Pn]]);var kn=wn;const bn={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},Mn=(0,l.uE)(' silhouette of a person doing mountaineering ',2),yn=[Mn];function Gn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",bn,yn)}var Fn={name:"Mountaineering"};const Wn=(0,g.Z)(Fn,[["render",Gn]]);var Yn=Wn;const xn={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"},Bn=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),Kn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Hn=[Bn,Kn];function Vn(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",xn,Hn)}var Zn={name:"Rowing"};const $n=(0,g.Z)(Zn,[["render",Vn]]);var qn=$n;const Xn={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"},jn=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Qn=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Jn=[jn,Qn];function er(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Xn,Jn)}var nr={name:"Running"};const rr=(0,g.Z)(nr,[["render",er]]);var tr=rr;const or={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"},ar=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),ir=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),sr=[ar,ir];function lr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",or,sr)}var cr={name:"SkiingAlpine"};const ur=(0,g.Z)(cr,[["render",lr]]);var mr=ur;const dr={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"},Er=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),_r=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),Tr=[Er,_r];function Sr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",dr,Tr)}var pr={name:"SkiingCrossCountry"};const Ar=(0,g.Z)(pr,[["render",Sr]]);var zr=Ar;const Or={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"},Ir=(0,l.uE)('silhouette of a person with snowshoes ',6),Rr=[Ir];function Nr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Or,Rr)}var gr={name:"Snowshoes"};const Ur=(0,g.Z)(gr,[["render",Nr]]);var Cr=Ur;const Dr={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"},vr=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),hr=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),fr=[vr,hr];function Pr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",Dr,fr)}var Lr={name:"Trail"};const wr=(0,g.Z)(Lr,[["render",Pr]]);var kr=wr;const br={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"},Mr=(0,l.uE)('silhouette of a walking person ',3),yr=[Mr];function Gr(e,n,r,t,o,a){return(0,l.wg)(),(0,l.iD)("svg",br,yr)}var Fr={name:"Walking"};const Wr=(0,g.Z)(Fr,[["render",Gr]]);var Yr=Wr;const xr=["title"];var Br=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const n=e,{color:r,sportLabel:t,title:o}=(0,c.BK)(n),a=(0,l.f3)("sportColors");return(e,n)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(r)?(0,c.SU)(r):(0,c.SU)(a)[(0,c.SU)(t)]}),title:(0,c.SU)(o)?(0,c.SU)(o):e.$t(`sports.${(0,c.SU)(t)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(qe,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(tn,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(mn,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(zn,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Dn,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(kn,{key:5})):(0,l.kq)("",!0),"Mountaineering"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Yn,{key:6})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(qn,{key:7})):(0,l.kq)("",!0),"Running"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(tr,{key:8})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(mr,{key:9})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(zr,{key:10})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Cr,{key:11})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(kr,{key:12})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(t)?((0,l.wg)(),(0,l.j4)(Yr,{key:13})):(0,l.kq)("",!0)],12,xr))}});const Kr=Br;var Hr=Kr;const Vr={class:"loader"};function Zr(e,n){return(0,l.wg)(),(0,l.iD)("div",Vr)}const $r={},qr=(0,g.Z)($r,[["render",Zr],["__scopeId","data-v-4c9921ee"]]);var Xr=qr;const jr={id:"modal"},Qr={class:"custom-modal"},Jr={key:0,class:"modal-message"},et={key:1,class:"modal-message"},nt={class:"modal-buttons"};var rt=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:n}){const r=e,t=(0,h.o)(),{title:o,message:a,strongMessage:i}=(0,c.BK)(r),s=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>t.commit(v.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,r)=>{const t=(0,l.up)("i18n-t"),m=(0,l.up)("ErrorMessage"),d=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",jr,[(0,l._)("div",Qr,[(0,l.Wm)(d,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(o)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(i)?((0,l.wg)(),(0,l.iD)("div",Jr,[(0,l.Wm)(t,{keypath:(0,c.SU)(a)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(i)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",et,(0,u.zw)((0,c.SU)(a)),1)),(0,c.SU)(s)?((0,l.wg)(),(0,l.j4)(m,{key:2,message:(0,c.SU)(s)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",nt,[(0,c.SU)(s)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:r[0]||(r[0]=e=>n("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:r[1]||(r[1]=e=>n("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(s)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const tt=(0,g.Z)(rt,[["__scopeId","data-v-5aa8db48"]]);var ot=tt;const at=[{target:pe,name:"AlertMessage"},{target:Ae.Z,name:"Card"},{target:ge,name:"CustomTextArea"},{target:ve,name:"Distance"},{target:be,name:"Dropdown"},{target:Ye,name:"ErrorMessage"},{target:Xr,name:"Loader"},{target:ot,name:"Modal"},{target:Hr,name:"SportImage"}],it={mounted:(e,n)=>{e.clickOutsideEvent=function(r){e===r.target||e.contains(r.target)||n.value(r)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var st=r(631);t.kL.register(t.ZL,t.jn,t.od,t.De,t.Dx,t.u,t.Gu,t.vn,t.uw,t.ST,t.f$,o.Z);const lt=(0,a.ri)(ce).provide("sportColors",st.Zo).use(ue.Z).use(de.Z).use(me.Z).use(i.ZP,{name:"VFullscreen"}).directive("click-outside",it);at.forEach((e=>{lt.component(e.name,e.target)})),lt.mount("#app")},4413:function(e,n,r){"use strict";r.d(n,{Z:function(){return Yc}});var t=r(2201),o=(r(7658),r(6252)),a=r(3577),i=r(9963),s=r(2262),l=r(9252),c=r(5801),u=r(9917),m=r(8966),d=r(2335);const E=e=>((0,o.dD)("data-v-80b4a9e6"),e=e(),(0,o.Cn)(),e),_={id:"admin-app",class:"admin-card"},T=["onSubmit"],S={for:"admin_contact"},p=["value"],A=["disabled"],z={for:"max_users"},O=["disabled"],I={class:"user-limit-help"},R={class:"info-box"},N=E((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),g={for:"max_single_file_size"},U=["disabled"],C={for:"max_zip_file_size"},D=["disabled"],v={for:"gpx_limit_import"},h=["disabled"],f={class:"about-label",for:"about"},P={class:"textarea-description"},L=["innerHTML"],w={class:"privacy-policy-label",for:"privacy_policy"},k={class:"textarea-description"},b=["innerHTML"],M={key:5,class:"form-buttons"},y={class:"confirm",type:"submit"},G=["onClick"],F={key:6,class:"form-buttons"};var W=(0,o.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const n=e,{edition:r}=(0,s.BK)(n),E=(0,u.o)(),W=(0,t.tv)(),Y=(0,s.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0,about:"",privacy_policy:""}),x=(0,o.Fl)((()=>E.getters[c.SY.GETTERS.ERROR_MESSAGES]));function B(e){Object.keys(Y).map((n=>{["max_single_file_size","max_zip_file_size"].includes(n)?Y[n]=(0,m.j)(e[n]):["about","privacy_policy"].includes(n)?Y[n]=null!==e[n]?e[n]:"":Y[n]=e[n]}))}function K(){B(n.appConfig),E.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),W.push("/admin/application")}function H(){const e=Object.assign({},Y);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,E.dispatch(c.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,o.wF)((()=>{n.appConfig&&B(n.appConfig)})),(e,n)=>{const t=(0,o.up)("ErrorMessage"),c=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",_,[(0,o.Wm)(c,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,o.w5)((()=>[(0,o._)("form",{class:"admin-form",onSubmit:(0,i.iM)(H,["prevent"])},[(0,o._)("label",S,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,s.SU)(r)||Y.admin_contact?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":n[0]||(n[0]=e=>Y.admin_contact=e),disabled:!(0,s.SU)(r)},null,8,A)),[[i.nr,Y.admin_contact]]):((0,o.wg)(),(0,o.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,p))]),(0,o._)("label",z,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":n[1]||(n[1]=e=>Y.max_users=e),disabled:!(0,s.SU)(r)},null,8,O),[[i.nr,Y.max_users]])]),(0,o._)("div",I,[(0,o._)("span",R,[N,(0,o.Uk)(" "+(0,a.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,o._)("label",g,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[2]||(n[2]=e=>Y.max_single_file_size=e),disabled:!(0,s.SU)(r)},null,8,U),[[i.nr,Y.max_single_file_size]])]),(0,o._)("label",C,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":n[3]||(n[3]=e=>Y.max_zip_file_size=e),disabled:!(0,s.SU)(r)},null,8,D),[[i.nr,Y.max_zip_file_size]])]),(0,o._)("label",v,[(0,o.Uk)((0,a.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,o.wy)((0,o._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":n[4]||(n[4]=e=>Y.gpx_limit_import=e),disabled:!(0,s.SU)(r)},null,8,h),[[i.nr,Y.gpx_limit_import]])]),(0,o._)("label",f,(0,a.zw)(e.$t("admin.ABOUT.TEXT"))+": ",1),(0,o._)("span",P,(0,a.zw)(e.$t("admin.ABOUT.DESCRIPTION")),1),(0,s.SU)(r)?(0,o.wy)(((0,o.wg)(),(0,o.iD)("textarea",{key:0,id:"about",name:"about",rows:"10","onUpdate:modelValue":n[5]||(n[5]=e=>Y.about=e)},null,512)),[[i.nr,Y.about]]):((0,o.wg)(),(0,o.iD)("div",{key:1,innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)(Y.about?Y.about:e.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,L)),(0,o._)("label",w,(0,a.zw)((0,a.kC)(e.$t("privacy_policy.TITLE")))+": ",1),(0,o._)("span",k,(0,a.zw)(e.$t("admin.PRIVACY_POLICY_DESCRIPTION")),1),(0,s.SU)(r)?(0,o.wy)(((0,o.wg)(),(0,o.iD)("textarea",{key:2,id:"privacy_policy",name:"privacy_policy",rows:"20","onUpdate:modelValue":n[6]||(n[6]=e=>Y.privacy_policy=e)},null,512)),[[i.nr,Y.privacy_policy]]):((0,o.wg)(),(0,o.iD)("div",{key:3,innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)(Y.privacy_policy?Y.privacy_policy:e.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,b)),(0,s.SU)(x)?((0,o.wg)(),(0,o.j4)(t,{key:4,message:(0,s.SU)(x)},null,8,["message"])):(0,o.kq)("",!0),(0,s.SU)(r)?((0,o.wg)(),(0,o.iD)("div",M,[(0,o._)("button",y,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:(0,i.iM)(K,["prevent"])},(0,a.zw)(e.$t("buttons.CANCEL")),9,G)])):((0,o.wg)(),(0,o.iD)("div",F,[(0,o._)("button",{class:"confirm",onClick:n[7]||(n[7]=(0,i.iM)((n=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,a.zw)(e.$t("buttons.EDIT")),1),(0,o._)("button",{class:"cancel",onClick:n[8]||(n[8]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,T)])),_:1})])}}}),Y=r(3744);const x=(0,Y.Z)(W,[["__scopeId","data-v-80b4a9e6"]]);var B=x;const K={class:"stat-card"},H={class:"stat-content box"},V={class:"stat-icon"},Z={class:"stat-details"},$={class:"stat-huge"},q={class:"stat"};var X=(0,o.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const n=e,{icon:r,text:t,value:i}=(0,s.BK)(n);return(e,n)=>((0,o.wg)(),(0,o.iD)("div",K,[(0,o._)("div",H,[(0,o._)("div",V,[(0,o._)("i",{class:(0,a.C_)(["fa",`fa-${(0,s.SU)(r)}`])},null,2)]),(0,o._)("div",Z,[(0,o._)("div",$,(0,a.zw)((0,s.SU)(i)),1),(0,o._)("div",q,(0,a.zw)((0,s.SU)(t)),1)])])]))}});const j=X;var Q=j;const J={id:"user-stats"};var ee=(0,o.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const n=e,{appStatistics:r}=(0,s.BK)(n),t=(0,o.Fl)((()=>(0,m.Z)(r.value.uploads_dir_size,!1)));return(e,n)=>((0,o.wg)(),(0,o.iD)("div",J,[(0,o.Wm)(Q,{icon:"users",value:(0,s.SU)(r).users,text:e.$t("admin.USER",(0,s.SU)(r).users)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"tags",value:(0,s.SU)(r).sports,text:e.$t("workouts.SPORT",(0,s.SU)(r).sports)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"calendar",value:(0,s.SU)(r).workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(r).workouts)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"folder-open",value:(0,s.SU)(t).size,text:(0,s.SU)(t).suffix},null,8,["value","text"])]))}});const ne=ee;var re=ne,te=r(2531);const oe=e=>((0,o.dD)("data-v-0dd66f89"),e=e(),(0,o.Cn)(),e),ae={id:"admin-menu",class:"center-card"},ie={class:"admin-menu description-list"},se={class:"application-config-details"},le=oe((()=>(0,o._)("br",null,null,-1))),ce={class:"registration-status"},ue={key:0,class:"email-sending-status"},me=oe((()=>(0,o._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var de=(0,o.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const n=e,{appConfig:r,appStatistics:t}=(0,s.BK)(n);return(e,n)=>{const i=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",ae,[(0,o.Wm)(te.Z,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,o.w5)((()=>[(0,o.Wm)(re,{appStatistics:(0,s.SU)(t)},null,8,["appStatistics"]),(0,o._)("div",ie,[(0,o._)("dl",null,[(0,o._)("dt",null,[(0,o.Wm)(i,{to:"/admin/application"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,o._)("dd",se,[(0,o.Uk)((0,a.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),le,(0,o._)("span",ce,(0,a.zw)(e.$t("admin.REGISTRATION_"+((0,s.SU)(r).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,s.SU)(r).is_email_sending_enabled?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",ue,[me,(0,o.Uk)(" "+(0,a.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,o._)("dt",null,[(0,o.Wm)(i,{to:"/admin/sports"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,a.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,o._)("dd",null,(0,a.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,o._)("dt",null,[(0,o.Wm)(i,{to:"/admin/users"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,a.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,o._)("dd",null,(0,a.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const Ee=(0,Y.Z)(de,[["__scopeId","data-v-0dd66f89"]]);var _e=Ee,Te=r(9150),Se=r(631);const pe=e=>((0,o.dD)("data-v-6d62af67"),e=e(),(0,o.Cn)(),e),Ae={id:"admin-sports",class:"admin-card"},ze={class:"responsive-table"},Oe=pe((()=>(0,o._)("th",null,"#",-1))),Ie={class:"text-left"},Re={class:"text-left sport-action"},Ne=pe((()=>(0,o._)("th",null,null,-1))),ge={class:"text-center"},Ue=pe((()=>(0,o._)("span",{class:"cell-heading"},"id",-1))),Ce={class:"cell-heading"},De={class:"sport-label"},ve={class:"cell-heading"},he={class:"text-center"},fe={class:"cell-heading"},Pe={class:"sport-action"},Le={class:"cell-heading"},we={class:"action-button"},ke=["onClick"],be={key:0,class:"has-workouts"},Me=pe((()=>(0,o._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var ye=(0,o.aZ)({__name:"AdminSports",setup(e){const{t:n}=(0,Te.QT)(),r=(0,u.o)(),t=(0,o.Fl)((()=>(0,Se.xH)(r.getters[c.O8.GETTERS.SPORTS],n))),l=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES]));function m(e,n){r.dispatch(c.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:n})}return(e,n)=>{const r=(0,o.up)("SportImage"),c=(0,o.up)("ErrorMessage"),u=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",Ae,[(0,o.Wm)(u,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,o.w5)((()=>[(0,o._)("button",{class:"top-button",onClick:n[0]||(n[0]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,o._)("div",ze,[(0,o._)("table",null,[(0,o._)("thead",null,[(0,o._)("tr",null,[Oe,(0,o._)("th",null,(0,a.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,o._)("th",Ie,(0,a.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,o._)("th",null,(0,a.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,o._)("th",Re,(0,a.zw)(e.$t("admin.ACTION")),1),Ne])]),(0,o._)("tbody",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(t),(n=>((0,o.wg)(),(0,o.iD)("tr",{key:n.id},[(0,o._)("td",ge,[Ue,(0,o.Uk)(" "+(0,a.zw)(n.id),1)]),(0,o._)("td",null,[(0,o._)("span",Ce,(0,a.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,o.Wm)(r,{title:n.translatedLabel,"sport-label":n.label,color:n.color},null,8,["title","sport-label","color"])]),(0,o._)("td",De,[(0,o._)("span",ve,(0,a.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,o.Uk)(" "+(0,a.zw)(n.translatedLabel),1)]),(0,o._)("td",he,[(0,o._)("span",fe,(0,a.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,o._)("i",{class:(0,a.C_)("fa fa"+(n.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,o._)("td",Pe,[(0,o._)("span",Le,(0,a.zw)(e.$t("admin.ACTION")),1),(0,o._)("div",we,[(0,o._)("button",{class:(0,a.C_)({danger:n.is_active}),onClick:e=>m(n.id,!n.is_active)},(0,a.zw)(e.$t(`buttons.${n.is_active?"DIS":"EN"}ABLE`)),11,ke),n.has_workouts?((0,o.wg)(),(0,o.iD)("span",be,[Me,(0,o.Uk)(" "+(0,a.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,o.kq)("",!0)])])])))),128))])]),(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(c,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("button",{onClick:n[1]||(n[1]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const Ge=(0,Y.Z)(ye,[["__scopeId","data-v-6d62af67"]]);var Fe=Ge,We=r(8626),Ye=r(5020),xe=r(6595);const Be={class:"users-filters"},Ke={class:"search-username"},He=["onKeyup","placeholder"];var Ve=(0,o.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:n}){const r=(0,t.yj)(),l=(0,s.iH)(r.query.q?r.query.q:"");function c(){""!==l.value&&n("filterOnUsername",l)}function u(){l.value="",n("filterOnUsername",l.value)}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Be,[(0,o._)("div",Ke,[(0,o.wy)((0,o._)("input",{id:"username",name:"username","onUpdate:modelValue":n[0]||(n[0]=e=>l.value=e),onKeyup:(0,i.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,He),[[i.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,o.wg)(),(0,o.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,o.kq)("",!0)]),(0,o._)("i",{class:(0,a.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Ze=(0,Y.Z)(Ve,[["__scopeId","data-v-627a8e91"]]);var $e=Ze,qe=r(2766),Xe=r(6558);const je=e=>((0,o.dD)("data-v-dc12ff78"),e=e(),(0,o.Cn)(),e),Qe={id:"admin-users",class:"admin-card"},Je={key:0,class:"no-users"},en={key:1,class:"responsive-table"},nn=je((()=>(0,o._)("th",null,"#",-1))),rn={class:"left-text"},tn={class:"left-text"},on={class:"left-text"},an={class:"cell-heading"},sn={class:"cell-heading"},ln={class:"cell-heading"},cn={class:"cell-heading"},un={class:"text-center"},mn={class:"cell-heading"},dn={class:"text-center"},En={class:"cell-heading"},_n={class:"text-center"},Tn={class:"cell-heading"},Sn={class:"text-center"},pn={class:"cell-heading"},An=["disabled","onClick"];var zn=(0,o.aZ)({__name:"AdminUsers",setup(e){const n=(0,u.o)(),r=(0,t.yj)(),l=(0,t.tv)(),m=["is_active","admin","created_at","username","workouts_count"],d="created_at";let E=(0,s.qj)((0,qe.pm)(r.query,m,d));const _=(0,o.Fl)((()=>n.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),T=(0,o.Fl)((()=>n.getters[c.RT.GETTERS.USERS])),S=(0,o.Fl)((()=>n.getters[c.RT.GETTERS.USERS_PAGINATION])),p=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.ERROR_MESSAGES]));function A(e){n.dispatch(c.RT.ACTIONS.GET_USERS,e)}function z(e){I("q",e.value)}function O(e,r){n.dispatch(c.RT.ACTIONS.UPDATE_USER,{username:e,admin:r})}function I(e,n){E[e]=n,"per_page"===e&&(E.page=1),l.push({path:"/admin/users",query:E})}return(0,o.wF)((()=>A(E))),(0,o.Ah)((()=>{n.dispatch(c.RT.ACTIONS.EMPTY_USERS)})),(0,o.YP)((()=>r.query),(e=>{E=(0,qe.pm)(e,m,d,{query:E}),A(E)})),(e,n)=>{const r=(0,o.up)("router-link"),t=(0,o.up)("ErrorMessage"),l=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",Qe,[(0,o.Wm)(l,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,a.kC)(e.$t("admin.USER",0))),1)])),content:(0,o.w5)((()=>[(0,o._)("button",{class:"top-button",onClick:n[0]||(n[0]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,o.Wm)($e,{onFilterOnUsername:z}),(0,o.Wm)(We.Z,{sort:(0,s.SU)(qe.fS),order_by:m,query:(0,s.SU)(E),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,s.SU)(T).length?((0,o.wg)(),(0,o.iD)("div",Je,(0,a.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,o.wg)(),(0,o.iD)("div",en,[(0,o._)("table",null,[(0,o._)("thead",null,[(0,o._)("tr",null,[nn,(0,o._)("th",rn,(0,a.zw)(e.$t("user.USERNAME")),1),(0,o._)("th",tn,(0,a.zw)(e.$t("user.EMAIL")),1),(0,o._)("th",on,(0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,o._)("th",null,(0,a.zw)((0,a.kC)(e.$t("workouts.WORKOUT",0))),1),(0,o._)("th",null,(0,a.zw)(e.$t("admin.ACTIVE")),1),(0,o._)("th",null,(0,a.zw)(e.$t("user.ADMIN")),1),(0,o._)("th",null,(0,a.zw)(e.$t("admin.ACTION")),1)])]),(0,o._)("tbody",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(T),(n=>((0,o.wg)(),(0,o.iD)("tr",{key:n.username},[(0,o._)("td",null,[(0,o._)("span",an,(0,a.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,o.Wm)(xe.Z,{user:n},null,8,["user"])]),(0,o._)("td",null,[(0,o._)("span",sn,(0,a.zw)(e.$t("user.USERNAME")),1),(0,o.Wm)(r,{to:`/admin/users/${n.username}`},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(n.username),1)])),_:2},1032,["to"])]),(0,o._)("td",null,[(0,o._)("span",ln,(0,a.zw)(e.$t("user.EMAIL")),1),(0,o.Uk)(" "+(0,a.zw)(n.email),1)]),(0,o._)("td",null,[(0,o._)("span",cn,(0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,o.Uk)(" "+(0,a.zw)((0,s.SU)(Xe.p6)(n.created_at,(0,s.SU)(_).timezone,(0,s.SU)(_).date_format)),1)]),(0,o._)("td",un,[(0,o._)("span",mn,(0,a.zw)((0,a.kC)(e.$t("workouts.WORKOUT",0))),1),(0,o.Uk)(" "+(0,a.zw)(n.nb_workouts),1)]),(0,o._)("td",dn,[(0,o._)("span",En,(0,a.zw)(e.$t("admin.ACTIVE")),1),(0,o._)("i",{class:(0,a.C_)(`fa fa${n.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,o._)("td",_n,[(0,o._)("span",Tn,(0,a.zw)(e.$t("user.ADMIN")),1),(0,o._)("i",{class:(0,a.C_)(`fa fa${n.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,o._)("td",Sn,[(0,o._)("span",pn,(0,a.zw)(e.$t("admin.ACTION")),1),(0,o._)("button",{class:(0,a.C_)({danger:n.admin}),disabled:n.username===(0,s.SU)(_).username,onClick:e=>O(n.username,!n.admin)},(0,a.zw)(e.$t(`admin.USERS.TABLE.${n.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,An)])])))),128))])]),(0,s.SU)(S).page?((0,o.wg)(),(0,o.j4)(Ye.Z,{key:0,path:"/admin/users",pagination:(0,s.SU)(S),query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,o.kq)("",!0),(0,s.SU)(p)?((0,o.wg)(),(0,o.j4)(t,{key:1,message:(0,s.SU)(p)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("button",{onClick:n[1]||(n[1]=(0,i.iM)((n=>e.$router.push("/admin")),["prevent"]))},(0,a.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const On=(0,Y.Z)(zn,[["__scopeId","data-v-dc12ff78"]]);var In=On,Rn=r(2179);const Nn={class:"profile-tabs custom-checkboxes-group"},gn={class:"profile-tabs-checkboxes custom-checkboxes"},Un=["id","name","checked","disabled","onInput"];var Cn=(0,o.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const n=e,{tabs:r,selectedTab:t,disabled:i}=(0,s.BK)(n);function l(e){switch(e){case"ACCOUNT":case"PICTURE":case"PRIVACY-POLICY":return`/profile/edit/${e.toLocaleLowerCase()}`;case"APPS":case"PREFERENCES":case"SPORTS":return`/profile${n.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(n.edition?"/edit":"")}}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Nn,[(0,o._)("div",gn,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(r),(n=>((0,o.wg)(),(0,o.iD)("div",{class:"profile-tab custom-checkbox",key:n},[(0,o._)("label",null,[(0,o._)("input",{type:"radio",id:n,name:n,checked:(0,s.SU)(t).split("/")[0]===n,disabled:(0,s.SU)(i),onInput:r=>e.$router.push(l(n))},null,40,Un),(0,o._)("span",null,(0,a.zw)(e.$t(`user.PROFILE.TABS.${n}`)),1)])])))),128))])]))}});const Dn=Cn;var vn=Dn;const hn={id:"user-profile"},fn={class:"box"};var Pn=(0,o.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const n=e,{user:r,tab:t}=(0,s.BK)(n),a=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,n)=>{const i=(0,o.up)("router-view");return(0,o.wg)(),(0,o.iD)("div",hn,[(0,o.Wm)(Rn.Z,{user:(0,s.SU)(r)},null,8,["user"]),(0,o._)("div",fn,[(0,o.Wm)(vn,{tabs:a,selectedTab:(0,s.SU)(t),edition:!1},null,8,["selectedTab"]),(0,o.Wm)(i,{user:(0,s.SU)(r)},null,8,["user"])])])}}});const Ln=(0,Y.Z)(Pn,[["__scopeId","data-v-9729cba4"]]);var wn=Ln,kn=r(1585),bn=r(6287);const Mn={id:"user-preferences",class:"description-list"},yn={class:"info-box raw-speed-help"},Gn=(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1),Fn={class:"profile-buttons"};var Wn=(0,o.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const n=e,r=(0,u.o)(),t=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.LANGUAGE])),i=(0,o.Fl)((()=>n.user.language?bn.zK[n.user.language]:bn.zK.en)),l=(0,o.Fl)((()=>n.user.weekm?"MONDAY":"SUNDAY")),m=(0,o.Fl)((()=>n.user.timezone?n.user.timezone:"Europe/Paris")),d=(0,o.Fl)((()=>n.user.date_format?n.user.date_format:"MM/dd/yyyy")),E=(0,o.Fl)((()=>n.user.display_ascent?"DISPLAYED":"HIDDEN"));return(n,r)=>((0,o.wg)(),(0,o.iD)("div",Mn,[(0,o._)("dl",null,[(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.LANGUAGE"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(i)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.TIMEZONE"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(m)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(Xe.mh)((0,s.SU)(d),(0,s.SU)(t))),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t(`user.PROFILE.${(0,s.SU)(l)}`)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t(`common.${(0,s.SU)(E)}`)),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.ELEVATION_CHART_START.LABEL"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t("user.PROFILE.ELEVATION_CHART_START."+(e.user.start_elevation_at_zero?"ZERO":"MIN_ALT"))),1),(0,o._)("dt",null,(0,a.zw)(n.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL"))+":",1),(0,o._)("dd",null,(0,a.zw)(n.$t("user.PROFILE.USE_RAW_GPX_SPEED."+(e.user.use_raw_gpx_speed?"RAW_SPEED":"FILTERED_SPEED"))),1),(0,o._)("div",yn,[(0,o._)("span",null,[Gn,(0,o.Uk)(" "+(0,a.zw)(n.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),(0,o._)("div",Fn,[(0,o._)("button",{onClick:r[0]||(r[0]=e=>n.$router.push("/profile/edit/preferences"))},(0,a.zw)(n.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,o._)("button",{onClick:r[1]||(r[1]=e=>n.$router.push("/"))},(0,a.zw)(n.$t("common.HOME")),1)])]))}});const Yn=Wn;var xn=Yn;const Bn={id:"user-profile-edition",class:"center-card"};var Kn=(0,o.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const n=e,r=(0,u.o)(),{user:t,tab:i}=(0,s.BK)(n),l=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS","PRIVACY-POLICY"],m=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING]));return(e,n)=>{const r=(0,o.up)("router-view"),c=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",Bn,[(0,o.Wm)(c,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t(`user.PROFILE.${(0,s.SU)(i)}_EDITION`)),1)])),content:(0,o.w5)((()=>[(0,o.Wm)(vn,{tabs:l,selectedTab:(0,s.SU)(i),edition:!0,disabled:(0,s.SU)(m)},null,8,["selectedTab","disabled"]),(0,o.Wm)(r,{user:(0,s.SU)(t)},null,8,["user"])])),_:1})])}}});const Hn=Kn;var Vn=Hn,Zn=r(313),$n=r(7069),qn=r(5167),Xn=r(8403);const jn=e=>((0,o.dD)("data-v-6e11106c"),e=e(),(0,o.Cn)(),e),Qn={id:"user-infos-edition"},Jn={class:"profile-form form-box"},er={key:1,class:"info-box success-message"},nr=["onSubmit"],rr={class:"form-items",for:"email"},tr=["disabled"],or={class:"form-items",for:"password-field"},ar={class:"form-items",for:"new-password-field"},ir={class:"form-buttons"},sr={class:"confirm",type:"submit"},lr=["onClick"],cr={class:"data-export"},ur={class:"info-box"},mr=jn((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),dr={key:0,class:"data-export-archive"},Er=jn((()=>(0,o._)("i",{class:"fa fa-download","aria-hidden":"true"},null,-1))),_r={key:1},Tr={key:2},Sr=jn((()=>(0,o._)("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"},null,-1)));var pr=(0,o.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const n=e,{user:r}=(0,s.BK)(n),t=(0,u.o)(),l=(0,s.qj)({email:"",password:"",new_password:""}),d=(0,o.Fl)((()=>t.getters[c.YN.GETTERS.USER_LOADING])),E=(0,o.Fl)((()=>t.getters[c.SY.GETTERS.APP_CONFIG])),_=(0,o.Fl)((()=>t.getters[c.YN.GETTERS.IS_SUCCESS])),T=(0,s.iH)(!1),S=(0,o.Fl)((()=>t.getters[c.SY.GETTERS.ERROR_MESSAGES])),p=(0,s.iH)(!1),A=(0,s.iH)(!1),z=(0,o.Fl)((()=>t.getters[c.YN.GETTERS.EXPORT_REQUEST])),O=(0,o.Fl)((()=>C())),I=(0,s.iH)(!1);function R(){p.value=!0}function N(e){l.email=e.email}function g(e){l.password=e}function U(e){l.new_password=e}function C(){return z.value?(0,Xe.p6)(z.value.created_at,r.value.timezone,r.value.date_format,!0,null,!0):null}function D(){return!O.value||(0,Zn.Z)(new Date(O.value),(0,$n.Z)(new Date,1))}function v(){const e={email:l.email,password:l.password};l.new_password&&(e.new_password=l.new_password),T.value=l.email!==r.value.email,t.dispatch(c.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function h(e){A.value=e}function f(e){t.dispatch(c.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}function P(){t.dispatch(c.YN.ACTIONS.REQUEST_DATA_EXPORT)}async function L(e){I.value=!0,await qn.Z.get(`/auth/account/export/${e}`,{responseType:"blob"}).then((n=>{const r=window.URL.createObjectURL(new Blob([n.data],{type:"application/zip"})),t=document.createElement("a");t.href=r,t.setAttribute("download",e),document.body.appendChild(t),t.click()})).finally((()=>I.value=!1))}return(0,o.bv)((()=>{n.user&&(t.dispatch(c.YN.ACTIONS.GET_REQUEST_DATA_EXPORT),N(n.user))})),(0,o.Ah)((()=>{t.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),t.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,o.YP)((()=>_.value),(async e=>{e&&(g(""),U(""),N(r.value),p.value=!1)})),(0,o.YP)((()=>r.value.email),(async()=>{N(r.value)})),(e,n)=>{const t=(0,o.up)("Modal"),c=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",Qn,[A.value?((0,o.wg)(),(0,o.j4)(t,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:n[0]||(n[0]=e=>f((0,s.SU)(r).username)),onCancelAction:n[1]||(n[1]=e=>h(!1))},null,8,["title","message"])):(0,o.kq)("",!0),(0,o._)("div",Jn,[(0,s.SU)(S)?((0,o.wg)(),(0,o.j4)(c,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,o.kq)("",!0),(0,s.SU)(_)?((0,o.wg)(),(0,o.iD)("div",er,(0,a.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${T.value&&(0,s.SU)(E).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,o.kq)("",!0),(0,o._)("form",{class:(0,a.C_)({errors:p.value}),onSubmit:(0,i.iM)(v,["prevent"])},[(0,o._)("label",rr,[(0,o.Uk)((0,a.zw)(e.$t("user.EMAIL"))+"* ",1),(0,o.wy)((0,o._)("input",{id:"email","onUpdate:modelValue":n[2]||(n[2]=e=>l.email=e),disabled:(0,s.SU)(d),required:!0,onInvalid:R},null,40,tr),[[i.nr,l.email]])]),(0,o._)("label",or,[(0,o.Uk)((0,a.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,o.Wm)(Xn.Z,{id:"password-field",disabled:(0,s.SU)(d),password:l.password,required:!0,onUpdatePassword:g,onPasswordError:R},null,8,["disabled","password"])]),(0,o._)("label",ar,[(0,o.Uk)((0,a.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,o.Wm)(Xn.Z,{id:"new-password-field",disabled:(0,s.SU)(d),checkStrength:!0,password:l.new_password,isSuccess:!1,onUpdatePassword:U,onPasswordError:R},null,8,["disabled","password"])]),(0,o._)("div",ir,[(0,o._)("button",sr,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[3]||(n[3]=(0,i.iM)((n=>e.$router.push("/profile")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1),(0,o._)("button",{class:"danger",onClick:n[4]||(n[4]=(0,i.iM)((e=>h(!0)),["prevent"]))},(0,a.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1),D()?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"confirm",onClick:(0,i.iM)(P,["prevent"])},(0,a.zw)(e.$t("buttons.REQUEST_DATA_EXPORT")),9,lr)):(0,o.kq)("",!0)])],42,nr),(0,o._)("div",cr,[(0,o._)("span",ur,[mr,(0,o.Uk)(" "+(0,a.zw)(e.$t("user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY")),1)]),(0,s.SU)(z)?((0,o.wg)(),(0,o.iD)("div",dr,[(0,o.Uk)((0,a.zw)(e.$t("user.EXPORT_REQUEST.DATA_EXPORT"))+" ("+(0,a.zw)((0,s.SU)(O))+"): ",1),"successful"===(0,s.SU)(z).status?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"archive-link",onClick:n[5]||(n[5]=(0,i.iM)((e=>L((0,s.SU)(z).file_name)),["prevent"]))},[Er,(0,o.Uk)(" "+(0,a.zw)(e.$t("user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE"))+" ("+(0,a.zw)((0,s.SU)(m.Z)((0,s.SU)(z).file_size))+") ",1)])):((0,o.wg)(),(0,o.iD)("span",_r,(0,a.zw)(e.$t(`user.EXPORT_REQUEST.STATUS.${(0,s.SU)(z).status}`)),1)),I.value?((0,o.wg)(),(0,o.iD)("span",Tr,[(0,o.Uk)((0,a.zw)(e.$t("user.EXPORT_REQUEST.GENERATING_LINK"))+" ",1),Sr])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])])])}}});const Ar=(0,Y.Z)(pr,[["__scopeId","data-v-6e11106c"]]);var zr=Ar,Or=r(6761);const Ir={id:"user-infos-edition"},Rr={class:"profile-form form-box"},Nr=["onSubmit"],gr={class:"form-items",for:"registrationDate"},Ur=["value"],Cr={class:"form-items",for:"first_name"},Dr=["disabled"],vr={class:"form-items",for:"last_name"},hr={class:"form-items",for:"birth_date"},fr=["disabled"],Pr={class:"form-items",for:"location"},Lr=["disabled"],wr={class:"form-items"},kr={class:"form-buttons"},br={class:"confirm",type:"submit"};var Mr=(0,o.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const n=e,r=(0,u.o)(),t=(0,s.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),l=(0,o.Fl)((()=>n.user.created_at?(0,Xe.p6)(n.user.created_at,n.user.timezone,n.user.date_format):"")),m=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING])),d=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES]));function E(e){t.first_name=e.first_name?e.first_name:"",t.last_name=e.last_name?e.last_name:"",t.birth_date=e.birth_date?(0,Or.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",t.location=e.location?e.location:"",t.bio=e.bio?e.bio:""}function _(e){t.bio=e}function T(){r.dispatch(c.YN.ACTIONS.UPDATE_USER_PROFILE,t)}return(0,o.bv)((()=>{n.user&&E(n.user)})),(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const r=(0,o.up)("ErrorMessage"),c=(0,o.up)("CustomTextArea");return(0,o.wg)(),(0,o.iD)("div",Ir,[(0,o._)("div",Rr,[(0,s.SU)(d)?((0,o.wg)(),(0,o.j4)(r,{key:0,message:(0,s.SU)(d)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("form",{onSubmit:(0,i.iM)(T,["prevent"])},[(0,o._)("label",gr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,o._)("input",{id:"registrationDate",value:(0,s.SU)(l),disabled:""},null,8,Ur)]),(0,o._)("label",Cr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,o.wy)((0,o._)("input",{id:"first_name","onUpdate:modelValue":n[0]||(n[0]=e=>t.first_name=e),disabled:(0,s.SU)(m)},null,8,Dr),[[i.nr,t.first_name]])]),(0,o._)("label",vr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,o.wy)((0,o._)("input",{id:"last_name","onUpdate:modelValue":n[1]||(n[1]=e=>t.last_name=e)},null,512),[[i.nr,t.last_name]])]),(0,o._)("label",hr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,o.wy)((0,o._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":n[2]||(n[2]=e=>t.birth_date=e),disabled:(0,s.SU)(m)},null,8,fr),[[i.nr,t.birth_date]])]),(0,o._)("label",Pr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,o.wy)((0,o._)("input",{id:"location","onUpdate:modelValue":n[3]||(n[3]=e=>t.location=e),disabled:(0,s.SU)(m)},null,8,Lr),[[i.nr,t.location]])]),(0,o._)("label",wr,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,o.Wm)(c,{name:"bio",charLimit:200,input:t.bio,disabled:(0,s.SU)(m),onUpdateValue:_},null,8,["input","disabled"])]),(0,o._)("div",kr,[(0,o._)("button",br,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[4]||(n[4]=(0,i.iM)((n=>e.$router.push("/profile")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])],40,Nr)])])}}});const yr=(0,Y.Z)(Mr,[["__scopeId","data-v-5e5a4552"]]);var Gr=yr;const Fr=e=>((0,o.dD)("data-v-687e9604"),e=e(),(0,o.Cn)(),e),Wr={id:"user-picture-edition"},Yr={class:"user-picture-form"},xr=["onSubmit"],Br={class:"picture-help"},Kr={class:"info-box"},Hr=Fr((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),Vr={class:"picture-buttons"},Zr=["disabled"];var $r=(0,o.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const n=e,r=(0,u.o)(),{user:t}=(0,s.BK)(n),l=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES])),d=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.APP_CONFIG])),E=d.value.max_single_file_size?(0,m.Z)(d.value.max_single_file_size):"",_=(0,s.iH)(null);function T(){r.dispatch(c.YN.ACTIONS.DELETE_PICTURE)}function S(e){e.target.files&&(_.value=e.target.files[0])}function p(){_.value&&r.dispatch(c.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:_.value})}return(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const r=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",Wr,[(0,o._)("div",Yr,[(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(r,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,o.Wm)(xe.Z,{user:(0,s.SU)(t)},null,8,["user"]),(0,o._)("form",{onSubmit:(0,i.iM)(p,["prevent"])},[(0,o._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:S},null,32),(0,o._)("div",Br,[(0,o._)("span",Kr,[Hr,(0,o.Uk)(" "+(0,a.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,a.zw)((0,s.SU)(E)),1)])]),(0,o._)("div",Vr,[(0,o._)("button",{type:"submit",disabled:!_.value},(0,a.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Zr),(0,s.SU)(t).picture?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"danger",onClick:T},(0,a.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,o.kq)("",!0),(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=n=>e.$router.push("/profile"))},(0,a.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,xr)])])}}});const qr=(0,Y.Z)($r,[["__scopeId","data-v-687e9604"]]);var Xr=qr;const jr=["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"],Qr={id:"tz-dropdown"},Jr=["value","disabled","onKeydown"],et=["onClick","onMouseover","autofocus"];var nt=(0,o.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:n}){const r=e,{input:t,disabled:l}=(0,s.BK)(r),c=(0,s.iH)(r.input),u=(0,s.iH)(!1),m=(0,s.iH)(null),d=(0,s.iH)(0);function E(e){return e.toLowerCase().match(c.value.toLowerCase())}function _(e){d.value=e}function T(e){c.value=e,u.value=!1,n("updateTimezone",e)}function S(e){e.preventDefault(),m.value?.firstElementChild?.innerHTML&&T(m.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,o.YP)((()=>r.input),(e=>{c.value=e})),(e,n)=>((0,o.wg)(),(0,o.iD)("div",Qr,[(0,o._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,s.SU)(l),required:"",onKeydown:[n[0]||(n[0]=(0,i.D2)((e=>T((0,s.SU)(t))),["esc"])),(0,i.D2)(S,["enter"])],onInput:p},null,40,Jr),u.value?((0,o.wg)(),(0,o.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:m},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(jr).filter((e=>E(e))),((e,n)=>((0,o.wg)(),(0,o.iD)("li",{key:e,class:(0,a.C_)(["tz-dropdown-item",{focus:n===d.value}]),onClick:n=>T(e),onMouseover:e=>_(n),autofocus:n===d.value},(0,a.zw)(e),43,et)))),128))],512)):(0,o.kq)("",!0)]))}});const rt=(0,Y.Z)(nt,[["__scopeId","data-v-47ea2903"]]);var tt=rt;const ot=e=>((0,o.dD)("data-v-7d35cb46"),e=e(),(0,o.Cn)(),e),at={id:"user-preferences-edition"},it={class:"profile-form form-box"},st=["onSubmit"],lt={class:"form-items"},ct=["disabled"],ut=["value"],mt={class:"form-items"},dt={class:"form-items"},Et=["disabled"],_t=["value"],Tt={class:"form-items form-checkboxes"},St={class:"checkboxes-label"},pt={class:"checkboxes"},At=["id","name","checked","disabled","onInput"],zt={class:"checkbox-label"},Ot={class:"form-items form-checkboxes"},It={class:"checkboxes-label"},Rt={class:"checkboxes"},Nt=["id","name","checked","disabled","onInput"],gt={class:"checkbox-label"},Ut={class:"form-items form-checkboxes"},Ct={class:"checkboxes-label"},Dt={class:"checkboxes"},vt=["id","name","checked","disabled","onInput"],ht={class:"checkbox-label"},ft={class:"form-items form-checkboxes"},Pt={class:"checkboxes-label"},Lt={class:"checkboxes"},wt=["id","name","checked","disabled","onInput"],kt={class:"checkbox-label"},bt={class:"form-items form-checkboxes"},Mt={class:"checkboxes-label"},yt={class:"checkboxes"},Gt=["id","name","checked","disabled","onInput"],Ft={class:"checkbox-label"},Wt={class:"info-box raw-speed-help"},Yt=ot((()=>(0,o._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),xt={class:"form-buttons"},Bt={class:"confirm",type:"submit"};var Kt=(0,o.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const n=e,r=(0,u.o)(),t=(0,s.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),l=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],m=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],d=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],E=[{label:"ZERO",value:!0},{label:"MIN_ALT",value:!1}],_=[{label:"FILTERED_SPEED",value:!1},{label:"RAW_SPEED",value:!0}],T=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING])),S=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES])),p=(0,o.Fl)((()=>(0,Xe.d2)((new Date).toUTCString(),n.user.timezone,t.language)));function A(e){t.display_ascent=e.display_ascent,t.start_elevation_at_zero=!!e.start_elevation_at_zero&&e.start_elevation_at_zero,t.use_raw_gpx_speed=!!e.use_raw_gpx_speed&&e.use_raw_gpx_speed,t.imperial_units=!!e.imperial_units&&e.imperial_units,t.language=e.language?e.language:"en",t.timezone=e.timezone?e.timezone:"Europe/Paris",t.date_format=e.date_format?e.date_format:"dd/MM/yyyy",t.weekm=!!e.weekm&&e.weekm}function z(){r.dispatch(c.YN.ACTIONS.UPDATE_USER_PREFERENCES,t)}function O(e){t.timezone=e}function I(e){t.start_elevation_at_zero=e}function R(e){t.use_raw_gpx_speed=e}function N(e){t.display_ascent=e}function g(e){t.imperial_units=e}function U(e){t.weekm=e}return(0,o.bv)((()=>{n.user&&A(n.user)})),(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const r=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",at,[(0,o._)("div",it,[(0,s.SU)(S)?((0,o.wg)(),(0,o.j4)(r,{key:0,message:(0,s.SU)(S)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("form",{onSubmit:(0,i.iM)(z,["prevent"])},[(0,o._)("label",lt,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,o.wy)((0,o._)("select",{id:"language","onUpdate:modelValue":n[0]||(n[0]=e=>t.language=e),disabled:(0,s.SU)(T)},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(bn.mT),(e=>((0,o.wg)(),(0,o.iD)("option",{value:e.value,key:e.value},(0,a.zw)(e.label),9,ut)))),128))],8,ct),[[i.bM,t.language]])]),(0,o._)("label",mt,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,o.Wm)(tt,{input:t.timezone,disabled:(0,s.SU)(T),onUpdateTimezone:O},null,8,["input","disabled"])]),(0,o._)("label",dt,[(0,o.Uk)((0,a.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,o.wy)((0,o._)("select",{id:"date_format","onUpdate:modelValue":n[1]||(n[1]=e=>t.date_format=e),disabled:(0,s.SU)(T)},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(p),(e=>((0,o.wg)(),(0,o.iD)("option",{value:e.value,key:e.value},(0,a.zw)(e.label),9,_t)))),128))],8,Et),[[i.bM,t.date_format]])]),(0,o._)("div",Tt,[(0,o._)("span",St,(0,a.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,o._)("div",pt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(l,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.weekm,disabled:(0,s.SU)(T),onInput:e=>U(n.value)},null,40,At),(0,o._)("span",zt,(0,a.zw)(e.$t(`user.PROFILE.${n.label}`)),1)]))),64))])]),(0,o._)("div",Ot,[(0,o._)("span",It,(0,a.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,o._)("div",Rt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(m,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.imperial_units,disabled:(0,s.SU)(T),onInput:e=>g(n.value)},null,40,Nt),(0,o._)("span",gt,(0,a.zw)(e.$t(`user.PROFILE.UNITS.${n.label}`)),1)]))),64))])]),(0,o._)("div",Ut,[(0,o._)("span",Ct,(0,a.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,o._)("div",Dt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(d,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.display_ascent,disabled:(0,s.SU)(T),onInput:e=>N(n.value)},null,40,vt),(0,o._)("span",ht,(0,a.zw)(e.$t(`common.${n.label}`)),1)]))),64))])]),(0,o._)("div",ft,[(0,o._)("span",Pt,(0,a.zw)(e.$t("user.PROFILE.ELEVATION_CHART_START.LABEL")),1),(0,o._)("div",Lt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(E,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.start_elevation_at_zero,disabled:(0,s.SU)(T),onInput:e=>I(n.value)},null,40,wt),(0,o._)("span",kt,(0,a.zw)(e.$t(`user.PROFILE.ELEVATION_CHART_START.${n.label}`)),1)]))),64))])]),(0,o._)("div",bt,[(0,o._)("span",Mt,(0,a.zw)(e.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL")),1),(0,o._)("div",yt,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(_,(n=>(0,o._)("label",{key:n.label},[(0,o._)("input",{type:"radio",id:n.label,name:n.label,checked:n.value===t.use_raw_gpx_speed,disabled:(0,s.SU)(T),onInput:e=>R(n.value)},null,40,Gt),(0,o._)("span",Ft,(0,a.zw)(e.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${n.label}`)),1)]))),64))]),(0,o._)("div",Wt,[(0,o._)("span",null,[Yt,(0,o.Uk)(" "+(0,a.zw)(e.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),(0,o._)("div",xt,[(0,o._)("button",Bt,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[2]||(n[2]=(0,i.iM)((n=>e.$router.push("/profile/preferences")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])],40,st)])])}}});const Ht=(0,Y.Z)(Kt,[["__scopeId","data-v-7d35cb46"]]);var Vt=Ht;const Zt={class:"privacy-policy-text"},$t={class:"last-update"},qt=["innerHTML"],Xt=["innerHTML"];var jt=(0,o.aZ)({__name:"PrivacyPolicy",setup(e){const n=(0,u.o)(),r="Sun, 26 Feb 2023 17:00:00 GMT",t=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.APP_CONFIG])),i=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.LANGUAGE])),m=(0,o.Fl)((()=>n.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),E=(0,o.Fl)((()=>A())),_=(0,o.Fl)((()=>p())),T=(0,o.Fl)((()=>z())),S=["DATA_COLLECTED","INFORMATION_USAGE","INFORMATION_PROTECTION","INFORMATION_DISCLOSURE","SITE_USAGE_BY_CHILDREN","YOUR_CONSENT","ACCOUNT_DELETION","CHANGES_TO_OUR_PRIVACY_POLICY"];function p(){return m.value.timezone?m.value.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone?Intl.DateTimeFormat().resolvedOptions().timeZone:"Europe/Paris"}function A(){return Xe.KD[i.value]}function z(){return(0,Xe.p6)(t.value.privacy_policy&&t.value.privacy_policy_date?`${t.value.privacy_policy_date}`:r,_.value,E.value,!1)}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Zt,[(0,o._)("h1",null,(0,a.zw)((0,a.kC)(e.$t("privacy_policy.TITLE"))),1),(0,o._)("p",$t,(0,a.zw)(e.$t("privacy_policy.LAST_UPDATE"))+": "+(0,a.zw)((0,s.SU)(T)),1),(0,s.SU)(t).privacy_policy?((0,o.wg)(),(0,o.iD)("div",{key:0,innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)((0,s.SU)(t).privacy_policy))},null,8,qt)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},(0,o.Ko)(S,(n=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n},[(0,o._)("h2",null,(0,a.zw)(e.$t(`privacy_policy.CONTENT.${n}.TITLE`)),1),(0,o._)("p",{innerHTML:(0,s.SU)(l.Z)(e.$t(`privacy_policy.CONTENT.${n}.CONTENT`))},null,8,Xt)],64)))),64))]))}});const Qt=(0,Y.Z)(jt,[["__scopeId","data-v-0c1693aa"]]);var Jt=Qt;const eo={id:"user-privacy-policy"},no={key:1},ro={class:"policy-content"},to={for:"accepted_policy",class:"accepted_policy"},oo={class:"form-buttons"},ao={class:"confirm",type:"submit"};var io=(0,o.aZ)({__name:"UserPrivacyPolicyValidation",props:{user:null},setup(e){const n=e,{user:r}=(0,s.BK)(n),t=(0,u.o)(),l=(0,o.Fl)((()=>t.getters[c.SY.GETTERS.ERROR_MESSAGES])),m=(0,s.iH)(!1);function d(){t.dispatch(c.YN.ACTIONS.ACCEPT_PRIVACY_POLICY,m.value)}return(0,o.Ah)((()=>{t.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,n)=>{const t=(0,o.up)("ErrorMessage"),c=(0,o.up)("router-link"),u=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",eo,[(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(t,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,s.SU)(r).accepted_privacy_policy?((0,o.wg)(),(0,o.iD)("div",no,[(0,o._)("p",null,[(0,o.Wm)(u,{keypath:"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY"},{default:(0,o.w5)((()=>[(0,o.Wm)(c,{to:"/privacy-policy"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])),_:1})]),(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=n=>e.$router.push("/profile"))},(0,a.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])):((0,o.wg)(),(0,o.iD)("form",{key:2,onSubmit:n[3]||(n[3]=(0,i.iM)((e=>d()),["prevent"]))},[(0,o._)("div",ro,[(0,o.Wm)(Jt)]),(0,o._)("label",to,[(0,o.wy)((0,o._)("input",{type:"checkbox",id:"accepted_policy",required:"","onUpdate:modelValue":n[1]||(n[1]=e=>m.value=e)},null,512),[[i.e8,m.value]]),(0,o._)("span",null,[(0,o.Wm)(u,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])]),(0,o.Wm)(c,{to:"/profile/edit/account"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("user.I_WANT_TO_DELETE_MY_ACCOUNT")),1)])),_:1}),(0,o._)("div",oo,[(0,o._)("button",ao,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,o._)("button",{class:"cancel",onClick:n[2]||(n[2]=n=>e.$router.push("/profile"))},(0,a.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],32))])}}});const so=(0,Y.Z)(io,[["__scopeId","data-v-c77e04be"]]);var lo=so;const co=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],uo=["application:write"],mo={id:"new-oauth2-app"},Eo={id:"new-oauth2-title"},_o={id:"apps-form"},To=["onSubmit"],So={class:"form-items"},po={class:"form-item"},Ao={for:"app-name"},zo={class:"form-item"},Oo={for:"app-description"},Io={class:"form-item"},Ro={for:"app-url"},No={class:"form-item"},go={for:"app-redirect-uri"},Uo={class:"form-item-scope"},Co={class:"form-item-scope-label"},Do={class:"scope-label"},vo=["name","checked","onChange"],ho=["innerHTML"],fo={class:"form-buttons"},Po=["disabled"];var Lo=(0,o.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const n=e,r=(0,u.o)(),t=(0,s.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),l=(0,s.qj)([]),m=(0,o.Fl)((()=>T(n.authUser,uo,co)));function d(){const e={client_name:t.client_name,client_description:t.client_description,client_uri:t.client_uri,redirect_uris:[t.redirect_uri],scope:l.sort().join(" ")};r.dispatch(c.Km.ACTIONS.CREATE_CLIENT,e)}function E(e){t.client_description=e}function _(e){const n=l.indexOf(e);n>-1?l.splice(n,1):l.push(e)}function T(e,n,r){const t=[...r];return e.admin&&t.push(...n),t.sort()}return(e,n)=>{const r=(0,o.up)("CustomTextArea");return(0,o.wg)(),(0,o.iD)("div",mo,[(0,o._)("h1",Eo,(0,a.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,o._)("div",_o,[(0,o._)("form",{onSubmit:(0,i.iM)(d,["prevent"])},[(0,o._)("div",So,[(0,o._)("div",po,[(0,o._)("label",Ao,(0,a.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,o.wy)((0,o._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":n[0]||(n[0]=e=>t.client_name=e)},null,512),[[i.nr,t.client_name]])]),(0,o._)("div",zo,[(0,o._)("label",Oo,(0,a.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,o.Wm)(r,{name:"app-description",charLimit:200,input:t.description,onUpdateValue:E},null,8,["input"])]),(0,o._)("div",Io,[(0,o._)("label",Ro,(0,a.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,o.wy)((0,o._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":n[1]||(n[1]=e=>t.client_uri=e)},null,512),[[i.nr,t.client_uri]])]),(0,o._)("div",No,[(0,o._)("label",go,(0,a.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,o.wy)((0,o._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":n[2]||(n[2]=e=>t.redirect_uri=e)},null,512),[[i.nr,t.redirect_uri]])]),(0,o._)("div",Uo,[(0,o._)("div",Co,(0,a.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(m),(n=>((0,o.wg)(),(0,o.iD)("div",{class:"form-item-scope-checkboxes",key:n},[(0,o._)("label",Do,[(0,o._)("input",{type:"checkbox",name:n,checked:l.includes(n),onChange:e=>_(n)},null,40,vo),(0,o._)("code",null,(0,a.zw)(n),1)]),(0,o._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${n}_DESCRIPTION`)},null,8,ho)])))),128))])]),(0,o._)("div",fo,[(0,o._)("button",{class:"confirm",type:"submit",disabled:0===l.length},(0,a.zw)(e.$t("buttons.SUBMIT")),9,Po),(0,o._)("button",{class:"cancel",onClick:n[3]||(n[3]=(0,i.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])],40,To)])])}}});const wo=(0,Y.Z)(Lo,[["__scopeId","data-v-0657ee77"]]);var ko=wo;const bo={id:"authorize-oauth2-app"},Mo={key:0},yo={id:"authorize-oauth2-title"},Go={class:"oauth2-access description-list"},Fo={class:"client-scope"},Wo=["innerHTML"],Yo={class:"authorize-oauth2-buttons"},xo={key:1},Bo={class:"no-app"};var Ko=(0,o.aZ)({__name:"AuthorizeUserApp",setup(e){const n=(0,t.yj)(),r=(0,u.o)(),i=(0,o.Fl)((()=>r.getters[c.Km.GETTERS.CLIENT])),l=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES]));function m(){n.query.client_id&&"string"===typeof n.query.client_id&&r.dispatch(c.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,n.query.client_id)}function d(){r.dispatch(c.Km.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${n.query.client_id}`,redirect_uri:`${n.query.redirect_uri}`,response_type:`${n.query.response_type}`,scope:`${n.query.scope}`,state:`${n.query.state?n.query.state:""}`,code_challenge:`${n.query.code_challenge?n.query.code_challenge:""}`,code_challenge_method:`${n.query.code_challenge_method?n.query.code_challenge_method:""}`})}return(0,o.wF)((()=>m())),(e,n)=>{const r=(0,o.up)("router-link"),t=(0,o.up)("i18n-t"),c=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",bo,[(0,s.SU)(i).client_id?((0,o.wg)(),(0,o.iD)("div",Mo,[(0,o._)("h1",yo,[(0,o.Wm)(t,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,o.w5)((()=>[(0,o.Wm)(r,{to:{name:"UserApp",params:{id:(0,s.SU)(i).id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,s.SU)(i).name),1)])),_:1},8,["to"])])),_:1})]),(0,s.SU)(l)?((0,o.wg)(),(0,o.j4)(c,{key:0,message:(0,s.SU)(l)},null,8,["message"])):(0,o.kq)("",!0),(0,o._)("div",Go,[(0,o._)("p",null,(0,a.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,o._)("dl",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(i).scope.split(" "),(n=>((0,o.wg)(),(0,o.iD)(o.HY,{key:n},[(0,o._)("dt",Fo,[(0,o._)("code",null,(0,a.zw)(n),1)]),(0,o._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${n}_DESCRIPTION`)},null,8,Wo)],64)))),128))]),(0,o._)("div",Yo,[(0,o._)("button",{class:"danger",onClick:d},(0,a.zw)(e.$t("buttons.AUTHORIZE")),1),(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,o.wg)(),(0,o.iD)("div",xo,[(0,o._)("p",Bo,(0,a.zw)(e.$t("oauth2.NO_APP")),1),(0,o._)("button",{onClick:n[1]||(n[1]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.BACK")),1)]))])}}});const Ho=(0,Y.Z)(Ko,[["__scopeId","data-v-3b2fe9ed"]]);var Vo=Ho;const Zo={id:"oauth2-apps"};var $o=(0,o.aZ)({__name:"index",props:{user:null},setup(e){const n=e,r=(0,u.o)(),{user:t}=(0,s.BK)(n);return(0,o.Ah)((()=>{r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.commit(c.Km.MUTATIONS.SET_CLIENTS,[])})),(e,n)=>{const r=(0,o.up)("router-view");return(0,o.wg)(),(0,o.iD)("div",Zo,[(0,o.Wm)(r,{authUser:(0,s.SU)(t)},null,8,["authUser"])])}}});const qo=$o;var Xo=qo;const jo={id:"oauth2-app",class:"description-list"},Qo={key:1},Jo={key:0,class:"info-box success-message"},ea=["title"],na={key:0},ra={key:1,class:"app-secret"},ta=["title"],oa={class:"client-scopes"},aa={class:"app-buttons"},ia={key:2},sa={class:"no-app"};var la=(0,o.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const n=e,r=(0,t.yj)(),i=(0,u.o)(),{afterCreation:l,authUser:m}=(0,s.BK)(n),d=(0,o.Fl)((()=>i.getters[c.Km.GETTERS.CLIENT])),E=(0,o.Fl)((()=>i.getters[c.Km.GETTERS.REVOCATION_SUCCESSFUL])),_=(0,s.iH)(!1),T=(0,s.iH)(null),S=(0,s.iH)(!1),p=(0,s.iH)(!1),A=(0,s.iH)(!1);function z(){!l.value&&r.params.id&&"string"===typeof r.params.id&&i.dispatch(c.Km.ACTIONS.GET_CLIENT_BY_ID,+r.params.id)}function O(e){T.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){_.value=e,e||(T.value=null)}function R(e){"oauth2.APP_DELETION_CONFIRMATION"===T.value?i.dispatch(c.Km.ACTIONS.DELETE_CLIENT,e):i.dispatch(c.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function N(){navigator.clipboard.writeText(d.value.client_id),S.value=!0,p.value=!1,setTimeout((()=>{S.value=!1}),3e3)}function g(){d.value.client_secret&&(navigator.clipboard.writeText(d.value.client_secret),p.value=!0,S.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,o.wF)((()=>{z(),navigator.clipboard&&(A.value=!0)})),(0,o.Ah)((()=>{i.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),i.commit(c.Km.MUTATIONS.EMPTY_CLIENT),i.commit(c.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,o.YP)((()=>E.value),(e=>{e&&I(!1)})),(e,n)=>{const r=(0,o.up)("Modal");return(0,o.wg)(),(0,o.iD)("div",jo,[_.value?((0,o.wg)(),(0,o.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(T.value),onConfirmAction:n[0]||(n[0]=e=>R((0,s.SU)(d).id)),onCancelAction:n[1]||(n[1]=e=>I(!1))},null,8,["title","message"])):(0,o.kq)("",!0),(0,s.SU)(d)&&(0,s.SU)(d).client_id?((0,o.wg)(),(0,o.iD)("div",Qo,[(0,s.SU)(l)||(0,s.SU)(E)?((0,o.wg)(),(0,o.iD)("div",Jo,(0,a.zw)(e.$t((0,s.SU)(l)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,o.kq)("",!0),(0,o._)("dl",null,[(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,o._)("dd",null,[(0,o.Uk)((0,a.zw)((0,s.SU)(d).client_id)+" ",1),(0,s.SU)(l)&&A.value?((0,o.wg)(),(0,o.iD)("i",{key:0,class:(0,a.C_)("fa fa-"+(S.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,ea)):(0,o.kq)("",!0)]),(0,s.SU)(l)&&(0,s.SU)(d).client_secret?((0,o.wg)(),(0,o.iD)("dt",na,(0,a.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,o.kq)("",!0),(0,s.SU)(l)&&(0,s.SU)(d).client_secret?((0,o.wg)(),(0,o.iD)("dd",ra,[(0,o.Uk)((0,a.zw)((0,s.SU)(d).client_secret)+" ",1),A.value?((0,o.wg)(),(0,o.iD)("i",{key:0,class:(0,a.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,o.kq)("",!0)])):(0,o.kq)("",!0),(0,o._)("dt",null,(0,a.zw)((0,a.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(Xe.p6)((0,s.SU)(d).issued_at,(0,s.SU)(m).timezone,(0,s.SU)(m).date_format)),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(d).name),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,o._)("dd",{class:(0,a.C_)({"no-description":!(0,s.SU)(d).client_description})},(0,a.zw)((0,s.SU)(d).client_description?(0,s.SU)(d).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(d).website),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,o._)("dd",null,(0,a.zw)((0,s.SU)(d).redirect_uris.length>0?(0,s.SU)(d).redirect_uris[0]:""),1),(0,o._)("dt",null,(0,a.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,o._)("dd",oa,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(d).scope.split(" "),(e=>((0,o.wg)(),(0,o.iD)("span",{class:"client-scope",key:e},[(0,o._)("code",null,(0,a.zw)(e),1)])))),128))])]),(0,o._)("div",aa,[(0,o._)("button",{class:"danger",onClick:n[2]||(n[2]=e=>O(!1))},(0,a.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,o._)("button",{class:"danger",onClick:n[3]||(n[3]=e=>O(!0))},(0,a.zw)(e.$t("oauth2.DELETE_APP")),1),(0,o._)("button",{onClick:n[4]||(n[4]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.BACK")),1)])])):((0,o.wg)(),(0,o.iD)("div",ia,[(0,o._)("p",sa,(0,a.zw)(e.$t("oauth2.NO_APP")),1),(0,o._)("button",{onClick:n[5]||(n[5]=n=>e.$router.push("/profile/apps"))},(0,a.zw)(e.$t("buttons.BACK")),1)]))])}}});const ca=(0,Y.Z)(la,[["__scopeId","data-v-3a844fa2"]]);var ua=ca;const ma={id:"oauth2-apps-list"},da={class:"apps-list"},Ea={key:0},_a={class:"app-issued-at"},Ta={key:1,class:"no-apps"},Sa={class:"app-list-buttons"};var pa=(0,o.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const n=e,r=(0,u.o)(),i=(0,t.yj)(),{authUser:l}=(0,s.BK)(n),m=(0,o.Fl)((()=>r.getters[c.Km.GETTERS.CLIENTS])),d=(0,o.Fl)((()=>r.getters[c.Km.GETTERS.CLIENTS_PAGINATION]));let E=_(i.query);function _(e){const n={};return e.page&&(n.page=(0,qe.z_)(e.page,qe.Hf)),n}function T(e){r.dispatch(c.Km.ACTIONS.GET_CLIENTS,e)}return(0,o.wF)((()=>{T(E)})),(0,o.YP)((()=>i.query),(async e=>{E=_(e),T(E)})),(e,n)=>{const r=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",ma,[(0,o._)("p",da,(0,a.zw)(e.$t("oauth2.APPS_LIST")),1),(0,s.SU)(m).length>0?((0,o.wg)(),(0,o.iD)("ul",Ea,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(m),(n=>((0,o.wg)(),(0,o.iD)("li",{key:n.client_id},[(0,o.Wm)(r,{to:{name:"UserApp",params:{id:n.id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(n.name),1)])),_:2},1032,["to"]),(0,o._)("span",_a,(0,a.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,a.zw)((0,s.SU)(Xe.p6)(n.issued_at,(0,s.SU)(l).timezone,(0,s.SU)(l).date_format)),1)])))),128))])):((0,o.wg)(),(0,o.iD)("div",Ta,(0,a.zw)(e.$t("oauth2.NO_APPS")),1)),(0,s.SU)(m).length>0?((0,o.wg)(),(0,o.j4)(Ye.Z,{key:2,pagination:(0,s.SU)(d),path:"/profile/apps",query:(0,s.SU)(E)},null,8,["pagination","query"])):(0,o.kq)("",!0),(0,o._)("div",Sa,[(0,o._)("button",{onClick:n[0]||(n[0]=n=>e.$router.push("/profile/apps/new"))},(0,a.zw)(e.$t("oauth2.NEW_APP")),1),(0,o._)("button",{onClick:n[1]||(n[1]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)])])}}});const Aa=(0,Y.Z)(pa,[["__scopeId","data-v-efa45ea0"]]);var za=Aa;const Oa={id:"user-sport-preferences"},Ia={key:0,class:"responsive-table"},Ra={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},ga={key:1,class:"profile-buttons"},Ua={class:"text-left"},Ca={key:0},Da={class:"cell-heading"},va=["value"],ha={class:"cell-heading"},fa={key:0,class:"disabled-message"},Pa={key:1,class:"fa fa-refresh fa-spin fa-fw"},La={class:"cell-heading"},wa={class:"cell-heading"},ka=["checked"],ba={class:"cell-heading"},Ma=["value"],ya={key:1},Ga={key:0,class:"action-buttons"},Fa={class:"cell-heading"},Wa=["onClick"],Ya={key:1,class:"edition-buttons"},xa=["disabled"],Ba=["disabled","onClick"],Ka=["disabled"],Ha={key:0,class:"profile-buttons"},Va={key:1,class:"profile-buttons"};var Za=(0,o.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const n=e,r=(0,u.o)(),{t:t}=(0,Te.QT)(),{isEdition:l,user:m}=(0,s.BK)(n),d="#838383",E=(0,o.f3)("sportColors"),_=(0,o.Fl)((()=>r.getters[c.O8.GETTERS.SPORTS])),T=(0,o.Fl)((()=>(0,Se.xH)(_.value,t,"is_active",m.value.sports_list))),S=(0,o.Fl)((()=>r.getters[c.YN.GETTERS.USER_LOADING])),p=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.ERROR_MESSAGES])),A=(0,s.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function z(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:E?E[e.label]:d,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):g()}function O(e){return A.sport_id===e}function I(e){A.color=e.target.value}function R(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function N(e){A.is_active=e.target.checked}function g(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,r.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function U(e){e.preventDefault(),r.dispatch(c.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function C(e,n){e.preventDefault(),r.dispatch(c.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,n)}return(0,o.YP)((()=>S.value),(e=>{e||p.value||g()})),(e,n)=>{const r=(0,o.up)("SportImage"),t=(0,o.up)("ErrorMessage");return(0,o.wg)(),(0,o.iD)("div",Oa,[(0,s.SU)(_).length>0?((0,o.wg)(),(0,o.iD)("div",Ia,[(0,o._)("div",Ra,[(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("div",Na,[(0,o._)("button",{class:"cancel",onClick:n[0]||(n[0]=(0,i.iM)((n=>e.$router.push("/profile/sports")),["prevent"]))},(0,a.zw)(e.$t("buttons.BACK")),1)])):((0,o.wg)(),(0,o.iD)("div",ga,[(0,o._)("button",{onClick:n[1]||(n[1]=n=>e.$router.push("/profile/edit/sports"))},(0,a.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,o._)("button",{onClick:n[2]||(n[2]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)]))]),(0,o._)("table",null,[(0,o._)("thead",null,[(0,o._)("tr",null,[(0,o._)("th",null,(0,a.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,o._)("th",Ua,(0,a.zw)(e.$t("workouts.SPORT",0)),1),(0,o._)("th",null,(0,a.zw)(e.$t("workouts.WORKOUT",0)),1),(0,o._)("th",null,(0,a.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,o._)("th",null,(0,a.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("th",Ca,(0,a.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,o.kq)("",!0)])]),(0,o._)("tbody",null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(T),(i=>((0,o.wg)(),(0,o.iD)("tr",{key:i.id},[(0,o._)("td",null,[(0,o._)("span",Da,(0,a.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),O(i.id)?((0,o.wg)(),(0,o.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,va)):((0,o.wg)(),(0,o.j4)(r,{key:1,title:i.translatedLabel,"sport-label":i.label,color:i.color?i.color:(0,s.SU)(E)[i.label]},null,8,["title","sport-label","color"]))]),(0,o._)("td",{class:(0,a.C_)(["sport-label",{"disabled-sport":!i.is_active}])},[(0,o._)("span",ha,(0,a.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,o.Uk)(" "+(0,a.zw)(i.translatedLabel)+" ",1),i.is_active?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",fa," ("+(0,a.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,s.SU)(S)&&O(i.id)?((0,o.wg)(),(0,o.iD)("i",Pa)):(0,o.kq)("",!0),(0,s.SU)(p)&&A.sport_id===i.id?((0,o.wg)(),(0,o.j4)(t,{key:2,message:(0,s.SU)(p)},null,8,["message"])):(0,o.kq)("",!0)],2),(0,o._)("td",{class:(0,a.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,o._)("span",La,(0,a.zw)(e.$t("workouts.WORKOUT",0)),1),(0,o._)("i",{class:(0,a.C_)("fa fa"+((0,s.SU)(m).sports_list.includes(i.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,o._)("td",{class:(0,a.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,o._)("span",wa,(0,a.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),O(i.id)&&i.is_active?((0,o.wg)(),(0,o.iD)("input",{key:0,type:"checkbox",checked:i.is_active_for_user,onChange:N},null,40,ka)):((0,o.wg)(),(0,o.iD)("i",{key:1,class:(0,a.C_)("fa fa"+(i.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,o._)("td",{class:(0,a.C_)(["text-center",{"disabled-sport":!i.is_active}])},[(0,o._)("span",ba,(0,a.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),O(i.id)&&i.is_active?((0,o.wg)(),(0,o.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:A.stopped_speed_threshold,onInput:R},null,40,Ma)):((0,o.wg)(),(0,o.iD)("span",ya,(0,a.zw)(i.stopped_speed_threshold),1))],2),(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("td",Ga,[(0,o._)("span",Fa,(0,a.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,o.wg)(),(0,o.iD)("button",{key:0,onClick:e=>z(i)},(0,a.zw)(e.$t("buttons.EDIT")),9,Wa)):(0,o.kq)("",!0),O(i.id)?((0,o.wg)(),(0,o.iD)("div",Ya,[(0,o._)("button",{disabled:(0,s.SU)(S),onClick:U},(0,a.zw)(e.$t("buttons.SUBMIT")),9,xa),(0,o._)("button",{disabled:(0,s.SU)(S),onClick:e=>C(e,i.id)},(0,a.zw)(e.$t("buttons.RESET")),9,Ba),(0,o._)("button",{disabled:(0,s.SU)(S),onClick:n[3]||(n[3]=e=>z(null))},(0,a.zw)(e.$t("buttons.CANCEL")),9,Ka)])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])))),128))])]),(0,s.SU)(l)?((0,o.wg)(),(0,o.iD)("div",Ha,[(0,o._)("button",{class:"cancel",onClick:n[4]||(n[4]=(0,i.iM)((n=>e.$router.push("/profile/sports")),["prevent"]))},(0,a.zw)(e.$t("buttons.BACK")),1)])):((0,o.wg)(),(0,o.iD)("div",Va,[(0,o._)("button",{onClick:n[5]||(n[5]=n=>e.$router.push("/profile/edit/sports"))},(0,a.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,o._)("button",{onClick:n[6]||(n[6]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)]))])):(0,o.kq)("",!0)])}}});const $a=(0,Y.Z)(Za,[["__scopeId","data-v-74e52489"]]);var qa=$a,Xa=r(2894);const ja=e=>((0,o.dD)("data-v-7b2a3a04"),e=e(),(0,o.Cn)(),e),Qa={class:"about-text"},Ja=["innerHTML"],ei=ja((()=>(0,o._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),ni={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ri=ja((()=>(0,o._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ti={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oi=ja((()=>(0,o._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),ai=ja((()=>(0,o._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),ii={key:0},si=ja((()=>(0,o._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),li=["href"],ci={key:1},ui=["href"],mi={class:"about-instance"},di=["innerHTML"];var Ei=(0,o.aZ)({__name:"About",setup(e){const n=(0,u.o)(),r=(0,o.Fl)((()=>n.getters[c.SY.GETTERS.APP_CONFIG])),t=(0,o.Fl)((()=>i()));function i(){const e={};return"visualcrossing"===r.value.weather_provider&&(e["name"]="Visual Crossing",e["url"]="https://www.visualcrossing.com"),e}return(e,n)=>{const i=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",Qa,[(0,o._)("div",null,[(0,o._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,Ja),(0,o._)("p",null,[ei,(0,o._)("a",ni,(0,a.zw)((0,a.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,o._)("p",null,[ri,(0,o._)("a",ti,(0,a.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,o._)("p",null,[oi,(0,o.Wm)(i,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,o.w5)((()=>[ai])),_:1})]),(0,s.SU)(r).admin_contact?((0,o.wg)(),(0,o.iD)("div",ii,[si,(0,o._)("a",{href:`mailto:${(0,s.SU)(r).admin_contact}`},(0,a.zw)(e.$t("about.CONTACT_ADMIN")),9,li)])):(0,o.kq)("",!0),(0,s.SU)(t)&&(0,s.SU)(t).name?((0,o.wg)(),(0,o.iD)("div",ci,[(0,o.Uk)((0,a.zw)(e.$t("about.WEATHER_DATA_FROM"))+" ",1),(0,o._)("a",{href:(0,s.SU)(t).url,target:"_blank",rel:"nofollow noopener"},(0,a.zw)((0,s.SU)(t).name),9,ui)])):(0,o.kq)("",!0),(0,s.SU)(r).about?((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[(0,o._)("p",mi,(0,a.zw)(e.$t("about.ABOUT_THIS_INSTANCE")),1),(0,o._)("div",{innerHTML:(0,s.SU)(l.Z)((0,s.SU)(d.O)((0,s.SU)(r).about))},null,8,di)],64)):(0,o.kq)("",!0)])])}}});const _i=(0,Y.Z)(Ei,[["__scopeId","data-v-7b2a3a04"]]);var Ti=_i;const Si={id:"bike"},pi=["src"];function Ai(e,n){return(0,o.wg)(),(0,o.iD)("div",Si,[(0,o._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,pi)])}const zi={},Oi=(0,Y.Z)(zi,[["render",Ai],["__scopeId","data-v-795f7f5f"]]);var Ii=Oi;const Ri={id:"about",class:"view"},Ni={class:"container"},gi={class:"container-sub"},Ui={class:"container-sub about-details"};var Ci=(0,o.aZ)({__name:"AboutView",setup(e){return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Ri,[(0,o._)("div",Ni,[(0,o._)("div",gi,[(0,o.Wm)(Ii)]),(0,o._)("div",Ui,[(0,o.Wm)(Ti)])])]))}});const Di=(0,Y.Z)(Ci,[["__scopeId","data-v-bffb50d0"]]);var vi=Di,hi=r(1818),fi=r(2056);const Pi=e=>((0,o.dD)("data-v-645a9e33"),e=e(),(0,o.Cn)(),e),Li={class:"timeline-workout"},wi={class:"box"},ki={class:"workout-user-date"},bi={class:"workout-user"},Mi=["title"],yi={key:0},Gi={key:1,class:"no-map"},Fi={class:"img"},Wi={class:"data"},Yi=Pi((()=>(0,o._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),xi={key:0},Bi={class:"data"},Ki=Pi((()=>(0,o._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Hi={key:0,class:"data elevation"},Vi=["alt"],Zi={class:"data-values"},$i={key:1,class:"data altitude"},qi=Pi((()=>(0,o._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),Xi={class:"data-values"};var ji=(0,o.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const n=e,r=(0,u.o)(),{user:t,workout:i,sport:l,useImperialUnits:m}=(0,s.BK)(n),d=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.LOCALE]));function E(e){return e&&null!==e.ascent&&null!==e.descent}return(e,n)=>{const r=(0,o.up)("router-link"),c=(0,o.up)("SportImage"),u=(0,o.up)("Distance");return(0,o.wg)(),(0,o.iD)("div",Li,[(0,o._)("div",wi,[(0,o._)("div",ki,[(0,o._)("div",bi,[(0,o.Wm)(xe.Z,{user:(0,s.SU)(t)},null,8,["user"]),(0,s.SU)(t).username?((0,o.wg)(),(0,o.j4)(r,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,s.SU)(t).username}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,s.SU)(t).username),1)])),_:1},8,["to"])):(0,o.kq)("",!0)]),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(r,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,s.SU)(i).id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)((0,s.SU)(i).title),1)])),_:1},8,["to"])):(0,o.kq)("",!0),(0,s.SU)(i).workout_date&&(0,s.SU)(t)?((0,o.wg)(),(0,o.iD)("div",{key:1,class:"workout-date",title:(0,s.SU)(Xe.p6)((0,s.SU)(i).workout_date,(0,s.SU)(t).timezone,(0,s.SU)(t).date_format)},(0,a.zw)((0,s.SU)(hi.Z)(new Date((0,s.SU)(i).workout_date),new Date,{addSuffix:!0,locale:(0,s.SU)(d)})),9,Mi)):(0,o.kq)("",!0)]),(0,o._)("div",{class:(0,a.C_)(["workout-map",{"no-cursor":!(0,s.SU)(i)}]),onClick:n[0]||(n[0]=n=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,s.SU)(i)?((0,o.wg)(),(0,o.iD)("div",yi,[(0,s.SU)(i).with_gpx?((0,o.wg)(),(0,o.j4)(fi.Z,{key:0,workout:(0,s.SU)(i)},null,8,["workout"])):((0,o.wg)(),(0,o.iD)("div",Gi,(0,a.zw)(e.$t("workouts.NO_MAP")),1))])):(0,o.kq)("",!0)],2),(0,o._)("div",{class:(0,a.C_)(["workout-data",{"without-gpx":(0,s.SU)(i)&&!(0,s.SU)(i).with_gpx}]),onClick:n[1]||(n[1]=n=>(0,s.SU)(i).id?e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(i).id}}):null)},[(0,o._)("div",Fi,[(0,s.SU)(l).label?((0,o.wg)(),(0,o.j4)(c,{key:0,"sport-label":(0,s.SU)(l).label,color:(0,s.SU)(l).color},null,8,["sport-label","color"])):(0,o.kq)("",!0)]),(0,o._)("div",Wi,[Yi,(0,s.SU)(i)?((0,o.wg)(),(0,o.iD)("span",xi,(0,a.zw)((0,s.SU)(i).moving),1)):(0,o.kq)("",!0)]),(0,o._)("div",Bi,[Ki,(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:0,distance:(0,s.SU)(i).distance,digits:3,unitFrom:"km",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0)]),(0,s.SU)(i)&&(0,s.SU)(i).with_gpx?((0,o.wg)(),(0,o.iD)("div",Hi,[(0,o._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Vi),(0,o._)("div",Zi,[(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:0,distance:(0,s.SU)(i).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0),(0,o.Uk)("/ "),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:1,distance:(0,s.SU)(i).max_alt,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0),E((0,s.SU)(i))?((0,o.wg)(),(0,o.iD)("div",$i,[qi,(0,o._)("div",Xi,[(0,o.Uk)(" +"),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:0,distance:(0,s.SU)(i).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0),(0,o.Uk)("/- "),(0,s.SU)(i).id?((0,o.wg)(),(0,o.j4)(u,{key:1,distance:(0,s.SU)(i).descent,unitFrom:"m",useImperialUnits:(0,s.SU)(m)},null,8,["distance","useImperialUnits"])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)],2)])])}}});const Qi=(0,Y.Z)(ji,[["__scopeId","data-v-645a9e33"]]);var Ji=Qi,es=r(5630),ns=r(3768);const rs={id:"timeline"},ts={class:"section-title"},os={key:0},as={key:1},is={key:1,class:"more-workouts"};var ss=(0,o.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const n=e,r=(0,u.o)(),{sports:t,user:i}=(0,s.BK)(n),l=(0,s.iH)(1),m=5,d=n.user.nb_workouts>=m?m:n.user.nb_workouts;(0,o.wF)((()=>T()));const E=(0,o.Fl)((()=>r.getters[c.aX.GETTERS.TIMELINE_WORKOUTS])),_=(0,o.Fl)((()=>E.value.length>0&&null!==E.value[E.value.length-1].previous_workout));function T(){r.dispatch(c.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:l.value,per_page:m,...ns.eR})}function S(){l.value+=1,r.dispatch(c.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:l.value,per_page:m,...ns.eR})}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",rs,[(0,o._)("div",ts,(0,a.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,s.SU)(i).nb_workouts>0&&0===(0,s.SU)(E).length?((0,o.wg)(),(0,o.iD)("div",os,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)([...Array((0,s.SU)(d)).keys()],(e=>((0,o.wg)(),(0,o.j4)(Ji,{user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,o.wg)(),(0,o.iD)("div",as,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(E),(e=>((0,o.wg)(),(0,o.j4)(Ji,{workout:e,sport:(0,s.SU)(E).length>0?(0,s.SU)(t).filter((n=>n.id===e.sport_id))[0]:null,user:(0,s.SU)(i),useImperialUnits:(0,s.SU)(i).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,s.SU)(E).length?((0,o.wg)(),(0,o.j4)(es.Z,{key:0})):(0,o.kq)("",!0),(0,s.SU)(_)?((0,o.wg)(),(0,o.iD)("div",is,[(0,o._)("button",{onClick:S},(0,a.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,o.kq)("",!0)]))]))}});const ls=(0,Y.Z)(ss,[["__scopeId","data-v-35567bf2"]]);var cs=ls,us=r(1640),ms=r(4559),ds=r(7349),Es=r(1743),_s=r(9160),Ts=r(1085);const Ss=["title"];var ps=(0,o.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const n=e,{displayHARecord:r,workout:t,sportLabel:a,sportColor:i}=(0,s.BK)(n);return(e,n)=>{const l=(0,o.up)("SportImage");return(0,o.wg)(),(0,o.iD)("div",{class:"calendar-workout",onClick:n[0]||(n[0]=n=>e.$router.push({name:"Workout",params:{workoutId:(0,s.SU)(t).id}}))},[(0,o.Wm)(l,{"sport-label":(0,s.SU)(a),title:(0,s.SU)(t).title,color:(0,s.SU)(i)},null,8,["sport-label","title","color"]),(0,o._)("sup",null,[(0,s.SU)(t).records.length>0?((0,o.wg)(),(0,o.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,s.SU)(t).records.filter((e=>!!(0,s.SU)(r)||"HA"!==e.record_type)).map((n=>` ${e.$t(`workouts.RECORD_${n.record_type}`)}`))},null,8,Ss)):(0,o.kq)("",!0)])])}}});const As=ps;var zs=As;const Os={class:"donut-chart"},Is={height:"34",width:"34",viewBox:"0 0 34 34"},Rs=["stroke","stroke-dashoffset","transform"];var Ns=(0,o.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const n=e,{colors:r,datasets:t}=(0,s.BK)(n);let a=-90;const i=16,l=16,c=14,u=2*Math.PI*c;function m(e,n){return n-e*n}function d(e,n){const r=`rotate(${a}, ${i}, ${l})`;return a=360*n+a,r}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Os,[((0,o.wg)(),(0,o.iD)("svg",Is,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(Object.entries((0,s.SU)(t)),((e,n)=>((0,o.wg)(),(0,o.iD)("g",{key:n},[(0,o._)("circle",{cx:i,cy:l,r:c,fill:"transparent",stroke:(0,s.SU)(r)[+e[0]],"stroke-dashoffset":m(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:d(n,e[1].percentage)},null,8,Rs)])))),128))]))]))}});const gs=Ns;var Us=gs;const Cs={class:"calendar-workouts-chart"},Ds={class:"workouts-count"},vs={key:0,class:"workouts-pane"},hs={class:"more-workouts"};var fs=(0,o.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const n=e,{colors:r,datasets:t,sports:i,workouts:l}=(0,s.BK)(n),c=(0,s.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,n)=>{const m=(0,o.Q2)("click-outside");return(0,o.wg)(),(0,o.iD)("div",Cs,[(0,o._)("div",{class:"workouts-chart",onClick:u},[(0,o._)("div",Ds,(0,a.zw)((0,s.SU)(l).length),1),(0,o.Wm)(Us,{datasets:(0,s.SU)(t),colors:(0,s.SU)(r)},null,8,["datasets","colors"])]),c.value?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",vs,[(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",hs,[(0,o._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(l),((e,n)=>((0,o.wg)(),(0,o.j4)(zs,{key:n,workout:e,sportLabel:(0,s.SU)(Se.PA)(e,(0,s.SU)(i)),sportColor:(0,s.SU)(Se.CM)(e,(0,s.SU)(i))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[m,u]])]))])}}});const Ps=(0,Y.Z)(fs,[["__scopeId","data-v-52d4310a"]]);var Ls=Ps;const ws={class:"calendar-workouts"},ks={class:"desktop-display"},bs={key:0,class:"workouts-display"},Ms={key:1,class:"donut-display"},ys={class:"mobile-display"},Gs={key:0,class:"donut-display"};var Fs=(0,o.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const n=e,{displayHARecord:r,workouts:t,sports:a}=(0,s.BK)(n),i=(0,o.Fl)((()=>(0,ns.BN)(n.workouts))),l=(0,o.Fl)((()=>(0,Se.Yx)(n.sports))),c=6;return(e,n)=>((0,o.wg)(),(0,o.iD)("div",ws,[(0,o._)("div",ks,[(0,s.SU)(t).length<=c?((0,o.wg)(),(0,o.iD)("div",bs,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)((0,s.SU)(t).slice(0,c),((e,n)=>((0,o.wg)(),(0,o.j4)(zs,{key:n,displayHARecord:(0,s.SU)(r),workout:e,sportLabel:(0,s.SU)(Se.PA)(e,(0,s.SU)(a)),sportColor:(0,s.SU)(Se.CM)(e,(0,s.SU)(a))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,o.wg)(),(0,o.iD)("div",Ms,[(0,o.Wm)(Ls,{workouts:(0,s.SU)(t),sports:(0,s.SU)(a),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,o._)("div",ys,[(0,s.SU)(t).length>0?((0,o.wg)(),(0,o.iD)("div",Gs,[(0,o.Wm)(Ls,{workouts:(0,s.SU)(t),sports:(0,s.SU)(a),datasets:(0,s.SU)(i),colors:(0,s.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,o.kq)("",!0)])]))}});const Ws=Fs;var Ys=Ws;const xs={class:"calendar-cells"},Bs={class:"calendar-cell-day"};var Ks=(0,o.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const n=e,{currentDay:r,displayHARecord:t,endDate:i,sports:l,startDate:c,timezone:u,weekStartingMonday:m,workouts:d}=(0,s.BK)(n),E=(0,s.iH)([]);function _(){E.value=[];let e=c.value;while(e<=i.value){const n=[];for(let r=0;r<7;r++)n.push(e),e=(0,ds.Z)(e,1);E.value.push(n)}}function T(e){return m.value?[5,6].includes(e):[0,6].includes(e)}function S(e,n){return n?n.filter((n=>(0,Es.Z)((0,Xe.eB)(n.workout_date,u.value),e))).reverse():[]}return(0,o.bv)((()=>_())),(0,o.YP)((()=>n.currentDay),(()=>_())),(e,n)=>((0,o.wg)(),(0,o.iD)("div",xs,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(E.value,((e,n)=>((0,o.wg)(),(0,o.iD)("div",{class:"calendar-row",key:n},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e,((e,n)=>((0,o.wg)(),(0,o.iD)("div",{class:(0,a.C_)(["calendar-cell",{"disabled-cell":!(0,s.SU)(_s.Z)(e,(0,s.SU)(r)),"week-end":T(n),today:(0,s.SU)(Ts.Z)(e)}]),key:n},[(0,o.Wm)(Ys,{workouts:S(e,(0,s.SU)(d)),sports:(0,s.SU)(l),displayHARecord:(0,s.SU)(t)},null,8,["workouts","sports","displayHARecord"]),(0,o._)("div",Bs,(0,a.zw)((0,s.SU)(Or.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const Hs=Ks;var Vs=Hs;const Zs={class:"calendar-days"};var $s=(0,o.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const n=e,r=[];for(let t=0;t<7;t++)r.push((0,ds.Z)(n.startDate,t));return(n,t)=>((0,o.wg)(),(0,o.iD)("div",Zs,[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(r,((n,r)=>(0,o._)("div",{class:"calendar-day",key:r},(0,a.zw)((0,s.SU)(Or.Z)(n,"EEE",{locale:e.localeOptions})),1))),64))]))}});const qs=$s;var Xs=qs;const js={class:"calendar-header"},Qs=(0,o._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Js=[Qs],el={class:"calendar-month"},nl=(0,o._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),rl=[nl];var tl=(0,o.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:n}){const r=e,{day:t,localeOptions:i}=(0,s.BK)(r);return(e,r)=>((0,o.wg)(),(0,o.iD)("div",js,[(0,o._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:r[0]||(r[0]=e=>n("displayPreviousMonth"))},Js),(0,o._)("div",el,[(0,o._)("span",null,(0,a.zw)((0,s.SU)(Or.Z)((0,s.SU)(t),"MMM yyyy",{locale:(0,s.SU)(i)})),1)]),(0,o._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:r[1]||(r[1]=e=>n("displayNextMonth"))},rl)]))}});const ol=tl;var al=ol;const il={id:"user-calendar"},sl={class:"calendar-card box"};var ll=(0,o.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const n=e,r=(0,u.o)(),{sports:t,user:a}=(0,s.BK)(n),i="yyyy-MM-dd",l=(0,s.iH)(new Date),m=(0,s.iH)((0,Xe.yx)(l.value,n.user.weekm)),d=(0,o.Fl)((()=>r.getters[c.aX.GETTERS.CALENDAR_WORKOUTS])),E=(0,o.Fl)((()=>r.getters[c.SY.GETTERS.LOCALE]));function _(){m.value=(0,Xe.yx)(l.value,n.user.weekm);const e={from:(0,Or.Z)(m.value.start,i),to:(0,Or.Z)(m.value.end,i),page:1,per_page:100,...ns.eR};r.dispatch(c.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function T(){l.value=(0,us.Z)(l.value,1),_()}function S(){l.value=(0,ms.Z)(l.value,1),_()}return(0,o.wF)((()=>_())),(e,n)=>((0,o.wg)(),(0,o.iD)("div",il,[(0,o._)("div",sl,[(0,o.Wm)(al,{day:l.value,"locale-options":(0,s.SU)(E),onDisplayNextMonth:T,onDisplayPreviousMonth:S},null,8,["day","locale-options"]),(0,o.Wm)(Xs,{"start-date":m.value.start,"locale-options":(0,s.SU)(E)},null,8,["start-date","locale-options"]),(0,o.Wm)(Vs,{currentDay:l.value,displayHARecord:(0,s.SU)(a).display_ascent,"end-date":m.value.end,sports:(0,s.SU)(t),"start-date":m.value.start,timezone:(0,s.SU)(a).timezone,workouts:(0,s.SU)(d),weekStartingMonday:(0,s.SU)(a).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const cl=ll;var ul=cl,ml=r(3703),dl=r(4135),El=r(436);const _l={class:"user-month-stats"};var Tl=(0,o.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const n=e,{sports:r,user:t}=(0,s.BK)(n),i=new Date,l={duration:"week",start:(0,ml.Z)(i),end:(0,dl.Z)(i)},c=n.sports.map((e=>e.id));return(e,n)=>{const i=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",_l,[(0,o.Wm)(i,null,{title:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,o.w5)((()=>[(0,o.Wm)(El.Z,{sports:(0,s.SU)(r),user:(0,s.SU)(t),"chart-params":l,"displayed-sport-ids":(0,s.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Sl=(0,Y.Z)(Tl,[["__scopeId","data-v-1bcddc12"]]);var pl=Sl,Al=r(2540),zl=r(3649);const{locale:Ol}=Al.Z.global,Il=(e,n,r,t)=>{const o="km",a=r?zl.Dl[o].defaultTarget:o,i="m",s=r?zl.Dl[i].defaultTarget:i;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,zl.sC)(+e.value,o,a,2)} ${a}/h`;break;case"FD":l=`${(0,zl.sC)(+e.value,o,a,3)} ${a}`;break;case"HA":l=`${(0,zl.sC)(+e.value,i,s,2)} ${s}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Xe.p6)(e.workout_date,n,t,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Rl=(e,n)=>{const r=e.label.toLowerCase(),t=n.label.toLowerCase();return r>t?1:r(a=(0,Xe.mh)(a,Ol.value),e.filter((e=>!!o||"HA"!==e.record_type)).reduce(((e,o)=>{const i=n.find((e=>e.id===o.sport_id));return i&&i.label&&(void 0===e[i.translatedLabel]&&(e[i.translatedLabel]={label:i.label,color:i.color,records:[]}),e[i.translatedLabel].records.push(Il(o,r,t,a))),e}),{})),gl={class:"records-card"},Ul={class:"record-type"},Cl={class:"record-value"},Dl={class:"record-date"};var vl=(0,o.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const n=e,{records:r,sportTranslatedLabel:t}=(0,s.BK)(n),{t:i}=(0,Te.QT)();function l(e){const n=[];return e.map((e=>{n.push({...e,label:i(`workouts.RECORD_${e.record_type}`)})})),n.sort(Rl)}return(e,n)=>{const i=(0,o.up)("SportImage"),c=(0,o.up)("router-link"),u=(0,o.up)("Card");return(0,o.wg)(),(0,o.iD)("div",gl,[(0,o.Wm)(u,null,{title:(0,o.w5)((()=>[(0,o.Wm)(i,{"sport-label":(0,s.SU)(r).label,color:(0,s.SU)(r).color},null,8,["sport-label","color"]),(0,o.Uk)(" "+(0,a.zw)((0,s.SU)(t)),1)])),content:(0,o.w5)((()=>[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(l((0,s.SU)(r).records),(e=>((0,o.wg)(),(0,o.iD)("div",{class:"record",key:e.id},[(0,o._)("span",Ul,(0,a.zw)(e.label),1),(0,o._)("span",Cl,(0,a.zw)(e.value),1),(0,o._)("span",Dl,[(0,o.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const hl=(0,Y.Z)(vl,[["__scopeId","data-v-8d17c606"]]);var fl=hl;const Pl=e=>((0,o.dD)("data-v-f0c85cb8"),e=e(),(0,o.Cn)(),e),Ll={class:"user-records-section"},wl={class:"section-title"},kl=Pl((()=>(0,o._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),bl={class:"user-records"},Ml={key:0,class:"no-records"};var yl=(0,o.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const n=e,{t:r}=(0,Te.QT)(),t=(0,o.Fl)((()=>Nl(n.user.records,(0,Se.xH)(n.sports,r),n.user.timezone,n.user.imperial_units,n.user.display_ascent,n.user.date_format)));return(n,r)=>((0,o.wg)(),(0,o.iD)("div",Ll,[(0,o._)("div",wl,[kl,(0,o.Uk)(" "+(0,a.zw)(n.$t("workouts.RECORD",2)),1)]),(0,o._)("div",bl,[0===Object.keys((0,s.SU)(t)).length?((0,o.wg)(),(0,o.iD)("div",Ml,(0,a.zw)(n.$t("workouts.NO_RECORDS")),1)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(Object.keys((0,s.SU)(t)).sort(),(n=>((0,o.wg)(),(0,o.j4)(fl,{sportTranslatedLabel:n,records:(0,s.SU)(t)[n],key:n,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const Gl=(0,Y.Z)(yl,[["__scopeId","data-v-f0c85cb8"]]);var Fl=Gl;const Wl={id:"user-stats"};var Yl=(0,o.aZ)({__name:"index",props:{user:null},setup(e){const n=e,{t:r}=(0,Te.QT)(),{user:t}=(0,s.BK)(n),a=(0,o.Fl)((()=>n.user.total_duration)),i=(0,o.Fl)((()=>_(a))),l="km",c=t.value.imperial_units?zl.Dl[l].defaultTarget:l,u=(0,o.Fl)((()=>t.value.imperial_units?(0,zl.sC)(t.value.total_distance,l,c,2):parseFloat(t.value.total_distance.toFixed(2)))),m="m",d=t.value.imperial_units?zl.Dl[m].defaultTarget:m,E=(0,o.Fl)((()=>t.value.imperial_units?(0,zl.sC)(t.value.total_ascent,m,d,2):parseFloat(t.value.total_ascent.toFixed(2))));function _(e){const n=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?r("common.DAY",2):r("common.DAY",1)}`:`0 ${r("common.DAY",2)},`,duration:`${n.split(":")[0]}h ${n.split(":")[1]}min`}}return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Wl,[(0,o.Wm)(Q,{icon:"calendar",value:(0,s.SU)(t).nb_workouts,text:e.$t("workouts.WORKOUT",(0,s.SU)(t).nb_workouts)},null,8,["value","text"]),(0,o.Wm)(Q,{icon:"road",value:(0,s.SU)(u),text:"mi"===(0,s.SU)(c)?"miles":(0,s.SU)(c)},null,8,["value","text"]),(0,s.SU)(t).display_ascent?((0,o.wg)(),(0,o.j4)(Q,{key:0,icon:"location-arrow",value:(0,s.SU)(E),text:"ft"===(0,s.SU)(d)?"feet":(0,s.SU)(d)},null,8,["value","text"])):(0,o.kq)("",!0),(0,o.Wm)(Q,{icon:"clock-o",value:(0,s.SU)(i).days,text:(0,s.SU)(i).duration},null,8,["value","text"]),(0,s.SU)(t).display_ascent?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(Q,{key:1,icon:"tags",value:(0,s.SU)(t).nb_sports,text:e.$t("workouts.SPORT",(0,s.SU)(t).nb_sports)},null,8,["value","text"]))]))}});const xl=Yl;var Bl=xl;const Kl={class:"privacy-policy-message"};function Hl(e,n){const r=(0,o.up)("router-link"),t=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",Kl,[(0,o._)("span",null,[(0,o.Wm)(t,{keypath:"user.LAST_PRIVACY_POLICY_TO_VALIDATE"},{default:(0,o.w5)((()=>[(0,o.Wm)(r,{to:"/profile/edit/privacy-policy"},{default:(0,o.w5)((()=>[(0,o.Uk)((0,a.zw)(e.$t("user.REVIEW")),1)])),_:1})])),_:1})])])}const Vl={},Zl=(0,Y.Z)(Vl,[["render",Hl],["__scopeId","data-v-05532ad6"]]);var $l=Zl;const ql=e=>((0,o.dD)("data-v-40886688"),e=e(),(0,o.Cn)(),e),Xl={key:0,id:"dashboard",class:"view"},jl={class:"container mobile-menu"},Ql={class:"box"},Jl=ql((()=>(0,o._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),ec=[Jl],nc=ql((()=>(0,o._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),rc=[nc],tc=ql((()=>(0,o._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),oc=[tc],ac=ql((()=>(0,o._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),ic=[ac],sc={key:0,class:"container privacy-policy-message"},lc={class:"container"},cc={class:"container dashboard-container"},uc={class:"left-container dashboard-sub-container"},mc={class:"right-container dashboard-sub-container"},dc=ql((()=>(0,o._)("div",{id:"bottom"},null,-1))),Ec={key:1,class:"app-loading"};var _c=(0,o.aZ)({__name:"Dashboard",setup(e){const n=(0,u.o)(),r=(0,o.Fl)((()=>n.getters[c.YN.GETTERS.AUTH_USER_PROFILE])),t=(0,o.Fl)((()=>n.getters[c.O8.GETTERS.SPORTS])),i=(0,s.iH)("calendar");function l(e){i.value=e}return(0,o.wF)((()=>n.dispatch(c.YN.ACTIONS.GET_USER_PROFILE))),(e,n)=>{const c=(0,o.up)("Loader");return(0,s.SU)(r).username&&(0,s.SU)(t).length>0?((0,o.wg)(),(0,o.iD)("div",Xl,[(0,o._)("div",jl,[(0,o._)("div",Ql,[(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"calendar"===i.value}]),onClick:n[0]||(n[0]=e=>l("calendar"))},ec,2),(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"chart"===i.value}]),onClick:n[1]||(n[1]=e=>l("chart"))},rc,2),(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"timeline"===i.value}]),onClick:n[2]||(n[2]=e=>l("timeline"))},oc,2),(0,o._)("div",{class:(0,a.C_)(["mobile-menu-item",{"is-selected":"records"===i.value}]),onClick:n[3]||(n[3]=e=>l("records"))},ic,2)])]),(0,s.SU)(r).accepted_privacy_policy?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",sc,[(0,o.Wm)($l)])),(0,o._)("div",lc,[(0,o.Wm)(Bl,{user:(0,s.SU)(r)},null,8,["user"])]),(0,o._)("div",cc,[(0,o._)("div",uc,[(0,o.Wm)(pl,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("chart"===i.value)})},null,8,["sports","user","class"]),(0,o.Wm)(Fl,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("records"===i.value)})},null,8,["sports","user","class"])]),(0,o._)("div",mc,[(0,o.Wm)(ul,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("calendar"===i.value)})},null,8,["sports","user","class"]),(0,o.Wm)(cs,{sports:(0,s.SU)(t),user:(0,s.SU)(r),class:(0,a.C_)({"is-hidden":!("timeline"===i.value)})},null,8,["sports","user","class"])])]),dc])):((0,o.wg)(),(0,o.iD)("div",Ec,[(0,o.Wm)(c)]))}}});const Tc=(0,Y.Z)(_c,[["__scopeId","data-v-40886688"]]);var Sc=Tc,pc=r(8273);const Ac={class:"not-found view"};var zc=(0,o.aZ)({__name:"NotFoundView",setup(e){return(e,n)=>((0,o.wg)(),(0,o.iD)("div",Ac,[(0,o.Wm)(pc.Z)]))}});const Oc=zc;var Ic=Oc;const Rc={id:"privacy-policy",class:"view"},Nc={class:"container"},gc=(0,o._)("div",{id:"bottom"},null,-1);var Uc=(0,o.aZ)({__name:"PrivacyPolicyView",setup(e){const n=(0,u.o)();return(0,o.wF)((()=>{n.dispatch(c.SY.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)})),(e,n)=>((0,o.wg)(),(0,o.iD)("div",Rc,[(0,o._)("div",Nc,[(0,o.Wm)(Jt)]),gc]))}});const Cc=Uc;var Dc=Cc,vc=r(776);const hc={id:"loginOrRegister",class:"view"},fc={class:"container"},Pc={class:"container-sub"},Lc={class:"container-sub"};var wc=(0,o.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const n=e,{action:r}=(0,s.BK)(n);return(e,n)=>((0,o.wg)(),(0,o.iD)("div",hc,[(0,o._)("div",fc,[(0,o._)("div",Pc,[(0,o.Wm)(Ii)]),(0,o._)("div",Lc,[(0,o.Wm)(vc.Z,{action:(0,s.SU)(r)},null,8,["action"])])])]))}});const kc=(0,Y.Z)(wc,[["__scopeId","data-v-58043acb"]]);var bc=kc;const Mc=e=>{const n=/(\/profile)(\/edit)*(\/*)/,r=e.replace(n,"").toUpperCase();return""===r?"PROFILE":r.toUpperCase()},yc=[{path:"/",name:"Dashboard",component:Sc},{path:"/login",name:"Login",component:bc,props:{action:"login"}},{path:"/register",name:"Register",component:bc,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>r.e(845).then(r.bind(r,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>r.e(24).then(r.bind(r,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>r.e(24).then(r.bind(r,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>r.e(24).then(r.bind(r,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>r.e(845).then(r.bind(r,8793))},{path:"/profile",name:"Profile",component:()=>r.e(845).then(r.bind(r,3537)),children:[{path:"",name:"UserProfile",component:wn,props:e=>({tab:Mc(e.path)}),children:[{path:"",name:"UserInfos",component:kn.Z},{path:"preferences",name:"UserPreferences",component:xn},{path:"sports",name:"UserSportPreferences",component:qa,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xo,children:[{path:"",name:"UserAppsList",component:za},{path:":id",name:"UserApp",component:ua},{path:":id/created",name:"CreatedUserApp",component:ua,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:ko},{path:"authorize",name:"AuthorizeUserApp",component:Vo}]}]},{path:"edit",name:"UserProfileEdition",component:Vn,props:e=>({tab:Mc(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Gr},{path:"account",name:"UserAccountEdition",component:zr},{path:"picture",name:"UserPictureEdition",component:Xr},{path:"preferences",name:"UserPreferencesEdition",component:Vt},{path:"sports",name:"UserSportPreferencesEdition",component:qa,props:{isEdition:!0}},{path:"privacy-policy",name:"UserPrivacyPolicy",component:lo}]}]},{path:"/statistics",name:"Statistics",component:()=>r.e(193).then(r.bind(r,7885))},{path:"/users/:username",name:"User",component:()=>r.e(845).then(r.bind(r,9453))},{path:"/workouts",name:"Workouts",component:()=>r.e(401).then(r.bind(r,344))},{path:"/workouts/:workoutId",name:"Workout",component:()=>r.e(401).then(r.bind(r,1211)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>r.e(401).then(r.bind(r,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>r.e(401).then(r.bind(r,1211)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>r.e(401).then(r.bind(r,4189))},{path:"/admin",name:"Administration",component:()=>r.e(328).then(r.bind(r,6e3)),children:[{path:"",name:"AdministrationMenu",component:_e},{path:"application",name:"ApplicationAdministration",component:B},{path:"application/edit",name:"ApplicationAdministrationEdition",component:B,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:Fe},{path:"users/:username",name:"UserFromAdmin",component:()=>r.e(845).then(r.bind(r,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:In}]},{path:"/about",name:"About",component:vi},{path:"/privacy-policy",name:"PrivacyPolicy",component:Dc},{path:"/:pathMatch(.*)*",name:"not-found",component:Ic}],Gc=(0,t.p7)({history:(0,t.PO)("/"),routes:yc}),Fc=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],Wc=["/email-update","/about","/privacy-policy"];Gc.beforeEach(((e,n,r)=>{Xa.Z.dispatch(c.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(Wc.includes(e.path))return r();if(Xa.Z.getters[c.YN.GETTERS.IS_AUTHENTICATED]&&Fc.includes(e.path))return r("/");if(Xa.Z.getters[c.YN.GETTERS.IS_AUTHENTICATED]||Fc.includes(e.path))r();else{const n="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};r(n)}})).catch((e=>{console.error(e),r()}))}));var Yc=Gc},5801:function(e,n,r){"use strict";var t,o,a,i,s,l,c,u,m,d,E,_,T,S,p,A,z,O;r.d(n,{YN:function(){return U},Km:function(){return C},SY:function(){return R},O8:function(){return N},gu:function(){return g},RT:function(){return D},aX:function(){return v}}),function(e){e["ACCEPT_PRIVACY_POLICY"]="ACCEPT_PRIVACY_POLICY",e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_REQUEST_DATA_EXPORT"]="GET_REQUEST_DATA_EXPORT",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["REQUEST_DATA_EXPORT"]="REQUEST_DATA_EXPORT",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(t||(t={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING",e["EXPORT_REQUEST"]="EXPORT_REQUEST"}(o||(o={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING",e["SET_EXPORT_REQUEST"]="SET_EXPORT_REQUEST"}(a||(a={})),function(e){e["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(i||(i={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(s||(s={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_PRIVACY_POLICY"]="GET_APPLICATION_PRIVACY_POLICY",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_PRIVACY_POLICY"]="UPDATE_APPLICATION_PRIVACY_POLICY",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(m||(m={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(d||(d={})),function(e){e["SPORTS"]="SPORTS"}(E||(E={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(_||(_={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(T||(T={})),function(e){e["USER_STATS"]="USER_STATS"}(S||(S={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(z||(z={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(O||(O={}));var I=r(52);const R={ACTIONS:c,GETTERS:u,MUTATIONS:m},N={ACTIONS:d,GETTERS:E,MUTATIONS:_},g={ACTIONS:T,GETTERS:S,MUTATIONS:p},U={ACTIONS:t,GETTERS:o,MUTATIONS:a},C={ACTIONS:i,GETTERS:s,MUTATIONS:l},D={ACTIONS:A,GETTERS:z,MUTATIONS:O},v={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,n,r){"use strict";r.d(n,{Z:function(){return me}});var t=r(3907),o=(r(7658),r(5167)),a=r(6154),i=r(8566),s=r(2024);const l=a.Z.create({baseURL:(0,s.k)()});l.interceptors.request.use((e=>{const n=new AbortController;e.signal=n.signal;const r=(0,i.a)(e);return i.j.set(r,n),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&e.response&&(0,i.a)(e.response.config),Promise.reject(e))));var c=l,u=r(4413),m=r(5801);const d=(e,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z["delete"](`users/${n.username}`).then((r=>{204===r.status?n.fromAdmin?u.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),o.Z.get(`users/${n}`).then((n=>{"success"===n.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0]):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),o.Z.get("users",{params:n}).then((n=>{"success"===n.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,n.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,n.data.pagination)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const r={};void 0!==n.admin&&(r.admin=n.admin),n.resetPassword&&(r.reset_password=n.resetPassword),n.activate&&(r.activate=n.activate),void 0!==n.new_email&&(r.new_email=n.new_email),o.Z.patch(`users/${n.username}`,r).then((r=>{"success"===r.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,r.data.data.users[0]),(n.resetPassword||n.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(n.activate||n.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,r.data.data.users[0])):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,n){d(e,{username:n.username,fromAdmin:!0})}},_=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},T={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&_(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:n.token}).then((n=>{if("success"===n.data.status){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:n.token}).then((r=>{"success"===r.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),n.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("auth/profile").then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),n.data.data.accepted_privacy_policy||e.dispatch(m.SY.ACTIONS.GET_APPLICATION_PRIVACY_POLICY),n.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,s.S)(e,null),_(e))})).catch((n=>{"canceled"!==n.message&&((0,s.S)(e,n),_(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${n.actionType}`,n.formData).then((r=>{if("success"===r.data.status)if("login"===n.actionType){const t=r.data.auth_token;window.localStorage.setItem("authToken",t),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,t),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof n.redirectUrl?n.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("auth/logout").then((n=>{"success"===n.data.status?_(e):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z.post("auth/profile/edit",n).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),u.Z.push("/profile")):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),o.Z.patch("auth/profile/edit/account",n).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z.post("auth/profile/edit/preferences",n).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z["delete"](`auth/profile/reset/sports/${n}`).then((n=>{204===n.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z.post("auth/profile/edit/sports",n).then((n=>{"success"===n.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((n=>{(0,s.S)(e,n),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,n){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!n.picture)throw new Error("No file part");const r=new FormData;r.append("file",n.picture),o.Z.post("auth/picture",r,{headers:{"content-type":"multipart/form-data"}}).then((n=>{"success"===n.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,n){d(e,n)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),o.Z["delete"]("auth/picture").then((n=>{204===n.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",n).then((n=>{"success"===n.data.status?u.Z.push("/password-reset/sent"):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",n).then((n=>{"success"===n.data.status?u.Z.push("/account-confirmation/email-sent"):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",n).then((n=>{"success"===n.data.status?u.Z.push("/password-reset/password-updated"):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.ACCEPT_PRIVACY_POLICY](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("auth/account/privacy-policy",{accepted_policy:n}).then((n=>{"success"===n.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.REQUEST_DATA_EXPORT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("auth/account/export/request").then((n=>{"success"===n.data.status?e.commit(m.YN.MUTATIONS.SET_EXPORT_REQUEST,n.data.request):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.YN.ACTIONS.GET_REQUEST_DATA_EXPORT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("auth/account/export").then((n=>{"success"===n.data.status?e.commit(m.YN.MUTATIONS.SET_EXPORT_REQUEST,n.data.request):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},S={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.EXPORT_REQUEST]:e=>e.exportRequest,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,n){e.authToken=n},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,n){e.authUserProfile=n},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,n){e.isRegistrationSuccess=n},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,n){e.isSuccess=n},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,n){e.loading=n},[m.YN.MUTATIONS.SET_EXPORT_REQUEST](e,n){e.exportRequest=n}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1,exportRequest:null},z={state:A,actions:T,getters:S,mutations:p};var O=z;const I=(e,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get(n).then((n=>{"success"===n.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,n.data.data.client):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},R={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES);const r=new FormData;r.set("client_id",n.client_id),r.set("response_type",n.response_type),r.set("scope",n.scope),r.set("confirm","true"),n.state&&r.set("state",n.state),n.code_challenge&&r.set("code_challenge",n.code_challenge),n.code_challenge_method&&r.set("code_challenge_method",n.code_challenge_method),o.Z.post("oauth/authorize",r,{headers:{"Content-Type":"multipart/form-data"}}).then((n=>{200==n.status&&n.data.redirect_url?window.location.href=n.data.redirect_url:(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.CREATE_CLIENT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.post("oauth/apps",n).then((n=>{"created"===n.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,n.data.data.client),u.Z.push(`/profile/apps/${n.data.data.client.id}/created`)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.DELETE_CLIENT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z["delete"](`oauth/apps/${n}`).then((n=>{204===n.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,n){I(e,`oauth/apps/${n}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,n){I(e,`oauth/apps/${n}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("oauth/apps",{params:n}).then((n=>{"success"===n.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,n.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,n.data.pagination)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),o.Z.post(`oauth/apps/${n}/revoke`).then((n=>{"success"===n.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},N={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},g={[m.Km.MUTATIONS.SET_CLIENT](e,n){e.client=n},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,n){e.clients=n},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,n){e.pagination=n},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,n){e.revocationSuccessful=n}},U={client:{},clients:[],pagination:{},revocationSuccessful:!1},C={state:U,actions:R,getters:N,mutations:g};var D=C,v=r(2540);const{locale:h}=v.Z.global,f={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),o.Z.get("config").then((n=>{"success"===n.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("stats/all").then((n=>{"success"===n.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,n.data.data):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.SY.ACTIONS.GET_APPLICATION_PRIVACY_POLICY](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("config").then((n=>{"success"===n.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY,n.data.data):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.patch("config",n).then((n=>{"success"===n.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data),u.Z.push("/admin/application")):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,n){document.querySelector("html")?.setAttribute("lang",n),e.commit(m.SY.MUTATIONS.UPDATE_LANG,n),h.value=n}},P={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var L=r(6287);const w={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,n){e.errorMessages=n},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,n){e.application.config=n},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,n){e.appLoading=n},[m.SY.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY](e,n){e.application.config.privacy_policy=n.privacy_policy,e.application.config.privacy_policy_date=n.privacy_policy_date},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,n){e.application.statistics=n},[m.SY.MUTATIONS.UPDATE_LANG](e,n){e.language=n,e.locale=L.v1[n]}};var k=r(5826);const b={root:!0,language:"en",locale:k.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},M={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("sports").then((n=>{"success"===n.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,n.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.patch(`sports/${n.id}`,{is_active:n.isActive}).then((n=>{"success"===n.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},y={[m.O8.GETTERS.SPORTS]:e=>e.sports},G={[m.O8.MUTATIONS.SET_SPORTS](e,n){e.sports=n}},F={sports:[]},W={state:F,actions:M,getters:y,mutations:G};var Y=W;const x={[m.gu.ACTIONS.GET_USER_STATS](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get(`stats/${n.username}/${n.filterType}`,{params:n.params}).then((n=>{"success"===n.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,n.data.data.statistics):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))}},B={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},K={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,n){e.statistics=n},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},H={statistics:{}},V={state:H,actions:x,getters:B,mutations:K};var Z=V;const $={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},q={[m.RT.MUTATIONS.UPDATE_USER](e,n){e.user=n},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,n){e.users=e.users.map((e=>e.username===n.username?n:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,n){e.users=n},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,n){e.loading=n},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,n){e.pagination=n},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,n){e.isSuccess=n}},X={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},j={state:X,actions:E,getters:$,mutations:q};var Q=j,J=r(52);const ee=(e,n,r)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),o.Z.get("workouts",{params:n}).then((n=>{"success"===n.data.status?(e.commit(m.aX.MUTATIONS[r],n.data.data.workouts),r===J.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,n.data.pagination)):(0,s.S)(e,null)})).catch((n=>(0,s.S)(e,n)))},ne={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,n){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,n,J.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,n){ee(e,n,J.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,n){ee(e,n,J.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,n){ee(e,n,J.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const r=n.segmentId?`/segment/${n.segmentId}`:"";o.Z.get(`workouts/${n.workoutId}`).then((t=>{const a=t.data.data.workouts[0];if("success"===t.data.status){if(n.segmentId&&(0===a.segments.length||!a.segments[+n.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(m.aX.MUTATIONS.SET_WORKOUT,t.data.data.workouts[0]),t.data.data.workouts[0].with_gpx&&(o.Z.get(`workouts/${n.workoutId}/chart_data${r}`).then((n=>{"success"===n.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,n.data.data.chart_data)})),o.Z.get(`workouts/${n.workoutId}/gpx${r}`).then((n=>{"success"===n.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_GPX,n.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,null)})).catch((n=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),o.Z["delete"](`workouts/${n.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),o.Z.patch(`workouts/${n.workoutId}`,n.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:n.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:n.workoutId}})}))})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,n){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!n.file)throw new Error("No file part");const r=n.notes.replace(/"/g,'\\"'),t=new FormData;t.append("file",n.file),t.append("data",`{"sport_id": ${n.sport_id}, "notes": "${r}"}`),o.Z.post("workouts",t,{headers:{"content-type":"multipart/form-data"}}).then((n=>{if("created"===n.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const r=n.data.data.workouts[0];u.Z.push(1===n.data.data.workouts.length?`/workouts/${r.id}`:"/")}})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,n){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),o.Z.post("workouts/no_gpx",n).then((n=>{if("created"===n.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const r=n.data.data.workouts[0];u.Z.push(`/workouts/${r.id}`)}})).catch((n=>{(0,s.S)(e,n)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},re={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},te={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,n){e.timeline_workouts=e.timeline_workouts.concat(n)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,n){e.calendar_workouts=n},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,n){e.timeline_workouts=n},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,n){e.user_workouts=n},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,n){e.pagination=n},[m.aX.MUTATIONS.SET_WORKOUT](e,n){e.workoutData.workout=n},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,n){e.workoutData.chartData=n},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,n){e.workoutData.gpx=n},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,n){e.workoutData.loading=n},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},oe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},ae={state:oe,actions:ne,getters:re,mutations:te};var ie=ae;const se={authUserModule:O,oAuthModule:D,sportsModule:Y,statsModule:Z,usersModule:Q,workoutsModule:ie},le={state:b,actions:f,getters:P,mutations:w,modules:se};var ce=le;const ue=(0,t.MT)(ce);var me=ue},52:function(e,n,r){"use strict";var t,o,a;r.d(n,{CW:function(){return a},JP:function(){return o},tW:function(){return t}}),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"}(t||(t={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(o||(o={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(a||(a={}))},9917:function(e,n,r){"use strict";r.d(n,{o:function(){return o}});var t=r(3907);function o(){return(0,t.oR)()}},2766:function(e,n,r){"use strict";r.d(n,{Hf:function(){return o},Ne:function(){return c},fS:function(){return t},lM:function(){return m},pm:function(){return l},z_:function(){return i}});const t=["asc","desc"],o=1,a=10,i=(e,n)=>e&&"string"===typeof e&&+e>0?+e:n,s=(e,n,r)=>e&&"string"===typeof e&&n.includes(e)?e:r,l=(e,n,r,l)=>{const c=l||{},u=c.defaultSort||"asc",m={};return m.page=i(e.page,o),m.per_page=i(e.per_page,a),m.order=s(e.order,t,u),m.order_by=s(e.order_by,n,r),"string"===typeof e.q?m.q=e.q:delete m.q,m},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id","title"],u=(e,n=1)=>Array.from({length:e-n+1},((e,r)=>n+r)),m=(e,n)=>{if(e<0)return[];if(e<9)return u(e);let r=[1,2];return n<4?r=r.concat([3,4,5]):n<6?r=r.concat(u(n+2,3)):(r=r.concat(["..."]),n=e-2&&+r[r.length-1]{switch(e){case"week":return(0,t.Z)(n,{weekStartsOn:r?1:0});case"year":return(0,o.Z)(n);case"month":return(0,a.Z)(n);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},p=(e,n)=>{switch(e){case"week":return(0,i.Z)(n,7);case"year":return(0,s.Z)(n,1);case"month":return(0,l.Z)(n,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},A=(e,n)=>(0,d.Z)(new Date(e),n),z=(e,n)=>{const r=(0,a.Z)(e),o=(0,c.Z)(e),i=n?1:0;return{start:(0,t.Z)(r,{weekStartsOn:i}),end:(0,u.Z)(o,{weekStartsOn:i})}},O=(e,n=null,r=null)=>(n||(n="yyyy/MM/dd"),n=N(n,T.value),r||(r="HH:mm"),{workout_date:(0,m.Z)(e,n,{locale:_.v1[T.value]}),workout_time:(0,m.Z)(e,r)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],R={de:"do MMM yyyy",en:"MMM. do, yyyy",es:"d MMM yyyy",fr:"d MMM yyyy",gl:"d MMM yyyy",it:"d MMM yyyy",nb:"do MMM yyyy",nl:"d MMM yyyy"},N=(e,n)=>"date_string"===e?R[n]:e,g=(e,n,r,t=!0,o=null,a=!1)=>{o||(o=T.value);const i=t?a?" HH:mm:ss":" HH:mm":"";return(0,m.Z)(A(e,n),`${N(r,o)}${i}`,{locale:_.v1[o]})},U=(e,n,r=null)=>{const t=r||T.value,o=[];return I.map((r=>{const a=N(r,t);o.push({label:`${a} - ${g(e,n,a,!1,t)}`,value:r})})),o}},8966:function(e,n,r){"use strict";r.d(n,{Z:function(){return o},j:function(){return a}});const t=["bytes","KB","MB","GB","TB"],o=(e,n=!0)=>{const r=Math.floor(Math.log(e)/Math.log(1024));if(!e)return n?"0 bytes":{size:"0",suffix:"bytes"};const o=(e/Math.pow(1024,r)).toFixed(1),a=t[r];return n?`${o}${a}`:{size:o,suffix:a}},a=e=>{const n=e/1048576;return+n.toFixed(2)}},2024:function(e,n,r){"use strict";r.d(n,{S:function(){return a},k:function(){return o}});var t=r(5801);const o=()=>"/api/",a=(e,n,r="UNKNOWN")=>{if(n&&"canceled"===n.message)return;const o=n?.response&&n.response.data?n.response.data:null;if(401===n?.response?.status&&"invalid_token"===o?.error)return localStorage.removeItem("authToken"),void e.dispatch(t.YN.ACTIONS.CHECK_AUTH_USER);const a=n?n.response?413===n.response.status?"file size is greater than the allowed size":o?.message?o.message:r:n.message?n.message:r:r;e.commit(t.SY.MUTATIONS.SET_ERROR_MESSAGES,a.includes("\n")?a.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${a}`)}},2335:function(e,n,r){"use strict";r.d(n,{O:function(){return i}});var t=r(9597),o=r(1036),a=r.n(o);const i=e=>a()((0,t.Z)(e,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"})},6287:function(e,n,r){"use strict";r.d(n,{mT:function(){return T},v1:function(){return d},zK:function(){return E}});var t=r(879),o=r(5826),a=r(3345),i=r(5830),s=r(1229),l=r(8160),c=r(3304),u=r(4638),m=r(2540);const d={de:t.Z,en:o.Z,es:a.Z,fr:i.Z,gl:s.Z,it:l.Z,nb:c.Z,nl:u.Z},E={de:"Deutsch",en:"English",es:"Español",fr:"Français",gl:"Galego",it:"Italiano",nb:"Norsk bokmål",nl:"Nederlands"},{availableLocales:_}=m.Z.global,T=_.map((e=>({label:E[e],value:e})))},631:function(e,n,r){"use strict";r.d(n,{CM:function(){return l},PA:function(){return s},Yx:function(){return o},Zo:function(){return t},xH:function(){return i}});const t={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},o=e=>{const n={};return e.map((e=>n[e.id]=e.color?e.color:t[e.label])),n},a=(e,n)=>{const r=e.translatedLabel.toLowerCase(),t=n.translatedLabel.toLowerCase();return r>t?1:re.filter((e=>"all"===r||(t.includes(e.id)||e[r]))).map((e=>({...e,translatedLabel:n(`sports.${e.label}.LABEL`)}))).sort(a),s=(e,n)=>n.filter((n=>n.id===e.sport_id)).map((e=>e.label))[0],l=(e,n)=>n.filter((n=>n.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,n,r){"use strict";r.d(n,{FN:function(){return f},aZ:function(){return h},v1:function(){return v}});r(7658);var t=r(6761),o=r(8148),a=r(9319),i=r(584),s=r(4559),l=r(3703),c=r(876),u=r(7090),m=r(4135),d=r(1593),E=r(7982),_=r(3500),T=r(1640),S=r(2540),p=r(6558),A=r(6287),z=r(631),O=r(3649);const{locale:I}=S.Z.global,R={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},N=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],g=(e,n)=>{const r=[];for(let t=(0,p.Nh)(e.duration,e.start,n);t<=e.end;t=(0,p.xA)(e.duration,t))r.push(t);return r},U=(e,n,r=!1)=>{const t={label:e,backgroundColor:[n],data:[]};return r&&(t.type="line",t.borderColor=[n],t.spanGaps=!0),t},C=e=>{const n={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const r=e.color?e.color:z.Zo[e.label];n.average_speed.push(U(e.label,r,!0)),n.nb_workouts.push(U(e.label,r)),n.total_distance.push(U(e.label,r)),n.total_duration.push(U(e.label,r)),n.total_ascent.push(U(e.label,r)),n.total_descent.push(U(e.label,r))})),n},D=(e,n,r)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,O.f3)(["average_speed","total_distance"].includes(e)?"km":"m",n,r);default:case"nb_workouts":case"total_duration":return n}},v=(e,n,r,o,a,i,s)=>{const l=g(e,n),c=R[e.duration],u=r.filter((e=>o.includes(e.id))),m=[],d=C(u),E={};return u.map((e=>E[e.label]=e.id)),l.map((n=>{const r=(0,t.Z)(n,c.api),o=(0,t.Z)(n,"week"===e.duration?(0,p.mh)(s,I.value):c.chart,{locale:A.v1[I.value]});m.push(o),N.map((e=>{d[e].map((n=>{n.data.push(r in a&&E[n.label]in a[r]?D(e,a[r][E[n.label]][e],i):"average_speed"===e?null:0)}))}))})),{labels:m,datasets:d}},h=(e,n,r)=>{const t=r?1:0,d="year"===n?(0,o.Z)((0,a.Z)(e,9)):"week"===n?(0,i.Z)((0,s.Z)(e,2),{weekStartsOn:t}):(0,l.Z)((0,s.Z)(e,11)),E="year"===n?(0,c.Z)(e):"week"===n?(0,u.Z)(e,{weekStartsOn:t}):(0,m.Z)(e);return{duration:n,end:E,start:d}},f=(e,n,r)=>{const{duration:t,start:S,end:p}=e,A=r?1:0;return{duration:t,end:"year"===t?(0,c.Z)(n?(0,a.Z)(p,1):(0,d.Z)(p,1)):"week"===t?(0,u.Z)(n?(0,E.Z)(p,1):(0,_.Z)(p,1),{weekStartsOn:A}):(0,m.Z)(n?(0,s.Z)(p,1):(0,T.Z)(p,1)),start:"year"===t?(0,o.Z)(n?(0,a.Z)(S,1):(0,d.Z)(S,1)):"week"===t?(0,i.Z)(n?(0,E.Z)(S,1):(0,_.Z)(S,1),{weekStartsOn:A}):(0,l.Z)(n?(0,s.Z)(S,1):(0,T.Z)(S,1))}}},3649:function(e,n,r){"use strict";r.d(n,{Dl:function(){return t},Y2:function(){return l},f3:function(){return i},sC:function(){return a},x$:function(){return s}});const t={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},o={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},a=(e,n,r,a=3)=>{const i=t[n],s=t[r],l=e*i.multiplier*o[i.system][s.system]/s.multiplier;return null!==a?parseFloat(l.toFixed(a)):l},i=(e,n,r)=>{const o=r?t[e].defaultTarget:e;return r?a(n,e,o,2):n},s=(e,n)=>{const r=n?1.8*e+32:e,t=n?" °F":"°C";return`${0===r?0:Number(r).toFixed(1)}${t}`},l=(e,n)=>{const r=n?2.2369363*e:e,t=n?" mph":"m/s";return`${0===r?0:Number(r).toFixed(1)}${t}`}},3768:function(e,n,r){"use strict";r.d(n,{BN:function(){return a},EX:function(){return o},eR:function(){return i}});r(7658);var t=r(3649);const o=(e,n,r)=>{const o={speed:{label:n("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:n("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},a=[],i=[],s=[];return e.map((e=>{a.push((0,t.f3)("km",e.distance,r)),i.push(e.duration),o.speed.data.push((0,t.f3)("km",e.speed,r)),o.elevation.data.push((0,t.f3)("m",e.elevation,r)),s.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:a,duration_labels:i,datasets:o,coordinates:s}},a=e=>{const n=e.length;if(0===n)return{};const r={};return e.map((e=>{r[e.sport_id]||(r[e.sport_id]={count:0,percentage:0}),r[e.sport_id].count+=1,r[e.sport_id].percentage=r[e.sport_id].count/n})),r},i={order:"desc",order_by:"workout_date"}},2531:function(e,n,r){"use strict";r.d(n,{Z:function(){return m}});var t=r(6252);const o={class:"card"},a={class:"card-title"},i={class:"card-content"};function s(e,n){return(0,t.wg)(),(0,t.iD)("div",o,[(0,t._)("div",a,[(0,t.WI)(e.$slots,"title")]),(0,t._)("div",i,[(0,t.WI)(e.$slots,"content")])])}var l=r(3744);const c={},u=(0,l.Z)(c,[["render",s]]);var m=u},8626:function(e,n,r){"use strict";r.d(n,{Z:function(){return S}});var t=r(6252),o=r(3577),a=r(2262);const i={class:"table-selects"},s=["value"],l=["value"],c=["value"],u=["value"],m=["value"],d=["value"];var E=(0,t.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:n}){const r=e,{order_by:E,query:_,sort:T,message:S}=(0,a.BK)(r),p=[10,25,50,100];function A(e){n("updateSelect",e.target.id,e.target.value)}return(e,n)=>((0,t.wg)(),(0,t.iD)("div",i,[(0,t._)("label",null,[(0,t.Uk)((0,o.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,t._)("select",{name:"order_by",id:"order_by",value:(0,a.SU)(_).order_by,onChange:A},[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(E),(n=>((0,t.wg)(),(0,t.iD)("option",{value:n,key:n},(0,o.zw)(e.$t(`${(0,a.SU)(S)}.${n.toUpperCase()}`)),9,l)))),128))],40,s)]),(0,t._)("label",null,[(0,t.Uk)((0,o.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,t._)("select",{name:"order",id:"order",value:(0,a.SU)(_).order,onChange:A},[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(T),(n=>((0,t.wg)(),(0,t.iD)("option",{value:n,key:n},(0,o.zw)(e.$t(`common.SELECTS.ORDER.${n.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,t._)("label",null,[(0,t.Uk)((0,o.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,t._)("select",{name:"per_page",id:"per_page",value:(0,a.SU)(_).per_page,onChange:A},[((0,t.wg)(),(0,t.iD)(t.HY,null,(0,t.Ko)(p,(e=>(0,t._)("option",{value:e,key:e},(0,o.zw)(e),9,d))),64))],40,m)])]))}}),_=r(3744);const T=(0,_.Z)(E,[["__scopeId","data-v-72463173"]]);var S=T},7167:function(e,n,r){"use strict";r.d(n,{Z:function(){return m}});var t=r(6252);const o={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},a=(0,t.uE)(' ',1),i=[a];function s(e,n,r,a,s,l){return(0,t.wg)(),(0,t.iD)("svg",o,i)}var l={name:"ErrorImg"},c=r(3744);const u=(0,c.Z)(l,[["render",s]]);var m=u},8273:function(e,n,r){"use strict";r.d(n,{Z:function(){return _}});var t=r(6252),o=r(2262),a=(r(7658),r(3577));const i={id:"error"},s={class:"error-content"};var l=(0,t.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const n=e,{buttonText:r,title:l,message:c,path:u}=(0,o.BK)(n);return(e,n)=>((0,t.wg)(),(0,t.iD)("div",i,[(0,t._)("div",s,[(0,t._)("h1",null,(0,a.zw)((0,o.SU)(l)),1),(0,t._)("p",null,(0,a.zw)((0,o.SU)(c)),1),(0,o.SU)(r)?((0,t.wg)(),(0,t.iD)("button",{key:0,onClick:n[0]||(n[0]=n=>e.$router.push((0,o.SU)(u))),class:"upper"},(0,a.zw)((0,o.SU)(r)),1)):(0,t.kq)("",!0)])]))}}),c=r(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var m=u,d=(0,t.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const n=e,{target:r}=(0,o.BK)(n),a=(0,o.iH)(),i=(0,o.iH)(!1);function s(){a.value=setTimeout((()=>{i.value=!0}),500)}return(0,t.bv)((()=>s())),(0,t.Ah)((()=>{a.value&&clearTimeout(a.value)})),(e,n)=>i.value?((0,t.wg)(),(0,t.j4)(m,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,o.SU)(r)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,t.kq)("",!0)}});const E=d;var _=E},5020:function(e,n,r){"use strict";r.d(n,{Z:function(){return S}});var t=r(6252),o=r(3577),a=r(2262),i=r(2766);const s=e=>((0,t.dD)("data-v-3a9a4a65"),e=e(),(0,t.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=s((()=>(0,t._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),m={key:0},d=s((()=>(0,t._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var E=(0,t.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const n=e,{pagination:r,path:s,query:E}=(0,a.BK)(n);function _(e,n){const r=Object.assign({},E.value);return r.page=n?e+n:e,r}return(e,n)=>{const E=(0,t.up)("router-link");return(0,t.wg)(),(0,t.iD)("nav",l,[(0,t._)("ul",c,[(0,t._)("li",{class:(0,o.C_)(["page-prev",{disabled:!(0,a.SU)(r).has_prev}])},[(0,t.Wm)(E,{class:"page-link",to:{path:(0,a.SU)(s),query:_((0,a.SU)(r).page,-1)},disabled:!(0,a.SU)(r).has_prev},{default:(0,t.w5)((({navigate:n})=>[(0,t.WI)(e.$slots,"default",{onClick:e=>(0,a.SU)(r).has_next?n:null},(()=>[(0,t.Uk)((0,o.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)((0,a.SU)(i.lM)((0,a.SU)(r).pages,(0,a.SU)(r).page),(e=>((0,t.wg)(),(0,t.iD)("li",{key:e,class:(0,o.C_)(["page",{active:e===(0,a.SU)(r).page}])},["..."===e?((0,t.wg)(),(0,t.iD)("span",m," ... ")):((0,t.wg)(),(0,t.j4)(E,{key:1,class:"page-link",to:{path:(0,a.SU)(s),query:_(+e)}},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,t._)("li",{class:(0,o.C_)(["page-next",{disabled:!(0,a.SU)(r).has_next}])},[(0,t.Wm)(E,{class:"page-link",to:{path:(0,a.SU)(s),query:_((0,a.SU)(r).page,1)},disabled:!(0,a.SU)(r).has_next},{default:(0,t.w5)((({navigate:n})=>[(0,t.WI)(e.$slots,"default",{onClick:e=>(0,a.SU)(r).has_next?n:null},(()=>[(0,t.Uk)((0,o.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),d]))])),_:3},8,["to","disabled"])],2)])])}}}),_=r(3744);const T=(0,_.Z)(E,[["__scopeId","data-v-3a9a4a65"]]);var S=T},8403:function(e,n,r){"use strict";r.d(n,{Z:function(){return f}});var t=r(6252),o=r(2262),a=r(9963),i=r(3577),s=r(5275),l=r(5801),c=r(9917);const u=async e=>{switch(e){case"fr":return await r.e(222).then(r.bind(r,6886));case"de":return await r.e(940).then(r.bind(r,5767));case"it":return await r.e(802).then(r.bind(r,8060));case"es":return await r.e(394).then(r.bind(r,9975));default:return await r.e(261).then(r.bind(r,8638))}},m=async e=>{const n=await r.e(881).then(r.bind(r,268)),t=await u(e),o={graphs:n.adjacencyGraphs,dictionary:{...n.dictionary,...t.dictionary}};s.Mu.setOptions(o)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},E={class:"password-strength"},_=["value"],T={key:0,class:"password-strength-details"},S={class:"password-strength-value"},p={key:0,class:"info-box"},A={class:"password-feedback"};var z=(0,t.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const n=e,{password:r}=(0,o.BK)(n),a=(0,c.o)(),u=(0,t.Fl)((()=>a.getters[l.SY.GETTERS.LANGUAGE])),z=(0,t.Fl)((()=>a.getters[l.YN.GETTERS.IS_SUCCESS])),O=(0,o.iH)(0),I=(0,o.iH)(""),R=(0,o.iH)([]),N=(0,o.iH)("0% 100%");function g(e){const n=(0,s.tu)(e);O.value=n.score,I.value=d(O.value),R.value=n.feedback.suggestions,N.value=100*O.value/4+"% 100%"}return(0,t.wF)((async()=>await m(u.value))),(0,t.YP)((()=>u.value),(async e=>{await m(e)})),(0,t.YP)((()=>r.value),(async e=>{z.value?I.value="":g(e)})),(e,n)=>((0,t.wg)(),(0,t.iD)("div",E,[(0,t._)("input",{class:(0,i.C_)(["password-slider",`strength-${O.value}`]),style:(0,i.j5)({backgroundSize:N.value}),type:"range",value:O.value,min:"0",max:"4",step:"1"},null,14,_),I.value?((0,t.wg)(),(0,t.iD)("div",T,[(0,t._)("span",S,(0,i.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),R.value.length>0?((0,t.wg)(),(0,t.iD)("div",p,[(0,t._)("ul",A,[((0,t.wg)(!0),(0,t.iD)(t.HY,null,(0,t.Ko)(R.value,(n=>((0,t.wg)(),(0,t.iD)("li",{key:n},(0,i.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${n}`)),1)))),128))])])):(0,t.kq)("",!0)])):(0,t.kq)("",!0)]))}}),O=r(3744);const I=(0,O.Z)(z,[["__scopeId","data-v-74e71df5"]]);var R=I;const N=e=>((0,t.dD)("data-v-5a126514"),e=e(),(0,t.Cn)(),e),g={class:"password-input"},U=["id","disabled","placeholder","required","type"],C={key:0,class:"form-info"},D=N((()=>(0,t._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var v=(0,t.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:n}){const r=e,{checkStrength:s,disabled:l,id:c,password:u,placeholder:m,required:d}=(0,o.BK)(r),E=(0,o.iH)(!1),_=(0,o.iH)("");function T(){E.value=!E.value}function S(e){n("updatePassword",e.target.value)}function p(){n("passwordError")}return(0,t.YP)((()=>u.value),(e=>{""===e&&(_.value="")})),(e,n)=>((0,t.wg)(),(0,t.iD)("div",g,[(0,t.wy)((0,t._)("input",{id:(0,o.SU)(c),disabled:(0,o.SU)(l),placeholder:(0,o.SU)(m),required:(0,o.SU)(d),type:E.value?"text":"password","onUpdate:modelValue":n[0]||(n[0]=e=>_.value=e),minlength:"8",onInput:S,onInvalid:p},null,40,U),[[a.YZ,_.value]]),(0,t._)("div",{class:"show-password",onClick:T},[(0,t.Uk)((0,i.zw)(e.$t(`user.${E.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,t._)("i",{class:(0,i.C_)(["fa","fa-eye"+(E.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,o.SU)(s)?((0,t.wg)(),(0,t.iD)("div",C,[D,(0,t.Uk)(" "+(0,i.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,t.kq)("",!0),(0,o.SU)(s)?((0,t.wg)(),(0,t.j4)(R,{key:1,password:_.value},null,8,["password"])):(0,t.kq)("",!0)]))}});const h=(0,O.Z)(v,[["__scopeId","data-v-5a126514"]]);var f=h},2056:function(e,n,r){"use strict";r.d(n,{Z:function(){return u}});var t=r(6252),o=r(3577),a=r(2262),i=r(2024);const s=(0,t._)("div",{class:"map-attribution"},[(0,t._)("span",{class:"map-attribution-text"},"©"),(0,t._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,t.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const n=e,{displayHover:r}=(0,a.BK)(n),l=`${(0,i.k)()}workouts/map/${n.workout.map}`;return(e,n)=>((0,t.wg)(),(0,t.iD)("div",{class:(0,o.C_)(["static-map",{"display-hover":(0,a.SU)(r)}])},[(0,a.SU)(r)?((0,t.wg)(),(0,t.iD)("img",{key:0,src:l,alt:""})):((0,t.wg)(),(0,t.iD)("div",{key:1,class:"bg-map-image",style:(0,o.j5)({backgroundImage:`url(${l})`})},null,4)),s],2))}});const c=l;var u=c},436:function(e,n,r){"use strict";r.d(n,{Z:function(){return y}});var t=r(6252),o=r(3577);const a={class:"start-chart"},i={key:0},s={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],m=["checked"],d={key:0},E=["checked"],_={key:1},T=["checked"],S={key:2},p=["checked"];function A(e,n,r,A,z,O){const I=(0,t.up)("Chart");return(0,t.wg)(),(0,t.iD)("div",a,[e.hideChartIfNoData&&e.emptyStats?((0,t.wg)(),(0,t.iD)("div",i,(0,o.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,t.wg)(),(0,t.iD)("div",s,[(0,t._)("div",l,[(0,t._)("label",null,[(0,t._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:n[0]||(n[0]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,c),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.DISTANCE")),1)]),(0,t._)("label",null,[(0,t._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:n[1]||(n[1]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,u),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.DURATION")),1)]),(0,t._)("label",null,[(0,t._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:n[2]||(n[2]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,m),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,t.wg)(),(0,t.iD)("label",d,[(0,t._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:n[3]||(n[3]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,E),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,t.kq)("",!0),e.fullStats?((0,t.wg)(),(0,t.iD)("label",_,[(0,t._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:n[4]||(n[4]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,T),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.ASCENT")),1)])):(0,t.kq)("",!0),e.fullStats?((0,t.wg)(),(0,t.iD)("label",S,[(0,t._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:n[5]||(n[5]=(...n)=>e.updateDisplayData&&e.updateDisplayData(...n))},null,8,p),(0,t.Uk)(" "+(0,o.zw)(e.$t("workouts.DESCENT")),1)])):(0,t.kq)("",!0)]),e.labels.length>0?((0,t.wg)(),(0,t.j4)(I,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,t.kq)("",!0)]))])}var z=r(6761),O=r(2262);const I={class:"chart"};function R(e,n,r,o,a,i){const s=(0,t.up)("BarChart");return(0,t.wg)(),(0,t.iD)("div",I,[(0,t.Wm)(s,(0,t.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var N=r(6518),g=r(9150);const U=(e,n=!1)=>{let r="0";n&&(r=String(Math.floor(e/86400)),e%=86400);const t=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const o=String(Math.floor(e/60)).padStart(2,"0"),a=String(e%60).padStart(2,"0");return n?`${"0"===r?"":`${r}d `}${"00"===t?"":`${t}h `}${o}m ${a}s`:`${"00"===t?"":`${t}:`}${o}:${a}`};var C=r(3649);const D=(e,n,r,t=!0,o="km")=>{const a=r?C.Dl[o].defaultTarget:o;switch(e){case"average_speed":return`${n.toFixed(2)} ${a}/h`;case"total_duration":return U(n,t);case"total_distance":case"total_ascent":case"total_descent":return`${n.toFixed(2)} ${a}`;default:return n.toString()}};var v=(0,t.aZ)({name:"Chart",components:{BarChart:N.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:n}=(0,g.QT)();function r(e){return isNaN(e)?0:+e}function o(e,n){return r(e)+r(n)}function a(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const i=(0,t.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(0,t.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(n){return D(e.displayedData,+n,e.useImperialUnits,!1,a(e.displayedData))}},afterFit:function(n){n.width=e.fullStats?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(n){return"average_speed"===e.displayedData&&n.dataset.backgroundColor?n.dataset.backgroundColor[0]:"#666666"},rotation:function(n){return e.fullStats&&n.chart.chartArea.width<580?310:0},display:function(n){return!(e.fullStats&&n.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(n,r){if("average_speed"===e.displayedData)return D(e.displayedData,n,e.useImperialUnits,!1);{const n=r.chart.data.datasets.map((e=>e.data[r.dataIndex])).reduce(((e,n)=>o(e,n)),0);return r.datasetIndex===e.displayedSportIds.length-1&&n>0?D(e.displayedData,n,e.useImperialUnits,!1,a(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(r){let t=n(`sports.${r.dataset.label}.LABEL`)||"";return t&&(t+=": "),null!==r.parsed.y&&(t+=D(e.displayedData,r.parsed.y,e.useImperialUnits,!0,a(e.displayedData))),t},footer:function(r){if("average_speed"===e.displayedData)return"";let t=0;return r.map((e=>{t+=e.parsed.y})),`${n("common.TOTAL")}: `+D(e.displayedData,t,e.useImperialUnits,!0,a(e.displayedData))}}}}}))),{barChartProps:l}=(0,N.xZ)({chartData:i,options:s});return{barChartProps:l}}}),h=r(3744);const f=(0,h.Z)(v,[["render",R]]);var P=f,L=r(5801),w=r(9917),k=r(9318),b=(0,t.aZ)({name:"UserMonthStats",components:{Chart:P},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const n=(0,w.o)(),r=(0,O.iH)("total_distance"),o=(0,t.Fl)((()=>n.getters[L.gu.GETTERS.USER_STATS])),a=(0,t.Fl)((()=>(0,k.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,o.value,e.user.imperial_units,e.user.date_format)));function i(r){n.dispatch(L.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:r})}function s(e){r.value=e.target.name}function l(e,n){return{from:(0,z.Z)(e.start,"yyyy-MM-dd"),to:(0,z.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(n.weekm?"m":""):e.duration}}return(0,t.wF)((()=>i(l(e.chartParams,e.user)))),(0,t.YP)((()=>e.chartParams),(async n=>{i(l(n,e.user))})),{datasets:(0,t.Fl)((()=>a.value.datasets[r.value])),labels:(0,t.Fl)((()=>a.value.labels)),emptyStats:(0,t.Fl)((()=>0===Object.keys(o.value).length)),displayedData:r,updateDisplayData:s}}});const M=(0,h.Z)(b,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=M},2179:function(e,n,r){"use strict";r.d(n,{Z:function(){return g}});var t=r(6252),o=r(2262),a=r(3577),i=r(6595),s=r(5801),l=r(9917);const c={class:"box user-header"},u={class:"user-details"},m={class:"user-name"},d={class:"user-stats"},E={class:"user-stat"},_={class:"stat-number"},T={class:"stat-label"},S={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},z={class:"stat-number"},O={class:"stat-label"};var I=(0,t.aZ)({__name:"UserHeader",props:{user:null},setup(e){const n=e,{user:r}=(0,o.BK)(n),I=(0,l.o)(),R=(0,t.Fl)((()=>I.getters[s.YN.GETTERS.AUTH_USER_PROFILE]));return(e,n)=>{const s=(0,t.up)("Distance");return(0,t.wg)(),(0,t.iD)("div",c,[(0,t.Wm)(i.Z,{user:(0,o.SU)(r)},null,8,["user"]),(0,t._)("div",u,[(0,t._)("div",m,(0,a.zw)((0,o.SU)(r).username),1),(0,t._)("div",d,[(0,t._)("div",E,[(0,t._)("span",_,(0,a.zw)((0,o.SU)(r).nb_workouts),1),(0,t._)("span",T,(0,a.zw)(e.$t("workouts.WORKOUT",(0,o.SU)(r).nb_workouts)),1)]),(0,t._)("div",S,[(0,t.Wm)(s,{distance:(0,o.SU)(r).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,o.SU)(R).imperial_units},null,8,["distance","useImperialUnits"]),(0,t._)("span",p,(0,a.zw)((0,o.SU)(R).imperial_units?"miles":"km"),1)]),(0,t._)("div",A,[(0,t._)("span",z,(0,a.zw)((0,o.SU)(r).nb_sports),1),(0,t._)("span",O,(0,a.zw)(e.$t("workouts.SPORT",(0,o.SU)(r).nb_sports)),1)])])])])}}}),R=r(3744);const N=(0,R.Z)(I,[["__scopeId","data-v-20291951"]]);var g=N},1585:function(e,n,r){"use strict";r.d(n,{Z:function(){return v}});r(7658);var t=r(6252),o=r(2262),a=r(3577),i=r(9963),s=r(6761),l=r(5801),c=r(9917),u=r(6558),m=r(6287);const d={id:"user-infos",class:"description-list"},E={key:1,class:"info-box success-message"},_={key:4,class:"email-form form-box"},T={class:"form-items",for:"email"},S={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},z=["onClick"],O={key:5},I={class:"user-bio"},R={key:0,class:"profile-buttons"},N=["onClick"],g={key:1,class:"profile-buttons"};var U=(0,t.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const n=e,r=(0,c.o)(),{user:U,fromAdmin:C}=(0,o.BK)(n),D=(0,t.Fl)((()=>r.getters[l.SY.GETTERS.LANGUAGE])),v=(0,t.Fl)((()=>r.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),h=(0,t.Fl)((()=>n.user.created_at?(0,u.p6)(n.user.created_at,v.value.timezone,v.value.date_format):"")),f=(0,t.Fl)((()=>n.user.birth_date?(0,s.Z)(new Date(n.user.birth_date),`${(0,u.mh)(v.value.date_format,D.value)}`,{locale:m.v1[D.value]}):"")),P=(0,t.Fl)((()=>r.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),L=(0,t.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),w=(0,t.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),k=(0,o.iH)(""),b=(0,o.iH)(!1),M=(0,o.iH)(!1),y=(0,o.iH)(""),G=(0,o.iH)("");function F(e){k.value=e,""!==e&&r.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){r.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function Y(e){G.value="password-reset",r.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function x(e){r.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function B(){V(),y.value=U.value.email_to_confirm?U.value.email_to_confirm:"",M.value=!0,G.value="email-update"}function K(){y.value="",M.value=!1}function H(e){r.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function V(){r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,t.Ah)((()=>V())),(0,t.YP)((()=>P.value),(e=>{e&&(F(""),K())})),(e,n)=>{const r=(0,t.up)("Modal"),s=(0,t.up)("AlertMessage"),l=(0,t.up)("ErrorMessage");return(0,t.wg)(),(0,t.iD)("div",d,[k.value?((0,t.wg)(),(0,t.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===k.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,o.SU)(U).username,onConfirmAction:n[0]||(n[0]=e=>"delete"===k.value?W((0,o.SU)(U).username):Y((0,o.SU)(U).username)),onCancelAction:n[1]||(n[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,t.kq)("",!0),(0,o.SU)(P)?((0,t.wg)(),(0,t.iD)("div",E,(0,a.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,t.kq)("",!0),(0,o.SU)(U).is_active?(0,t.kq)("",!0):((0,t.wg)(),(0,t.j4)(s,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,o.SU)(L)?((0,t.wg)(),(0,t.j4)(l,{key:3,message:(0,o.SU)(L)},null,8,["message"])):(0,t.kq)("",!0),M.value?((0,t.wg)(),(0,t.iD)("div",_,[(0,t._)("form",{class:(0,a.C_)({errors:b.value}),onSubmit:n[4]||(n[4]=(0,i.iM)((e=>H((0,o.SU)(U).username)),["prevent"]))},[(0,t._)("label",T,[(0,t.Uk)((0,a.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,t.wy)((0,t._)("input",{id:"email",type:"email","onUpdate:modelValue":n[2]||(n[2]=e=>(0,o.SU)(U).email=e),disabled:""},null,512),[[i.nr,(0,o.SU)(U).email]])]),(0,t._)("label",S,[(0,t.Uk)((0,a.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,t.wy)((0,t._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":n[3]||(n[3]=e=>y.value=e)},null,512),[[i.nr,y.value]])]),(0,t._)("div",p,[(0,t._)("button",A,(0,a.zw)(e.$t("buttons.SUBMIT")),1),(0,t._)("button",{class:"cancel",onClick:(0,i.iM)(K,["prevent"])},(0,a.zw)(e.$t("buttons.CANCEL")),9,z)])],34)])):((0,t.wg)(),(0,t.iD)("div",O,[(0,t._)("dl",null,[(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(h)),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(U).first_name),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(U).last_name),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(f)),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,t._)("dd",null,(0,a.zw)((0,o.SU)(U).location),1),(0,t._)("dt",null,(0,a.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,t._)("dd",I,(0,a.zw)((0,o.SU)(U).bio),1)]),(0,o.SU)(C)?((0,t.wg)(),(0,t.iD)("div",R,[(0,o.SU)(v).username!==(0,o.SU)(U).username?((0,t.wg)(),(0,t.iD)("button",{key:0,class:"danger",onClick:n[5]||(n[5]=(0,i.iM)((e=>F("delete")),["prevent"]))},(0,a.zw)(e.$t("admin.DELETE_USER")),1)):(0,t.kq)("",!0),(0,o.SU)(U).is_active?(0,t.kq)("",!0):((0,t.wg)(),(0,t.iD)("button",{key:1,onClick:n[6]||(n[6]=(0,i.iM)((e=>x((0,o.SU)(U).username)),["prevent"]))},(0,a.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,o.SU)(v).username!==(0,o.SU)(U).username?((0,t.wg)(),(0,t.iD)("button",{key:2,onClick:(0,i.iM)(B,["prevent"])},(0,a.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,N)):(0,t.kq)("",!0),(0,o.SU)(v).username!==(0,o.SU)(U).username&&(0,o.SU)(w).is_email_sending_enabled?((0,t.wg)(),(0,t.iD)("button",{key:3,onClick:n[7]||(n[7]=(0,i.iM)((e=>F("reset")),["prevent"]))},(0,a.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,t.kq)("",!0),(0,t._)("button",{onClick:n[8]||(n[8]=n=>e.$router.go(-1))},(0,a.zw)(e.$t("buttons.BACK")),1)])):((0,t.wg)(),(0,t.iD)("div",g,[(0,t._)("button",{onClick:n[9]||(n[9]=n=>e.$router.push("/profile/edit"))},(0,a.zw)(e.$t("user.PROFILE.EDIT")),1),(0,t._)("button",{onClick:n[10]||(n[10]=n=>e.$router.push("/"))},(0,a.zw)(e.$t("common.HOME")),1)]))]))])}}}),C=r(3744);const D=(0,C.Z)(U,[["__scopeId","data-v-217519af"]]);var v=D},776:function(e,n,r){"use strict";r.d(n,{Z:function(){return L}});var t=r(6252),o=r(3577),a=r(2262),i=r(9963),s=r(2201),l=r(8403),c=r(5801),u=r(9917);const m=e=>((0,t.dD)("data-v-4f112f24"),e=e(),(0,t.Cn)(),e),d={id:"user-form"},E={key:2,class:"info-box success-message"},_={class:"form-items"},T=["disabled","placeholder"],S={key:1,class:"form-info"},p=m((()=>(0,t._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],z={key:3,class:"form-info"},O=m((()=>(0,t._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I={key:5,for:"accepted_policy",class:"accepted_policy"},R=["disabled"],N=["disabled"],g={key:3},U={key:0},C={key:4},D={class:"account"},v={key:5};var h=(0,t.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const n=e,r=(0,s.yj)(),m=(0,u.o)(),{action:h}=(0,a.BK)(n),f=(0,a.qj)({username:"",email:"",password:"",accepted_policy:!1}),P=(0,t.Fl)((()=>W(n.action))),L=(0,t.Fl)((()=>m.getters[c.SY.GETTERS.ERROR_MESSAGES])),w=(0,t.Fl)((()=>m.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),k=(0,t.Fl)((()=>m.getters[c.YN.GETTERS.IS_SUCCESS])),b=(0,t.Fl)((()=>m.getters[c.SY.GETTERS.APP_CONFIG])),M=(0,t.Fl)((()=>m.getters[c.SY.GETTERS.LANGUAGE])),y=(0,t.Fl)((()=>"register"===n.action&&!b.value.is_registration_enabled)),G=(0,t.Fl)((()=>["reset-request","account-confirmation-resend"].includes(n.action)&&!b.value.is_email_sending_enabled)),F=(0,a.iH)(!1);function W(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${n.action.toUpperCase()}`}}function Y(){F.value=!0}function x(e){f.password=e}function B(e){switch(e){case"reset":return n.token?m.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:f.password,token:n.token}):m.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return m.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:f.email});case"account-confirmation-resend":return m.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:f.email});default:f["language"]=M.value,m.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:f,redirectUrl:r.query.from})}}function K(){f.username="",f.email="",f.password="",f.accepted_policy=!1}return(0,t.Ah)((()=>m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,t.YP)((()=>r.path),(async()=>{m.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),m.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),m.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),F.value=!1,K()})),(e,n)=>{const r=(0,t.up)("AlertMessage"),s=(0,t.up)("router-link"),c=(0,t.up)("i18n-t"),u=(0,t.up)("ErrorMessage");return(0,t.wg)(),(0,t.iD)("div",{id:"user-auth-form",class:(0,o.C_)(`${["reset","reset-request"].includes((0,a.SU)(h))?(0,a.SU)(h):"user-form"}`)},[(0,t._)("div",d,[(0,t._)("div",{class:(0,o.C_)(["form-box",{disabled:(0,a.SU)(y)}])},[(0,a.SU)(y)?((0,t.wg)(),(0,t.j4)(r,{key:0,message:"user.REGISTER_DISABLED"})):(0,t.kq)("",!0),(0,a.SU)(G)?((0,t.wg)(),(0,t.j4)(r,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,t.kq)("",!0),(0,a.SU)(k)||(0,a.SU)(w)?((0,t.wg)(),(0,t.iD)("div",E,(0,o.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,a.SU)(w)?"REGISTRATION"+((0,a.SU)(b).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,t.kq)("",!0),(0,t._)("form",{class:(0,o.C_)({errors:F.value}),onSubmit:n[3]||(n[3]=(0,i.iM)((e=>B((0,a.SU)(h))),["prevent"]))},[(0,t._)("div",_,["register"===(0,a.SU)(h)?(0,t.wy)(((0,t.wg)(),(0,t.iD)("input",{key:0,id:"username",disabled:(0,a.SU)(y),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:Y,"onUpdate:modelValue":n[0]||(n[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,T)),[[i.nr,f.username]]):(0,t.kq)("",!0),"register"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("div",S,[p,(0,t.Uk)(" "+(0,o.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,t.kq)("",!0),"reset"!==(0,a.SU)(h)?(0,t.wy)(((0,t.wg)(),(0,t.iD)("input",{key:2,id:"email",disabled:(0,a.SU)(y)||(0,a.SU)(G),required:"",onInvalid:Y,type:"email","onUpdate:modelValue":n[1]||(n[1]=e=>f.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[i.nr,f.email]]):(0,t.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,a.SU)(h))?((0,t.wg)(),(0,t.iD)("div",z,[O,(0,t.Uk)(" "+(0,o.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,t.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,a.SU)(h))?(0,t.kq)("",!0):((0,t.wg)(),(0,t.j4)(l.Z,{key:4,disabled:(0,a.SU)(y),required:!0,placeholder:"reset"===(0,a.SU)(h)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,a.SU)(h)),onUpdatePassword:x,onPasswordError:Y},null,8,["disabled","placeholder","password","checkStrength"])),"register"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("label",I,[(0,t.wy)((0,t._)("input",{type:"checkbox",id:"accepted_policy",disabled:(0,a.SU)(y),required:"",onInvalid:Y,"onUpdate:modelValue":n[2]||(n[2]=e=>f.accepted_policy=e)},null,40,R),[[i.e8,f.accepted_policy]]),(0,t._)("span",null,[(0,t.Wm)(c,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:(0,t.w5)((()=>[(0,t.Wm)(s,{to:"/privacy-policy",target:"_blank"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("privacy_policy.TITLE")),1)])),_:1})])),_:1})])])):(0,t.kq)("",!0)]),(0,t._)("button",{type:"submit",disabled:(0,a.SU)(y)||(0,a.SU)(G)},(0,o.zw)(e.$t((0,a.SU)(P))),9,N)],34),"login"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("div",g,[(0,t.Wm)(s,{class:"links",to:"/register"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,a.SU)(b).is_email_sending_enabled?((0,t.wg)(),(0,t.iD)("span",U,"-")):(0,t.kq)("",!0),(0,a.SU)(b).is_email_sending_enabled?((0,t.wg)(),(0,t.j4)(s,{key:1,class:"links",to:"/password-reset/request"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,t.kq)("",!0)])):(0,t.kq)("",!0),"register"===(0,a.SU)(h)?((0,t.wg)(),(0,t.iD)("div",C,[(0,t._)("span",D,(0,o.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,t.Wm)(s,{class:"links",to:"/login"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,t.kq)("",!0),["login","register"].includes((0,a.SU)(h))&&(0,a.SU)(b).is_email_sending_enabled?((0,t.wg)(),(0,t.iD)("div",v,[(0,t.Wm)(s,{class:"links",to:"/account-confirmation/resend"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,t.kq)("",!0),(0,a.SU)(L)?((0,t.wg)(),(0,t.j4)(u,{key:6,message:(0,a.SU)(L)},null,8,["message"])):(0,t.kq)("",!0)],2)])],2)}}}),f=r(3744);const P=(0,f.Z)(h,[["__scopeId","data-v-4f112f24"]]);var L=P},6595:function(e,n,r){"use strict";r.d(n,{Z:function(){return E}});var t=r(6252),o=r(2262),a=r(2024);const i={class:"user-picture"},s=["alt","src"],l={key:1,class:"no-picture"},c=(0,t._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var m=(0,t.aZ)({__name:"UserPicture",props:{user:null},setup(e){const n=e,r=(0,t.Fl)((()=>n.user.picture?`${(0,a.k)()}users/${n.user.username}/picture?${Date.now()}`:""));return(e,n)=>((0,t.wg)(),(0,t.iD)("div",i,[""!==(0,o.SU)(r)?((0,t.wg)(),(0,t.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,o.SU)(r)},null,8,s)):((0,t.wg)(),(0,t.iD)("div",l,u))]))}});const d=m;var E=d},5630:function(e,n,r){"use strict";r.d(n,{Z:function(){return u}});var t=r(6252),o=r(3577);const a={class:"no-workouts box"};function i(e,n){const r=(0,t.up)("router-link");return(0,t.wg)(),(0,t.iD)("div",a,[(0,t._)("div",null,[(0,t.Uk)((0,o.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,t.Wm)(r,{to:"/workouts/add"},{default:(0,t.w5)((()=>[(0,t.Uk)((0,o.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var s=r(3744);const l={},c=(0,s.Z)(l,[["render",i],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,n,r){var t={"./de/de.ts":3010,"./en/en.ts":2709,"./es/es.ts":3429,"./fr/fr.ts":5479,"./gl/gl.ts":6338,"./it/it.ts":6013,"./nb/nb.ts":1901,"./nl/nl.ts":3726,"./pl/pl.ts":5381};function o(e){var n=a(e);return r(n)}function a(e){if(!r.o(t,e)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t[e]}o.keys=function(){return Object.keys(t)},o.resolve=a,e.exports=o,o.id=4612},2868:function(){},4777:function(){},9830:function(){},209:function(){},7414:function(){}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var a=n[t]={exports:{}};return e[t].call(a.exports,a,a.exports,r),a.exports}r.m=e,function(){var e=[];r.O=function(n,t,o,a){if(!t){var i=1/0;for(u=0;u=a)&&Object.keys(r.O).every((function(e){return r.O[e](t[l])}))?t.splice(l--,1):(s=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[t,o,a]}}(),function(){r.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(n,{a:n}),n}}(),function(){var e,n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};r.t=function(t,o){if(1&o&&(t=this(t)),8&o)return t;if("object"===typeof t&&t){if(4&o&&t.__esModule)return t;if(16&o&&"function"===typeof t.then)return t}var a=Object.create(null);r.r(a);var i={};e=e||[null,n({}),n([]),n(n)];for(var s=2&o&&t;"object"==typeof s&&!~e.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((function(e){i[e]=function(){return t[e]}}));return i["default"]=function(){return t},r.d(a,i),a}}(),function(){r.d=function(e,n){for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}}(),function(){r.f={},r.e=function(e){return Promise.all(Object.keys(r.f).reduce((function(n,t){return r.f[t](e,n),n}),[]))}}(),function(){r.u=function(e){return"static/js/"+({24:"reset",193:"statistics",222:"password.fr",261:"password.en",328:"admin",394:"password.es",401:"workouts",802:"password.it",845:"profile",881:"password",940:"password.de"}[e]||e)+"."+{24:"f26118ce",93:"df2db3a3",193:"ec64386f",222:"eca0ec1d",243:"03fdd6a3",261:"4b788215",328:"757bc8af",394:"0fdfd7ae",401:"eea9f0ee",431:"e117da19",633:"3c920340",802:"9fae932a",845:"e3100ccf",858:"8fd585ad",881:"b8efc50f",940:"d164c0cb"}[e]+".js"}}(),function(){r.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"66742279",845:"567acd35"}[e]+".css"}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)}}(),function(){var e={},n="fittrackee_client:";r.l=function(t,o,a,i){if(e[t])e[t].push(o);else{var s,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled' && error.response) {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['pl'] // to update after translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über diese Instanz\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellcode\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wetterdaten von:\"])}\n}","export default {\n \"ABOUT\": {\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zusätzliche Informationen, die für deine Nutzer nützlich sein könnten. Markdown-Syntax wird unterstützt.\"])},\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Detaillierte Instanz-Informationen\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein Text eingegeben\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"PRIVACY_POLICY_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge deine eigene Datenschutzrichtlinie hinzu oder leer lassen, um die standardmäßige zu verwenden. Markdown-Syntax wird unterstützt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adminstatus\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accountstatus\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsanzahl\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte hinzufügen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte entfernen\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])}\n}","export default {\n \"ERROR\": {\n \" is missing in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"-Element fehlt in der .gpx-Datei.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.\"])},\n \"completed request already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine Anfrage zum vollständigen Export existiert bereits.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail: Eine gültige E-Mail muss angegeben werden.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Speichern des Workouts.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"gpx file is invalid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die .gpx-Datei ist ungültig.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"no tracks in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein Track () in der .gpx-Datei.\"])},\n \"ongoing request exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine Anfrage zum Datenexport existiert bereits.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Es tut mir leid, der Benutzername ist schon vergeben.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportart existiert nicht.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"REQUEST_DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Daten-Export anfragen\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pro Seite\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insgesamt\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Monat\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bei der Anwendung scheinen einige Probleme aufgetreten zu sein. Bitte versuche es später noch einmal oder kontaktiere den Administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seite nicht gefunden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training nicht gefunden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etwas lief schief\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth
-Endpunkte\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth
-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users
-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users
-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts
-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts
-Endpunkte\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst die Löschung deines Kontos jederzeit anfragen, indem du (nach dem Anmelden) zu dieser Adresse gehst und auf den „Mein Konto löschen“-Button in der Accountbearbeitung klickst.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account löschen\"])}\n },\n \"CHANGES_TO_OUR_PRIVACY_POLICY\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn wir uns dazu entschließen, unsere Datenschutzrichtlinie zu ändern, werden wir die Änderungen auf dieser Seite posten.\\n\\nDieses Dokument ist unter der [CC-BY-SA-Lizenz](https://creativecommons.org/licenses/by-sa/4.0/). Angepasst von der Datenschutzrichtlinie von [Discourse](https://github.com/discourse/discourse).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Änderungen unserer Datenschutzrichtlinie\"])}\n },\n \"DATA_COLLECTED\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die folgenden Informationen werden gesammelt:\\n- Accountinformationen (Benutzername, E-Mail-Adresse und Password). Du kannst auch zusätzliche Profilinformationen wie Vor- und Nachname, Geburtsdatum, Standort und Biographie eingeben und ein Profilbild hochladen.\\n- [GPX](https://de.wikipedia.org/wiki/GPS_Exchange_Format)-Dateien. Diese Dateien enthalten Daten, die mit deinen Aktivitäten zusammenhängen (geographische Koordinaten, Datum, Distanz, Dauer, maximale und durchschnittliche Geschwindigkeit, Höhe, Pulsrate...). Wenn du einige dieser Daten nicht preisgeben möchtest, kannst du die Dateien vor dem Hochladen bereinigen oder Workouts ohne GPX-Dateien hochladen.\\n- Workout-Daten (Sportart, Titel, Datum, Dauer, Distanz, An- und Abstieg, Notizen).\\n- Technische Informationen (Browser und Betriebssystem).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Welche Informationen sammeln wir?\"])}\n },\n \"INFORMATION_DISCLOSURE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wir verkaufen deine personenbezogenen Informationen nicht und übertragen sie auch nicht an Dritte.\\n\\nDies enthält nicht vertrauliche Dritte die uns beim Betreiben dieser Seiten helfen, solange diese Parteien zustimmen, die Informationen vertraulich zu behandeln.\\n\\nWir können auch Informationen preisgeben, wenn wir denken, dass dieses Preisgeben angemessen ist, um mit dem Gesetz übereinzustimmen, unsere Seitenrichtlinien durchzusetzen oder um unsere oder die Rechte und Sicherheit anderer zu schützen.\\n\\nWenn du einer Anwendung von Dritten die Berechtigung gibst, deinen Account zu nutzen, abhängig von den Berechtigungen, denen du zustimmst, können sie möglicherweise auf Profilinformationen oder Workouts zugreifen. Anwendungen können niemals dein Passwort einsehen.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geben wir Informationen an Außenstehende weiter?\"])}\n },\n \"INFORMATION_PROTECTION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Informationen zu gewährleisten, wenn du diese eingibst oder auf sie zugreifst.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wie schützen wir deinen Informationen?\"])}\n },\n \"INFORMATION_USAGE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Diese gesammelten Informationen können verwendet werden, um die Kernfunktionen von **FitTrackee** zu gewährleisten:\\n- GPX-Dateien werden verwendet, um Workouts zu erstellen, Tracks auf Karten (mit [OpenStreetMap](https://www.openstreetmap.org) und dem konfigurierten Tile-Server) und Diagrammen darzustellen, Karten-Thumbnails zu erstellen, Rekorde zu berechnen und Wetterdaten zu erhalten (wenn ein Wetteranbieter gesetzt wurde).\\n- Profilinformationen und Workouts werden nicht öffentlich angezeigt. Ein registrierter Nutzen kann nur seine eigenen Workouts anzeigen.\\n- Die E-Mail-Adresse, die du angibst, kann verwendet werden, um dir Informationen oder Bestätigungen zu Accountänderungen zu schicken.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Für was verwenden wir deine Informationen?\"])}\n },\n \"SITE_USAGE_BY_CHILDREN\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn dieser Server in der EU oder EEA steht: Unsere Seite und Services sind für Personen, die mindestens 16 Jahre alt sind. Wenn du unter 16 bist, benutze diese Seite gemäß den Bestimmungen der [DSGVO](https://de.wikipedia.org/wiki/Datenschutz-Grundverordnung) (Datenschutz-Grundverordnung) nicht.\\n\\nWenn dieser Server in den USA steht: Unsere Seite und Services sind für Personen, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, benutze diese Seite gemäß den Bestimmungen der [COPPA](https://de.wikipedia.org/wiki/Children%E2%80%99s_Online_Privacy_Protection_Act) (Children’s Online Privacy Protection Act) nicht.\\n\\nGesetzliche Anforderungen können in anderen Rechtsbereichen anders sein.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seitennutzung durch Kinder\"])}\n },\n \"YOUR_CONSENT\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durch das Benutzen unserer Seite stimmst du der Datenschutzrichtlinie der Webseite zu.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deine Zustimmung\"])}\n }\n },\n \"LAST_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letztes Update\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datenschutzrichtlinie\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergsteigen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jahr\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du keine Anweisungen erhalten?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datenexport\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Archiv herunterladen\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"generiere Link...\"])},\n \"ONLY_ONE_EXPORT_PER_DAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst alle 24 Stunden ein Archiv anfragen\"])},\n \"STATUS\": {\n \"errored\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fehlgeschlagen (bitte frage einen anderen Export an)\"])},\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Arbeit...\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ich möchte meinen Account löschen\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LAST_PRIVACY_POLICY_TO_VALIDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Datenschutzrichtlinie wurde aktualisiert, bitte \", _interpolate(_list(0)), \" sie vor dem Fortfahren.\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neues Passwort\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Nutzer gefunden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe mehr als nur den ersten Buchstaben groß.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Dein Passwort wurde aktualisiert. Klicke \", _interpolate(_list(0)), \" um dich anzumelden.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontoausgabe\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ELEVATION_CHART_START\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhendiagramm startet bei\"])},\n \"MIN_ALT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimale Höhe\"])},\n \"ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Null\"])}\n },\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nachname\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ort\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildausgabe\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PRIVACY-POLICY_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datenschutzrichtlinie\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farbe\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vom Admin deaktiviert\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aktiv\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeitsschwellenwert für Stopp\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich erstellt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PRIVACY-POLICY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datenschutzrichtlinie\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km, m/s, °C)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gefiltert\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchstgeschwindigkeitsstrategie\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rau\"])}\n }\n },\n \"READ_AND_ACCEPT_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ich habe die \", _interpolate(_list(0)), \" gelesen und stimme ihr zu.\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"REVIEW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"überprüfen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Du hast die \", _interpolate(_list(0)), \" akzeptiert.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training hinzufügen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aufstieg\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zurück zum Training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abstieg\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zeige Filter\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entfernung\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dauer\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training bearbeiten\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhe\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ende\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Von\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx Datei\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberge Filter\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beide Höhenwerte müssen angegeben werden und größer oder gleich 0 sein.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Distanz muss größer als 0 sein\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Dauer muss größer als 0 Sekunden sein\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letzte Trainings\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lade mehr Trainings\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maximale Höhe\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximale Dateianzahl\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximalgröße\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"minimale Höhe\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Daten aus gpx, ohne Bereinigung\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enthält keinen Ordner\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Karte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Anmerkungen\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Aufzeichnungen.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Trainings.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pausen\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Aufzeichnung\"]), _normalize([\"Aufzeichnungen\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiteste Entfernung\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klarer Tag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klare Nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wolkig\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nebel\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkter Tag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkte Nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeregen\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schnee\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luftfeuchtigkeit\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temperatur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Training\"]), _normalize([\"Trainings\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsdatum\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du dieses Training löschen möchtest?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip Datei\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oder .zip Datei mit .gpx Dateien\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"About this instance\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weather data from:\"])}\n}","export default {\n \"ABOUT\": {\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Any additional information that may be useful to your users. Markdown syntax can be used.\"])},\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Detailed instance information\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No text entered\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"PRIVACY_POLICY_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add your own privacy policy or leave blank to use the default one. Markdown syntax can be used.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])}\n}","export default {\n \"ERROR\": {\n \" is missing in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" element is missing in .gpx file.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least one file in zip archive exceeds size limit, please check the archive.\"])},\n \"completed request already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A completed export request already exists.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when saving workout.\"])},\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 \"gpx file is invalid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The .gpx file is invalid.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"no tracks in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No track () in .gpx file.\"])},\n \"ongoing request exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A data export request already exists.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The number of files in the archive exceeds the limit.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REQUEST_DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Request data export\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues. Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth
endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth
endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users
endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users
endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts
endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts
endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can request the deletion of your account at any time by going to this address (after logging in) and clicking on \\\"Delete My Account\\\" button in your account edition.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account deletion\"])}\n },\n \"CHANGES_TO_OUR_PRIVACY_POLICY\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If we decide to change our privacy policy, we will post those changes on this page.\\n\\nThis document is under [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) license. Originally adapted from the [Discourse](https://github.com/discourse/discourse) privacy policy.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changes to our Privacy Policy\"])}\n },\n \"DATA_COLLECTED\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The following information are collected:\\n- Account information (username, e-mail address and password). You may also enter additional profile information such as a first name, last name, birth date, location, biography and upload a profile picture.\\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) files. These files contain data related to your activities (geographic coordinates, date, distance, duration, max and average speeds, elevation, heart rate…). If you don't want to expose some data, clean them before upload or add workouts without GPX files.\\n- Workout data (sport, title, date, duration, distance, ascent, descent, notes).\\n- Technical information (browser name and operating system).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"What information do we collect?\"])}\n },\n \"INFORMATION_DISCLOSURE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"We do not sell, trade or otherwise transfer to outside parties your personally identifiable information.\\n\\nThis does not include trusted third parties who assist us in operating our site and servicing you, so long as those parties agree to keep this information confidential. \\n\\nWe may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.\\n\\nWhen you authorize a third-party application to use your account, depending on the scope of permissions you approve, it may access your profile information or your workouts. Applications can never access your password.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do we disclose any information to outside parties?\"])}\n },\n \"INFORMATION_PROTECTION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"How do we protect your information?\"])}\n },\n \"INFORMATION_USAGE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Any of the information we collect from you may be used to provide the core functionality of **FitTrackee**:\\n- GPX files are used to create workouts, display tracks on map (with [OpenStreetMap](https://www.openstreetmap.org) and the configured tile server) and charts, generate map thumbnails, calculate records and get weather data (if a weather provider is set).\\n- Profile information and workouts are not displayed publicly. A registered user can only display his own workouts.\\n- The email address you provide may be used to send you information or confirm your account modifications.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"What do we use your information for?\"])}\n },\n \"SITE_USAGE_BY_CHILDREN\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If this server is in the EU or the EEA: Our site and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation) do not use this site.\\n\\nIf this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act) do not use this site.\\n\\nLaw requirements can be different if this server is in another jurisdiction.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Site usage by children\"])}\n },\n \"YOUR_CONSENT\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"By using our site, you consent to our web site privacy policy.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your Consent\"])}\n }\n },\n \"LAST_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last update\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"privacy policy\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountaineering\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data export\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download archive\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"generating link...\"])},\n \"ONLY_ONE_EXPORT_PER_DAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can request an archive by 24 hours\"])},\n \"STATUS\": {\n \"errored\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"errored (please request another export)\"])},\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in progres...\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I want to delete my account\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_PRIVACY_POLICY_TO_VALIDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The privacy policy has been updated, please \", _interpolate(_list(0)), \" it before proceeding.\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ELEVATION_CHART_START\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elevation chart starts at\"])},\n \"MIN_ALT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimum altitude\"])},\n \"ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zero\"])}\n },\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PRIVACY-POLICY_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy policy\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PRIVACY-POLICY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"privacy policy\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km, m/s, °C)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtered\"])},\n \"HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If filtered, it excludes extreme values (which may be GPS errors) when calculating the maximum speed.\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GPX max speed strategy\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raw\"])}\n }\n },\n \"READ_AND_ACCEPT_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"I have read and agree to the \", _interpolate(_list(0)), \".\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"REVIEW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"review\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"You have accepted the \", _interpolate(_list(0)), \".\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Both elevation values must be provided and be greater than or equal to 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The distance must be greater than 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The duration must be greater than 0 seconds\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sobre esta instancia\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacta con la administración\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee es un gestor de actividades en exterior autohospedado.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"con licencia \", _interpolate(_list(0)), \" \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Código fuente\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datos meteorología:\"])}\n}","export default {\n \"ABOUT\": {\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cualquier tipo de información adicional que pueda ser útil para tus usuarios. Puedes usar Markdown.\"])},\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Información detallada sobre la instancia\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acción\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activar cuenta\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activa\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administración\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Añadir/Retirar derechos de aministración, eliminar cuenta de usuario.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aplicación\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacto por email con la administración\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Núm. máximo de ficheros en el zip\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si 0, no hay límite para los registros.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Núm. máximo de usuarios activos\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sin email de contacto\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tamaño máx. de los ficheros subidos (en Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuración de la aplicación\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tamaño máx. del fichero zip (en Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver a admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"¿Seguro que quieres eliminar la cuenta \", _interpolate(_list(0)), \"? Se borrarán todos los datos y no será reversible.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"¿Seguro que quieres restablecer la contraseña de \", _interpolate(_list(0)), \"?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email actual\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar usuario\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"El envío de email está desactivado.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activar/desactivar deportes.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuevo email\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay texto\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se ha restablecido la contraseña.\"])},\n \"PRIVACY_POLICY_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Añade tu propia política de privacidad o déjalo en blanco para usar una por defecto. Puedes usar Markdown.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualmente está desactivada la creación de cuentas.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualmente está abierta la creación de cuentas.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer contraseña\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activa\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ya existe el entrenamiento\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imagen\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etiqueta\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrar deportes\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizar la configuración de la aplicación.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizar email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"usuario\"]), _normalize([\"usuarios\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"estatus de admin\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data de registro\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tipo de cuenta\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"identificador\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"número de entramientos\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Otorgar permiso de admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirar permiso de admin\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dirección de email ha sido actualizada.\"])}\n}","export default {\n \"ERROR\": {\n \" is missing in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Falta el elemento en el archivo .gpx.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error en la red.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Inténtalo de nuevo o contacta con la administración.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Por lo menos uno de los ficheros dentro del archivo zip excede el límite de tamaño, comprueba el archivo.\"])},\n \"completed request already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ya existe una solicitud de exportación completa.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: debes proporcionar un email válido.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error al procesar el fichero gpx.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error en el procesado del gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error al obtener la configuración.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error al guardar el entrenamiento.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error al actualizar la configuración\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, inténtalo de nuevo más tarde o contacta con la administración.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, no se permiten nuevos registros.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extensión de fichero no permitida.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"El tamaño del fichero es mayor del permitido.\"])},\n \"gpx file is invalid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"El archivo .gpx no es válido.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Credenciales no válidas.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Los datos proporcionados no son válidos.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token no válido, por favor vuelve a iniciar sesión.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token no válido, inicia sesión de nuevo.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"El nuevo email tiene que ser diferente al email actual\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin fichero.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin fichero seleccionado.\"])},\n \"no tracks in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay pista () en el archivo .gpx.\"])},\n \"ongoing request exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ya existe una solicitud de exportación.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contraseña: la contraseña y la confirmación no coinciden.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Proporciona un auth token válido.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Firma caducada. Inicia sesión de nuevo.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lo sentimos, pero el nombre de usuario ya está en uso.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No existe este deporte.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cuenta creada correctamente.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"El número de ficheros en el archivo excede el límite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No existe el usuario.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Debes proporcionar un email válido para el contacto de administración\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No puedes eliminar tu cuenta, ninguna otra tiene permisos de administración.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No tienes permiso.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"siguiente\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anterior\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reenviar correo de confirmación\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorizar\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancelar\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar filtros\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar mi cuenta\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Desactivar\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activar\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtro\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acceder\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crear cuenta\"])},\n \"REQUEST_DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solicitar exportación de datos\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enviar\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"acerca de\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmación\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacto\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"día\"]), _normalize([\"días\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostrado\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentación\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aquí\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oculto\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inicio\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascenso\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descenso\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordenar\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordenar por\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"por página\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tablero\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Este mes\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Parece que hay algún problema con la aplicación. Por favor inténtalo de nuevo más tarde o contacta con la administración.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No se encuentra la página\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No se encuentra el entrenamiento\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ha habido un error\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Inténtalo de nuevo o contacta con la administración.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Añadir aplicación OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clave secreta\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descripción de la aplicación\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición en\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre de la aplicación\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirección\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ámbito\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de escritura a la aplicación configurada.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de lectura a puntos de acceso auth
.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de lectura a los puntos de acceso auth
.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de lectura a los puntos de acceso users
.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de escritura a los puntos de acceso users
.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de lectura a los puntos de acceso workouts
.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de escritura a los puntos de acceso workouts
.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de la aplicación\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aplicaciones OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aplicación creada correctamente. Asegúrate de que copias la clave secreta, no volverá a ser mostrada.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Estás seguro de que quieres eliminar esta app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La aplicación \", _interpolate(_list(0)), \" solicita:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"¿Autorizar a \", _interpolate(_list(0)), \" a usar tu cuenta?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copiar al portapapeles\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar aplicación\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Añadir una aplicación\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No se encuentra la aplicación!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sin aplicaciones\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sin descripción\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revocar todas las claves\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Estás seguro de revocar todas las claves?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Todas las claves asociadas han sido revocadas.\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puedes solicitar en cualquier momento la eliminación de tu cuenta yendo a esta dirección (tras iniciar sesión) y pulsando en el botón \\\"Eliminar mi Cuenta\\\" en los ajustes de la cuenta.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminación de la cuenta\"])}\n },\n \"CHANGES_TO_OUR_PRIVACY_POLICY\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si decidimos cambiar nuestra política de privacidad, anunciaremos los cambios en esta página.\\n\\nEste documento está bajo licencia [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptado de la política de privacidad original de [Discourse](https://github.com/discourse/discourse).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cambios en la Política de Privacidad\"])}\n },\n \"DATA_COLLECTED\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recogemos la siguiente información:\\n- Información de la cuenta (nombre de usuario, dirección de correo electrónico y contraseña). También información opcional de tu perfil como podría ser el nombre, apellido, fecha de nacimiento, localización, biografía y la imagen de perfil subida. \\n- Ficheros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estos ficheros contienen datos relacionados con tus actividades (coordenadas geográficas, fecha, distancia, duración, velocidades máxima y media, altitud, ritmo cardíaco...). Si non quieres exponer estos datos, bórralos antes de subirlos o bien añade los entrenamientos sin fichero GPX. \\n- Datos de entrenamiento (deporte, título, fecha, duranción, distancia, ascenso, descenso, notas). \\n- Información técnica (navegador y sistema operativo).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Qué información recopilamos?\"])}\n },\n \"INFORMATION_DISCLOSURE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No vendemos, negociamos o transferimos de otro modo a terceras partes los datos que te identifican personalmente.\\n\\nEsto no incluye a terceras partes que nos ayudan a gestionar nuestra web y darte servicio, siempre que esas terceras partes mantengan el compromiso de confidencialidad.\\n\\nPodríamos también liberar esta información si al hacerlo creemos que estamos cumpliendo con la ley, reforzando las políticas de nuestra web o protegiendo nuestros y vuestros derechos, propiedad o seguridad.\\n\\nCuando autorizas a una aplicación de terceros a usar tu cuenta, dependiendo del ámbito de los permisos concedidos, ésta podría acceder a la información de tu perfil o entrenamientos. Las aplicaciones nunca tienen acceso a tu contraseña.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Mostramos algún tipo de información a terceras partes externas?\"])}\n },\n \"INFORMATION_PROTECTION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Implementamos una variedad de medidas de seguridad para mantener tu información personal segura cuando escribes, envías o accedes a tu información personal.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿De qué modo protegemos tu información?\"])}\n },\n \"INFORMATION_USAGE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toda la información que recogemos de ti podría usarse para proporcionar las funciones básicas de **FitTrackee**: \\n- Los ficheros GPX se usan para crear los entrenamientos, mostrar rutas en el mapa (con [OpenStreetMap](https://www.openstreetmap.org) y el servidor de imágenes de mapa configurado) y gráficos, crear miniaturas de mapa, calcular records e obtener datos de meteorología (si se configura el servicio). \\n- Los entrenamientos e información de perfil no se muestran públicamente. Un usuario registrado sólo puede ver sus propios entrenamientos. \\n- La dirección de correo electrónico proporcionada podría utilizarse para enviarte información o para confirmar las modificaciones en tu cuenta.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Para qué utilizamos tus datos?\"])}\n },\n \"SITE_USAGE_BY_CHILDREN\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si este servidor está en la UE o el AEE: nuestra web y servicios están dirigidos a personas de al menos 16 años de edad. Si no tienes 16 años cumplidos, por requerimiento de la [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation) no uses este sitio web.\\n\\nSi este servidor está en EEUU de América: nuestra web, productos y servicios están orientados a personas de al menos 13 años de edad. Si no tienes 13 cumplidos, por requerimiento de la [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act) no uses esta web.\\n\\nLos requerimientos legales pueden ser diferentes si este servidor se encuentra en otros lugares.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uso de esta web por menores\"])}\n },\n \"YOUR_CONSENT\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Al utilizar nuestra web, aceptas la política de privacidad de nuestra web.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tu consentimiento\"])}\n }\n },\n \"LAST_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Última actualización\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"política de privacidad\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Deportivo)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Transporte)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senderismo\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bicicleta por Montaña\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bicicleta (Eléctrica) por Montaña\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montañismo\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remo\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Correr\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esquí (Alpino)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esquí de travesía\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquetas de nieve\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ruta\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Caminar\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estadísticas\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mes\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semana\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"año\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿No has recibido instrucciones?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comprueba el correo. Se ha enviado un nuevo email de confirmación a la dirección proporcionada.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Ya tienes una cuenta?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Seguro que quieres eliminar tu cuenta? Se borrarán todos los datos, la decisión no es reversible.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contraseña actual\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Correo electrónico\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escribe una dirección válida de correo.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escribe una contraseña\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Exportar datos\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descargar archivo\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"creando enlace...\"])},\n \"ONLY_ONE_EXPORT_PER_DAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puedes solicitar un archivo cada 24 horas\"])},\n \"STATUS\": {\n \"errored\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ha fallado (solicita una nueva exportación)\"])},\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"en progreso...\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrar por nombre de usuario\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ocultar contraseña\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clave secreta no válida, solicita un nuevo restablecimiento de contraseña.\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quiero eliminar mi cuenta\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Idioma\"])},\n \"LAST_PRIVACY_POLICY_TO_VALIDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La política de privacidad ha sido actualizada, \", _interpolate(_list(0)), \" antes de continuar.\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acceder\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cerrar sesión\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"iniciar sesión\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nueva contraseña\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay usuarios.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contraseña\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Has olvidado la contraseña?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se requieren 8 caracteres como mínimo.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer la contraseña\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comprueba tu email. Si la dirección está en nuestra base de datos recibirás un email con un enlace para restablecer tu contraseña.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"media\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"buena\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fortaleza de la contraseña\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fuerte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa alguna mayúscula, pero no todas.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Añade más palabras poco comunes.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita los años asociados a ti.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa alguna mayúscula más que en la primera.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita fechas y años que se puedan asociar a ti.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita substituciones evidentes de letras como \", \"@\", \" por la a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa patrones de teclado más largos y cambia de dirección de escritura varias veces.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puedes crear contraseñas fuertes sin usar símbolos, números o letras mayúsculas.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si utilizas esta contraseña en otros lugares, deberías cambiarla.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita años recientes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita palabras y caracteres repetidos.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita palabras del revés o palabras comunes.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita secuencias comunes de caracteres.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa varias palabras, pero evita frases comunes.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"débil\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Se ha actualizado tu contraseña. Pulsa \", _interpolate(_list(0)), \" para iniciar sesión.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición de la cuenta\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datos de ascensión (récords, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver al perfil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biografía\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fecha de nacimiento\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Formato de la fecha\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar perfil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias de los deportes\"])},\n \"ELEVATION_CHART_START\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La elevación del gráfico empieza en\"])},\n \"MIN_ALT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Altitud mínima\"])},\n \"ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cero\"])}\n },\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Por favor, \", _interpolate(_list(0)), \" para cambiar su dirección de correo electrónico de nuevo o póngase en contacto con el administrador\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primer día de la semana\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Idioma\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apellido\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Localización\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunes\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fotografía\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar la foto\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar la foto\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizar la foto\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias\"])},\n \"PRIVACY-POLICY_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Política de privacidad\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar perfil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fecha de registro\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"acción\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"desactivada por admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"activa\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"etiqueta\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"límite para detectar detención\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias de los deportes\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se ha actualizado correctamente tu cuenta. Comprueba tu email para confirmar tu nueva dirección de correo electrónico.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se ha creado correctamente tu cuenta.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se ha enviado un enlace en un email a tu correo electrónico para activar la cuenta.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tu cuenta ha sido actualizada correctamente.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domingo\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cuenta\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aplicaciones\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fotografía\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferencias\"])},\n \"PRIVACY-POLICY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"política de privacidad\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"perfil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"deportes\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zona horaria\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema Imperial (ft, mi, mph, ºF)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unidades de distancia\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema Métrico (m, km, m/s, ºC)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrado\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estrategia de velocidad máxima\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En bruto\"])},\n \"HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si se filtra, excluye los valores extremos (que pueden ser errores del GPS) al calcular la velocidad máxima.\"])}\n }\n },\n \"READ_AND_ACCEPT_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"He leído y aceptado la \", _interpolate(_list(0)), \".\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crear cuenta\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lo sentimos, no se admiten nuevas cuentas.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reenviar email de confirmación de cuenta\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer contraseña\"])},\n \"REVIEW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revisar\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostrar contraseña\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esta cuenta de usuario no está activa.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre de usuario\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se requieren entre 3 y 30 caracteres, sólo se permiten alfanuméricos y guión bajo \\\"_\\\".\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto del usuario\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Has aceptado la \", _interpolate(_list(0)), \".\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Añadir entrenamiento\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"análisis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascenso\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocidad media\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vel. media\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volver al entrenamiento\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fecha\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descenso\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostrar filtros\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distancia\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tiempo\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar el entranamiento\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitud\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"desde\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichero .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ocultar filtros\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Debes proporcionar ambos valores de altura y tienen que ser igual o superior a 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distancia debe ser mayor de 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La duración debe ser mayor que 0 segundos\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Últimos entrenamientos\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar más entrenamientos\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitud máxima\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"máx. de ficheros\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tamaño máximo\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocidad máxima\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitud mínima\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin tramo siguiente\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Siguiente entrenamiento\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notas\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datos desde gpx, sin comprobar\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin fichero proporcionado\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no hay carpeta dentro\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin mapa\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay tramo siguiente\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay entrenamiento siguiente\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin notas\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay tramo anterior\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No hay entrenamiento anterior\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin registros.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sin entrenamientos.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pausas\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tramo anterior\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entrenamiento anterior\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"registro\"]), _normalize([\"registros\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. media\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distancia mayor\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascenso mayor\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Duración más larga\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Velocidad máxima\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"caracteres restantes\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"tramo\"]), _normalize([\"tramos\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocidad\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"deporte\"]), _normalize([\"deportes\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inicio\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inicio y final\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poner la altitud de inicio en el cero del gráfico\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"título\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"para\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duración total\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Una subida!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"día despejado\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"noche despejada\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nublado\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"niebla\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"día parcialmente nublado\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"noche parcialmente nublada\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lluvia\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"granizo\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nieve\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"viento\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humedad\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatura\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"viento\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sin fichero .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"con fichero .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"entrenamiento\"]), _normalize([\"entrenamientos\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fecha del entrenamiento\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"¿Seguro que quieres eliminar este entrenamiento?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichero .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"o fichero .zip que contiene ficheros .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A propos de cette instance\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source des données météo :\"])}\n}","export default {\n \"ABOUT\": {\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toute information supplémentaire qui peut être utile à vos utilisateurs. La syntaxe Markdown peut être utilisée.\"])},\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information détaillée de l'instance\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de texte saisi\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"PRIVACY_POLICY_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter votre propre politique de confidentialité ou laisser vider pour utiliser la politique par défaut. La syntaxe Markdown peut être utilisée.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])}\n}","export default {\n \"ERROR\": {\n \" is missing in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elément manquant dans le fichier .gpx.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive.\"])},\n \"completed request already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une demande d'export terminée existe déjà.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'enregistrement de la séance.\"])},\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 \"gpx file is invalid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le fichier .gpx est invalide.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse électronique doit être differente de l'adresse actuelle\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"no tracks in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de trace () dans le fichier .gpx\"])},\n \"ongoing request exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une demande d'exportation de données existe déjà.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nombre de fichiers de l'archive dépasse la limite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse électronique doit être fournie pour le contact de l'administrateur\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REQUEST_DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Demander un export de données\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes. Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth
.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth
.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users
.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users
.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts
.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts
.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez demander à tout moment la suppression de votre compte en vous rendant à cette adresse (après vous être connecté à votre compte), puis en cliquant sur le bouton sous \\\"Supprimer mon compte\\\" dans l'espace de mise à jour de votre compte.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Suppression du compte\"])}\n },\n \"CHANGES_TO_OUR_PRIVACY_POLICY\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si nous décidons de changer notre politique de confidentialité, nous afficherons ces modifications sur cette page.\\n\\nCe document est sous licence [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptée de la politique de confidentialité de [Discourse](https://github.com/discourse/discourse).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifications de notre politique de confidentialité\"])}\n },\n \"DATA_COLLECTED\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les informations suivantes sont collectées :\\n- Informations liées au compte (nom d'utilisateur, courriel et mot de passe). Vous pouvez également saisir les informations du profil tel que le prénom, le nom de famille, la date de naissance, la localisation, une biographie et envoyer une image de profil.\\n- Fichiers [GPX](https://fr.wikipedia.org/wiki/GPX_(format_de_fichier). Ces fichiers contiennent les données liées à vos activités (coordonnées géographiques, date, distance, durée, vitesses maximale et moyenne, altitude, rythme cardiaque…). Si vous ne souhaitez pas exposer certaines données, nettoyer les fichiers avant de les envoyer ou ajouter des activités sans fichier GPX.\\n- Données d'activités (sport, titre, date, durée, distance, dénivelé positif et négatif, notes).\\n- Données techniques (nom du navigateur et du système d'exploitation).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quelles sont les informations que nous recueillons ?\"])}\n },\n \"INFORMATION_DISCLOSURE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nous ne vendons pas, ni échangeons ou même transférons vos renseignements personnelles à des tiers.\\n\\nCeci n’inclut pas les tiers de confiance qui nous aident à exploiter notre site ou vous servir, tant que ces parties conviennent à garder ces informations confidentielles.\\n\\nNous pouvons également divulguer vos informations lorsque nous croyons nécessaire de se conformer à la loi, appliquer nos politiques de site, ou la nôtre ou d’autres droits, la propriété ou la sécurité.\\n\\nSi vous autorisez une application tierce à utiliser votre compte, selon le périmètre des permissions accordées, elle pourra avoir accès à vos informations de profil ou vos activités. Les applications tierces ne peuvent jamais accéder à votre mot de passe.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Divulguons-nous des informations à des tiers ?\"])}\n },\n \"INFORMATION_PROTECTION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nous mettons en œuvre une variété de mesures de sécurité pour maintenir la sécurité de vos informations personnelles lorsque vous saisissez, soumettez ou d’accédez à vos renseignements personnels.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comment protégeons-nous vos informations ?\"])}\n },\n \"INFORMATION_USAGE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toutes les informations que nous recueillons auprès de vous peuvent être utilisées afin de fournir les fonctionnalités de **FitTrackee** :\\n- Les fichiers GPX sont utilisés pour créer des activités, afficher des traces sur une carte (avec [OpenStreetMap](https://www.openstreetmap.org) et le serveur de tuiles configuré) et des graphiques, générer des vignettes de cartes, calculer des records et obtenir des données météo (si un fournisseur de données météorologiques est configuré).\\n- Les informations du profil et les activités ne sont pas affichées publiquement. Un utilisateur enregistré ne peut voir que ses propres activités.\\n- Le courriel que vous avez fourni peut être utilisé pour vous envoyer des informations ou confirmer des actions de modification de votre compte.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comment utilisons-nous vos informations ?\"])}\n },\n \"SITE_USAGE_BY_CHILDREN\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si ce serveur est localisé dans l'Union Européenne (UE) ou l'Espace Economique Européen (EEA) : notre site et nos services sont tous destinés aux personnes âgées d'au moins 16 ans. Si vous avez moins de 16 ans, conformément aux exigences du [RGPD](https://fr.wikipedia.org/wiki/R%C3%A8glement_g%C3%A9n%C3%A9ral_sur_la_protection_des_donn%C3%A9es) (Règlement général sur la protection des données), n'utilisez pas ce site.\\n\\nSi ce serveur se trouve aux États-Unis : notre site et nos services sont tous destinés à des personnes âgées d'au moins 13 ans. Si vous avez moins de 13 ans, conformément aux exigences de la loi [COPPA](https://fr.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), n'utilisez pas ce site.\\n\\nLes exigences légales peuvent être différentes si ce serveur se trouve dans une autre juridiction.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Protection des mineurs\"])}\n },\n \"YOUR_CONSENT\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En utilisant notre site, vous acceptez la politique de confidentialité de notre site web.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre consentement\"])}\n }\n },\n \"LAST_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dernière mise à jour\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"politique de confidentialité\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinisme\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacées.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export des données\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Télécharger l'archive\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"lien en cours de génération...\"])},\n \"ONLY_ONE_EXPORT_PER_DAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez demander un export par 24h\"])},\n \"STATUS\": {\n \"errored\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"en erreur (veuillez demander une nouvelle archive)\"])},\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"en cours...\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Je souhaite supprimer mon compte\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_PRIVACY_POLICY_TO_VALIDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La politique de confidentialité a été mise à jour. Veuillez l'\", _interpolate(_list(0)), \" avant de poursuivre.\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance).\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ELEVATION_CHART_START\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Début de l'axe pour le graphe affichant l'altitude\"])},\n \"MIN_ALT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Altitude minimale\"])},\n \"ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"0\"])}\n },\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PRIVACY-POLICY_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Politique de confidentialité\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PRIVACY-POLICY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"politique de confidentialité\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km, m/s, °C)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtré\"])},\n \"HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si filtré, les valeurs extrêmes (qui peuvent être des erreurs GPS) sont exclues lors du calcul de la vitesse maximale.\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Calcul de la vitesse maximale\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Brut\"])}\n }\n },\n \"READ_AND_ACCEPT_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"J'ai lu et accepte la \", _interpolate(_list(0)), \".\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau le courriel de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"REVIEW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"accepter\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Vous avez accepté la \", _interpolate(_list(0)), \".\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les 2 valeurs pour l'élévation doivent être renseignées et être supérieures ou égales à 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distance doit être supérieure à 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durée doit être supérieure à 0 secondes\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acerca desta instancia\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacta coa administración\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee é un xestor autohospedado de actividades en exterior.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"con licenza \", _interpolate(_list(0)), \" \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Código fonte\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datos meteoroloxía:\"])}\n}","export default {\n \"ABOUT\": {\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Calquera información adicional que puidese ser útil para as túas usuarias. Podes usar Markdown.\"])},\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Información detallada sobre a instancia\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acción\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activar conta\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activa\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administración\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Engadir/Eliminar permiso de admin, eliminar conta de usuarias.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aplicación\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de contacto da administración\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Num. máximo ficheiros arquivo zip\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se 0, non hai límite de rexistros.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Número máx. de usuarias activas\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sen correo de contacto\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tamaño Máx. dos ficheiros subidos (en MB)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuración da aplicación\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tamaño Máx. do arquivo zip (en MB)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver a admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Tes a certeza de querer eliminar a conta \", _interpolate(_list(0)), \"? Borraranse todos os datos, non hai volta atrás.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Tes certeza de querer restablecer o contrasinal de \", _interpolate(_list(0)), \"?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email actual\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar usuaria\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O envío de correos está desactivado.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activar/desactivar deportes.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Novo email\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non escribiches texto\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restableceuse o contrasinal.\"])},\n \"PRIVACY_POLICY_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Engade a túa propia política de privacidade ou déixaa baleira para usar unha por defecto. Podes usar Markdown.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualmente non se poden crear máis contas.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualmente pódense crear novas contas.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer contrasinal\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activo\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"xa existe o adestramento\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imaxe\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etiqueta\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrar deportes\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizar configuración da aplicación.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizar email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"usuaria\"]), _normalize([\"usuarias\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rol de admin\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data de rexistro\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"estado da conta\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"identificador\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"número adestramentos\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conceder permisos admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirar permisos admin\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizouse o enderezo de email.\"])}\n}","export default {\n \"ERROR\": {\n \" is missing in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"falta o elemento no ficheiro .gpx.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro na rede.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro. Inténtao outra vez ou contacta coa administración.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Polo menos un ficheiro no arquivo .zip excede o tamaño máximo, comproba o arquivo.\"])},\n \"completed request already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Xa existe unha solicitude de exportación completa.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: debes escribir un correo electrónico válido.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro ao procesar o ficheiro gpx.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro no procesado gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro ao obter a configuración.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro ao gardar o adestramento.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro ao actualizar a configuración\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro, inténtao outra vez ou contacta coa administración.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro, non se admiten novas usuarias.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non está permitida a extensión do ficheiro.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O tamaño do ficheiro supera o tamaño permitido.\"])},\n \"gpx file is invalid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O ficheiro .gpx non é válido.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Credenciais incorrectas.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Os datos proporcionados non son válidos.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token non válido, accede outra vez.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token non válido, accede outra vez.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O novo email ten que ser diferente ao actual\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sen ficheiro proporcionado.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sen ficheiro seleccionado.\"])},\n \"no tracks in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai ruta () no ficheiro .gpx.\"])},\n \"ongoing request exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Xa existe unha solicitude de exportación de datos.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contrasinal: o contrasinal e a súa confirmación non concordan.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Proporciona unha chave secreta válida.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Caducou a sinatura. Accede outra vez.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lamentámolo, o nome de usuaria xa está en uso.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non existe o deporte.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conta creada correctamente.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O número de ficheiros no arquivo supera o límite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non existe a usuaria.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hai que proporcionar un correo electrónico válido para contacto de administración\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non podes eliminar a túa conta, non hai outra usuaria con permisos de administración.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non tes permisos.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seguinte\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anterior\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver a enviar un correo de confirmación\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorizar\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancelar\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limpar filtros\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar a miña conta\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Desactivar\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activar\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtro\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acceder\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crear conta\"])},\n \"REQUEST_DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solicitar exportación dos datos\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enviar\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"acerca de\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmación\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacto\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"día\"]), _normalize([\"días\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostrado\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentación\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aquí\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Agochado\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inicio\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascenso\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descenso\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"orde\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordenar por\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"por páxina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taboleiro\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Este mes\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A aplicación atopou algún problema. Inténtao máis tarde ou contacta coa administración.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non se atopa a páxina\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non se atopa o adestramento\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Algo fallou\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erro. Inténtao outra vez ou contacta coa administración.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Engadir nova aplicación OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chave secreta\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descrición da aplicación\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición en\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Noma da aplicación\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirección\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ámbitos\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede acceso a escritura na configuración da aplicación.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede acceso de lectura aos puntos de acceso auth
.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede acceso de escritura aos puntos de acceso auth
.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede acceso de lectura aos puntos de acceso users
.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede acceso de escritura aos puntos de acceso users
.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permiso de lectura aos puntos de acceso workouts
.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"concede permisos de escritura aos puntos de acceso workouts
.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL da aplicación\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aplicacións OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creouse correctamente a aplicación. Pon coidado en gardar agora a chave secreta, non se volverá a mostrar.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tes certeza de querer eliminar esta app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"A aplicación \", _interpolate(_list(0)), \" solicita:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autorizar a \", _interpolate(_list(0)), \" a que use a túa conta?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copiar ao portapapeis\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar aplicación\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Engadir unha aplicación\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non se atopa a aplicación!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sen aplicacións\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sen descrición\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revogar todas as chaves\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tes a certeza de querer eliminar todas as chaves de acceso?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foron revogadas todas as chaves de acceso asociadas.\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Podes solicitar en todo momento a eliminación da túa conta indo a este enderezo (con sesión iniciada) e premendo no botón \\\"Eliminar a miña conta\\\" nos axustes da túa conta.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminación da conta\"])}\n },\n \"CHANGES_TO_OUR_PRIVACY_POLICY\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se decidimos cambiar a nosa política de privacidade, publicaremos os cambios nesta páxina.\\n\\nEste documento está baixo licenza [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Adaptado do orixinal da política de privacidade de [Discourse](https://github.com/discourse/discourse).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cambios na nosa Política de Privacidade\"])}\n },\n \"DATA_COLLECTED\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recollemos a seguinte información:\\n- Información da conta (identificador, enderezo de email e contrasinal). Poderías engadir información adicional ao perfil como o nome, apelido, data de nacemento, localización, biografía e subir unha foto de perfil.\\n- Ficheiros [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format). Estes ficheiros conteñen datos relacionados coas túas actividades (coordenadas xeográficas, data, distancia, duración, velocidades máxima e media, altitude, pulso cardíaco...). Se non queres mostrar algún dos datos, elimínaos antes de subir ou engadir adestramentos con ficheiros GPX.\\n- Datos do adestramento (deporte, título, data, duración, distancia, ascenso, descenso, notas).\\n- Información técnica (nome do navegador e sistema operativo).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Que información recollemos?\"])}\n },\n \"INFORMATION_DISCLOSURE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non vendemos, comerciamos ou transferimos doutro xeito a terceiras partes externas ningunha información que te identifique persoalmente.\\n\\nIsto non inclúe a terceiras partes de confianza que non axudan a xestionar e proporcionarche o noso servizo, mentras esas terceiras partes acepten manter confidencial esta información.\\n\\nPoderiamos liberar esta información sempre que ao facelo sexa acorde co cumprimento da ley, reforce as nosas políticas da web, ou protexa os nosos dereitos e seguridade ou os de outras persoas.\\n\\nCando autorizas a terceiras partes a usar a túa conta, dependendo dos permisos concedidos, podería acceder á túa información de perfil ou adestramentos. As aplicacións nunca teñen acceso ao teu contrasinal.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostramos algún tipo de información a terceiras partes externas?\"])}\n },\n \"INFORMATION_PROTECTION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tomamos varias medidas de seguridade para gardar a túa información persoal cando inicias sesión, envías ou accedes á túa información persoal.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Como protexemos a túa información?\"])}\n },\n \"INFORMATION_USAGE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toda a información que recollemos de ti pode ser usada para proporcionar o servizo básico de **FitTrackee**:\\n- Os ficheiros GPX úsanse para crear adestramentos, mostrar rutas nun mapa (con OpenStreetMap](https://www.openstreetmap.org) e o servidor de teselas configurado) e gráficos, crear miniaturas do mapa, calcular records e obter datos meteorolóxicos (se está así establecido).\\n- A información de perfil e adestramentos non se mostran publicamente. Unha usuaria rexistrada só pode ver os seus propios adestramentos.\\n- O enderezo de correo electrónico que nos proporcionas podería ser usado para mandarche información ou confirmar as modificacións na conta.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Para que usamos a túa información?\"])}\n },\n \"SITE_USAGE_BY_CHILDREN\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se este servidor está na UE ou no EEA: a nosa web e servizos están dirixidos a persoas a partir dos 16 anos. Non uses esta web se non tes 16 anos, por requerimento da [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation).\\n\\nSe este servidor está en EEUU de América: A nosa web, produtos e servizos están dirixidos a persoas a partir dos 13 anos. Se non tes 13 anos, por requerimento da [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), non uses esta web.\\n\\nOs requerimentos legais poderían ser diferentes se este servidor está baixo outra xurisdición.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uso da web por menores\"])}\n },\n \"YOUR_CONSENT\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ao usar esta web, aceptas a política de privacidade desta web.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O teu consentimento\"])}\n }\n },\n \"LAST_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Última actualización\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"política de privacidade\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Deportivo)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Transporte)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sendeirismo\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo por Montaña\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo por Montaña (Eléctrica)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montañismo\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remo\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Correr\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esquí (Alpino)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esquí (de travesía)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquetas de neve\"])}\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([\"Camiñar\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estatísticas\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mes\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semana\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ano\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non recibiches instrucións?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comproba o correo. Enviouse un correo de confirmación ao enderezo proporcionado.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Xa tes unha conta?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tes a certeza de querer eliminar a conta? Todos os datos serán borrados, e non poderás restablecelos.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contrasinal actual\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escribe un enderezo válido.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escribe un contrasinal\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Exportar datos\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descargar arquivo\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"creando ligazón...\"])},\n \"ONLY_ONE_EXPORT_PER_DAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Podes solicitar un arquivo cada 24 horas\"])},\n \"STATUS\": {\n \"errored\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fallou (solicita outra exportación)\"])},\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"en progreso...\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrar por identificador\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"agochar contrasinal\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token non válido, solicita un novo restablecemento de contrasinal.\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quero eliminar a miña conta\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Idioma\"])},\n \"LAST_PRIVACY_POLICY_TO_VALIDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Actualizouse a política de privacidade, podes \", _interpolate(_list(0)), \" antes de continuar.\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acceso\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pechar sesión\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"acceder\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Novo contrasinal\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai usuarias.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contrasinal\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esqueciches o contrasinal?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Require 8 caracteres como mínimo.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablecer contrasinal\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Comproba o correo electrónico. Se o enderezo está na base de datos recibirás un correo cunha ligazón de restablecemento.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"media\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"boa\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forza do contrasinal\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inclúe algunha letra maiúscula, non todas.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Engade máis palabras pouco comúns.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita os anos que teñan relación contigo.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa máis maiúsculas que só na primeira letra.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita datas e anos que teñan relación contigo.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita substitucións de letras que sexan evidentes como \", \"@\", \" polo a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa patróns longos no teclado e cambia de dirección de escritura varias veces.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Podes crear contrasinais fortes sen usar símbolos, números ou letras maiúsculas.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se usas este contrasinal noutros lugares entón deberías cambialo.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita anos recentes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita palabras e caracteres repetidos.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita palabras comúns escritas ao revés.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita secuencias comúns de caracteres.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa varias palabras, pero evita frases comúns.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"feble\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Actualizouse o teu contrasinal. Preme en \", _interpolate(_list(0)), \" para acceder.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición da conta\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datos de ascensión (gravacións, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volver ao perfil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data de nacemento\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Formato para as datas\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar perfil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias dos deportes\"])},\n \"ELEVATION_CHART_START\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O gráfico de elevación comeza en\"])},\n \"MIN_ALT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Altitude mínima\"])},\n \"ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cero\"])}\n },\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" para cambiar o enderezo de correo electrónico ou contacta coa administración\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primeiro día da semana\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Idioma\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apelido\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Localización\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luns\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fotografía\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición da foto\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eliminar foto\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizar foto\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar preferencias\"])},\n \"PRIVACY-POLICY_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Política de privacidade\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición do perfil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data de rexistro\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"acción\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cor\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"desactivado por admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"activa\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"etiqueta\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"limiar para detectar pausa\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edición das preferencias do deporte\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A conta actualizouse correctamente. Comproba o teu correo para confirmar o novo enderezo de correo electrónico.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creouse correctamente a conta.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enviouse un correo ao enderezo proporcionado cunha ligazón para activar a conta.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actualizouse correctamente a conta.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domingo\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"conta\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"imaxe\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferencias\"])},\n \"PRIVACY-POLICY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"política de privacidade\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"perfil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"deportes\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zona horaria\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema Imperial (ft, mi, mph, ºF)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unidades de distancia\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema Métrico (m, km, m/s, ºC)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrado\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Estratexia para velocidade máx. GPX\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En bruto\"])},\n \"HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se filtras, excluirá os valores extremos (que poderían deberse a erros do GPS) ao calcular a velocidade máxima.\"])}\n }\n },\n \"READ_AND_ACCEPT_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Lin e acepto a \", _interpolate(_list(0)), \".\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crear conta\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lamentámolo, pero non se permiten novas contas.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reenviar o correo de confirmación de conta\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restablece o contrasinal\"])},\n \"REVIEW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revisar\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostrar contrasinal\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Esta conta de usuaria está desactivada.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identificador\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Require entre 3 e 30 caracteres, só se permiten alfanuméricos e o trazo baixo \\\"_\\\".\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto da usuaria\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Aceptaches a \", _interpolate(_list(0)), \".\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Engadir adestramento\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"análise\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascenso\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocidade media\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vel. media\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volver ao adestramento\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descenso\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostrar filtros\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distancia\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duración\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editar adestramento\"])},\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([\"desde\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ficheiro .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"agochar filtros\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hai que proporcionar os dous valores de altitude e deben ser iguais o maiores que 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A distancia debe ser superior a 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A duración debe superar os 0 segundos\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Últimos adestramentos\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cargar máis adestramentos\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Altitude máx.\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"máx. de ficheiros\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tamaño máx.\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. máxima\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Altitude min.\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai tramo seguinte\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seguinte adestramento\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notas\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datos directos do .gpx, sen limpar\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai ficheiro\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sen cartafoles dentro\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sen mapa\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai tramo seguinte\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai adestramento seguinte\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sen notas\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai tramo anterior\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai adestramento anterior\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sen récords.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sen adestramentos.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pausas\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tramo anterior\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adestramento anterior\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"récord\"]), _normalize([\"récords\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. media\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A maior distancia\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O maior desnivel\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A duración máis longa\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. máxima\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"caracteres restantes\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"tramo\"]), _normalize([\"tramos\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocidade\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"deporte\"]), _normalize([\"deportes\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inicio\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inicio e fin\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"situar a altitude de inicio no cero da gráfica\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"título\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duración total\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subiches un!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"día despexado\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"noite despexada\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nubrado\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"néboa\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"día algo nubrado\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"noite algo nubrada\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"chuvia\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sarabia\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neve\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidade\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatura\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"XAN\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"LSL\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NL\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNL\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SL\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSL\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sen ficheiro .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"con ficheiro .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"adestramento\"]), _normalize([\"adestramentos\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data do adestramento\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tes certeza de querer borrar este adestramento?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ficheiro .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou ficheiro .zip que contén ficheiros .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contatta l'amministratore\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee è un tracker self-hosted per attività outdoor.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sotto licenza \", _interpolate(_list(0)), \" \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Codice sorgente\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Azione\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi/rimuovi permessi, elimina account utente.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email di contatto dell'amministratore\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di files zip\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se settato a 0, non ci sono limiti per le registrazioni.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Numero massimo di utenti attivi\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna mail di contatto\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dei file caricabili (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurazione applicazione\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimensione massima dell'archivio zip (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna ad amministrazione\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler eliminare \", _interpolate(_list(0)), \" account? Tutti i dati verranno persi, quest'azione non può essere annullata.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Sei sicuro di voler resettare \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email corrente\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina utente\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'invio di email è disabilitato.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva/Disattiva sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La password è stata reimpostata.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento disabilitata.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La registrazione è al momento abilitata.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attivo\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout esistono\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Immagine\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etichetta\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Amministrazione sport\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna configurazione applicazione.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utente\"]), _normalize([\"utenti\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato admin\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data di registrazione\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stato account\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nome utente\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"numero di workout\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi permessi di amministratore\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi permessi di amministratore\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'indirizzo email è stato aggiornato.\"])}\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore di rete.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amminstratore.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Almeno un file nell'archivio zip supera il limite di dimensione, per favore controlla.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: dev'essere inserita un'email valida.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura del file gpx.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'elaborazione del file gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nella lettura della configurazione.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore nell'aggiornamento della configurazione\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, per favore riprova o contatta l'amministratore.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore, la registrazione è disabilitata.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File con estensione non permessa.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La dimensione del file è maggiore di quella massima permessa.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Credenziali errate.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I dati inseriti non sono validi.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto, per favore ripeti il log in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nuova email dev'essere diversa dalla vecchia mail\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: la password inserita e la conferma non combaciano.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insersci un token di autenticazione valido.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token scaduto. Per favore ripeti il log in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, quell'username è già esistente.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo sport non esiste.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrato con successo.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il numero di files nell'archivio supera il limite massimo permesso.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utente non esiste.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dev'essere inserita un'email valida\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non puoi eliminare questo account, nessun'altro account ha permessi di amministratore.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai i permessi necessari.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avanti\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"precedente\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorizza\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Indietro\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annulla\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta filtri\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina il mio account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disattiva\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attiva\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra\"])},\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([\"Registra\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invia\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conferma\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contatto\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"giorno\"]), _normalize([\"giorni\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mostrato\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentazione\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"qui\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nascosto\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più basso al più alto\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dal più alto al più basso\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ordina per\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totale\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo mese\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'applicazione ha riscontrato dei problemi. Per favore riprova più tardi o contatta l'amministratore.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina non trovata\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout non trovato\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Qualcosa è andato storto\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Errore. Per favore riprova o contatta l'amministratore.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi una nuova applicazione OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Descrizione applicazione\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome applicazione\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL redirect\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura alla configurazioen dell'applicazione.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a auth
endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a auth
endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a users
endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a users
endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di lettura a workouts
endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da permessi di scrittura a workouts
endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL applicazione\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazioni OAuth2\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione creata. Sii certo di copiare il secret ora, non lo rivedrai più.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare quest'app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'applicazione \", _interpolate(_list(0)), \" sta chiedendo:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autorizzi \", _interpolate(_list(0)), \" ad utilizzare il tuo account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copia nella clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Elimina applicazione\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi applicazione\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicazione non trovata!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna applicazione\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna descrizione\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi tutti i tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler rimuovere tutti i token?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tutti i token esistenti associati sono stati rimossi.\"])}\n}","export default {\n \n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ciclismo (Trasporto)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cicliscmo (Virtuale)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Escursioni\"])}\n },\n \"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 (Elettrica)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alpinismo\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Canottaggio\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Corsa\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Alpino)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sci (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Racchette da neve\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sentieri\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Camminata\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiche\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mese\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"settimana\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"anno\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non hai ricevuto istruzioni?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Una nuova email di conferma è stata inviata all'indirizzo specificato.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hai già un account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare il tuo account? Tutti i dati saranno eliminati, quest'azione non può essere annullata\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password corrente\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci un indirizzo email valido.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci una password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtra per username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token invalido, per favore richiedi un nuovo reset della password.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuova password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun utente trovato.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password dimenticata?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci almeno 8 caratteri.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controlla la tua email. Se l'indirizzo inserito è nel nostro database, riceverai un'email con un link per resettare la tua password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"media\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"buona\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sicurezza password\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci qualche maiuscola.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi più parole che sono meno comuni.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inserisci maiuscole oltre alla prima lettera.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date che possono essere associate a te.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sostituzioni prevedibili, per esempio, \", \"@\", \" per la a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa patterns più lunghi e cambia direzione di scrittura più volte.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Puoi creare password sicure senza utilizzare simboli, numeri, o maiuscole.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"È consigliabile cambiare questa password se è utilizzata per altro.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita date recenti.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di ripetere lettere e parole.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita di scrivere parole al contrario.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Evita sequenze di caratteri comuni.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Usa più parole, ma evita frasi comuni.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bassa\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"La tua password è stata aggiornata. Clicca \", _interpolate(_list(0)), \" per effettuare il login.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tipo di account\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dati relativi alle salite (singoli, totale)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ritorna al profilo\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di nascita\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Formato data\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica profilo\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica preferenze sport\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Per favore \", _interpolate(_list(0)), \" per cambiare di nuovo la tua mail o contatta l'amministratore\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primo giorno della settimana\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nome\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lingua\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cognome\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posizione\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunedì\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foto\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rimuovi foto\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiorna foto\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profilo\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data di registrazione\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"azione\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"colore\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disattivato dall'amministratore\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"attivo\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"etichetta\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limite minimo di velocità\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferenze sport\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo. Per favore controlla la tua email per confermare il tuo indirizzo email.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato creato con successo.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un link per attivare il tuo account è stato inviato all'indirizzo specificato.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Il tuo account è stato aggiornato con successo.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domenica\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferenze\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profilo\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema imperiale (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unità per la distanza\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sistema metrico (m, km, m/s, °C)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrato\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Strategia di massima velocità\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Greggio\"])}\n }\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registra\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mi dispiace, la registrazione è disabilitata.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Re-invia email di conferma dell'account\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resetta password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Questo account è inattivo.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sono richiesti da 3 a 30 caratteri, è permesso utilizzare solo caratteri alfanumerici ed il simbolo \\\"_\\\".\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"foto profilo\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aggiungi un workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analisi\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"salita\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità media\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vel. media\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ritorna al workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"discesa\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mostra filtri\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distanza\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifica il workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevazione\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fine\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"da\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nascondi filtri\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entrambi i valori di elevazione devono essere forniti ed essere maggiori o uguali a 0.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distanza dev'essere maggiore di 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durata dev'essere maggiore di 0\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ultimi workout\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica più workout\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine massima\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file massimi\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dimensione massima\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità massima\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitudine minima\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prossimo workout\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"note\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data dal file gpx, senza \\\"pulizia\\\"\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun file scelto\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nessuna cartella all'interno\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna mappa\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento successivo\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout successivo\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessuna nota\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun segmento precedente\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout precedente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun record.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nessun workout.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pause\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segmento precedente\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout precedente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"record\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. media\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distanza più lunga\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Salita più alta\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durata più lunga\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vel. massima\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"caratteri rimanenti\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segmento\"]), _normalize([\"segmenti\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"velocità\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sport\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inizio\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inizio e fine\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partenza asse elevazione a 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titolo\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durata totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Carica file!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cielo chiaro\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte chiara\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuvoloso\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nebbia\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"parzialmente nuvoloso\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notte parzialmente nuvolosa\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pioggia\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nevischio\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neve\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"umidità\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatura\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vento\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"senza file .gpx\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"con file .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"allenamento\"]), _normalize([\"allenamenti\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data workout\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sei sicuro di voler eliminare questo workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"o file .zip contenente files .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Om denne instansen\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt administratoren\"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kildekode\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Værdata fra:\"])}\n}","export default {\n \"ABOUT\": {\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Detaljert info om instansen\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Handling\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrasjon\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Program\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Vil du tilbakestille \", _interpolate(_list(0)), \" passord?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nåværende e-postadresse\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Slett bruker\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen tekst innskrevet\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passordet har blitt tilbakestilt.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tilbakestill passord\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bilde\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etikett\"])}\n }\n },\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"bruker\"]), _normalize([\"brukere\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"administratorstatus\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registreringsdato\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kontostatus\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nettverksfeil.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kunne ikke lagre arbeidsøkt.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filendelsen tillates ikke.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen fil angitt.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen valgt fil.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sporten finnes ikke.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Brukeren finnes ikke.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neste\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forrige\"])}\n }\n}","export default {\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tilbake\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avbryt\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tøm filtre\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Slett kontoen min\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skru av\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rediger\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logg inn\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nei\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrer\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tilbakestill\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"om\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bekreftelse\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"dag\"]), _normalize([\"dager\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vist\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dokumentasjon\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"her\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skjult\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hjem\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorter etter\"])}\n }\n }\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oversikt\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Denne måneden\"])}\n}","export default {\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fant ikke siden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fant ikke arbeidsøkten\"])}\n }\n}","export default {\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hemmelinghet\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Programbeskrivelse\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Programnavn\"])},\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Programnettadresse\"])}\n },\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kopier til utklippstavlen\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ingen programmer\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ingen beskrivelse\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontosletting\"])}\n }\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"personvernspraksis\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sykling (sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sykling (transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sykling (virtuell)\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fjellsykling\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fjellsykling (elektrisk)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Løping\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Truger\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistikk\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"måned\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"uke\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mottok du ikke noen instruks?\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Har du allerede en konto?\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nåværende passord\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-post\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skriv inn en gyldig e-postadresse.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skriv inn et passord\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dataeksport\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last ned arkiv\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"genererer lenke …\"])},\n \"STATUS\": {\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"underveis …\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer på brukernavn\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"skjul passord\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeg vil slette kontoen min\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Språk\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logg inn\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"logg inn\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nytt passord\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fant ingen brukere.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passord\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Glemt passordet?\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gjen.\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bra\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"passordstyrke\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sterkt\"])},\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"svakt\"])}\n },\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontoredigering\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tilbake til profil\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fødselsdag\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rediger profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rediger innstillinger\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fornavn\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Språk\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etternavn\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mandag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bilde\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fjern bilde\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oppdater bilde\"])},\n \"TABS\": {\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tidssone\"])},\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrert\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maks hastighet strategi\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rå\"])}\n }\n },\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tilbakestill passordet ditt\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vis passord\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Denne brukerkontoen er inaktiv.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Brukernavn\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brukerbilde\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Du har samtykket til \", _interpolate(_list(0)), \".\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Legg til en arbeidsøkt\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tilbake til arbeidsøkt\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dato\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avstand\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rediger arbeidsøkten\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fra\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avstanden må være større enn 0\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maks. størrelse\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maks. hastighet\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neste arbeidsøkt\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notater\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen fil angitt\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen arbeidsøkter.\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forrige segment\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lengste varighet\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maks. hastighet\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gjenstående tegn\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segmenter\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hastighet\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sporter\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start og slutt\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"til\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total varighet\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tøm dag\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"regn\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snø\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vind\"])}\n },\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vind\"])}\n },\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip-fil\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Over deze instantie\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacteer uw administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is zelf-gehoste activiteiten tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Onder \", _interpolate(_list(0)), \" licentie \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Broncode\"])},\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weer gegevens van:\"])}\n}","export default {\n \"ABOUT\": {\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extra informatie die nuttig kan zijn voor uw gebruikers. Markdown opmaak kan gebruikt worden.\"])},\n \"TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gedetailleerde informatie over deze instantie\"])}\n },\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actie\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activeer account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instellingen\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toevoegen/verwijderen van administrator rechten, verwijder gebruikersaccount.\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email voor contact\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal bestanden in zip archief\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bij 0, geen limiet op registratie.\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. aantal actieve gebruikers\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van bestanden voor upload (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applicatie configureren\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. grootte van zip archief (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar beheer\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u de account \", _interpolate(_list(0)), \" wilt wissen? Alle gegevens worden verwijderd, dit kan niet ongedaan gemaakt worden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Weet u zeker dat u het wachtwoord voor \", _interpolate(_list(0)), \" wilt resetten?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidige email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder gebruiker\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emails verzenden is uitgeschakeld.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aan- of uitzetten van sporten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe email\"])},\n \"NO_TEXT_ENTERED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen tekst ingegeven\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het wachtwoord werd gereset.\"])},\n \"PRIVACY_POLICY_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg uw eigen privacybeleid toe, of laat leeg om het standaard beleid te gebruiken. Markdown opmaak kan gebruikt worden.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel uitgeschakeld.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie is momenteel ingeschakeld.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset wachtwoord\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingeschakeld\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingen aanwezig\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer sporten\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De applicatie configureren.\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"gebruiker\"]), _normalize([\"gebruikers\"])])},\n \"USERS\": {\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registratie datum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersnaam\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aantal trainingen\"])}\n }\n },\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin rechten toevoegen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder admin rechten\"])}\n }\n },\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het emailadres werd bijgewerkt.\"])}\n}","export default {\n \"ERROR\": {\n \" is missing in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\" gedeelte ontbreekt in het .gpx bestand.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netwerk fout.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ten minste 1 bestand in het zip archief is groter dan toegelaten, gelieve de bestanden te controleren.\"])},\n \"completed request already exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er bestaat al een voltooide export aanvraag.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: een geldige email is vereist.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het verwerken van het gpx bestand.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij verwerken van gpx.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij ophalen van configuratie.\"])},\n \"error when saving workout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het opslaan van de activiteit.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout bij het updaten van de configuratie\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, probeer opnieuw of contacteer de administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout, registratie is uitgeschakeld.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsformaat niet toegelaten.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestandsgrootte is groter dan toegestaan.\"])},\n \"gpx file is invalid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het .gpx bestand is ongeldig.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige inloggegevens.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingegeven data is ongeldig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldige token, log opnieuw in.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het nieuwe email adres dient te verschillen van het oude\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand geselecteerd.\"])},\n \"no tracks in gpx file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen route () aanwezig in het .gpx bestand.\"])},\n \"ongoing request exists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er bestaat al een export aanvraag.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord: het wachtwoord en de bevestiging komen niet overeen.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig auth token.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signatuur verlopen. Log opnieuw in.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, deze gebruikersnaam is al in gebruik.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze sport bestaat niet.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Succesvol geregistreerd.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Het aantal bestanden in het zip archief overschrijdt de limiet.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruiker bestaat niet.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een geldige email is vereist voor admin contact informatie\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kunt uw account niet verwijderen, geen andere gebruiker heeft admin rechten.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U hebt geen machtigingen.\"])}\n },\n \"PAGINATION\": {\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"volgende\"])},\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vorige\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Herzend bevestigings email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toekennen\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuleren\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder mijn account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitzetten\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bewerken\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanzetten\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nee\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreer\"])},\n \"REQUEST_DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data export aanvragen\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opslaan\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"over\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bevestiging\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contacteer\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"dag\"]), _normalize([\"dagen\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergegeven\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentatie\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verborgen\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startscherm\"])},\n \"SELECTS\": {\n \"ORDER\": {\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oplopend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aflopend\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer\"])}\n },\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sorteer op\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per pagina\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Totaal\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze maand\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er heeft zich een onbekende fout voorgedaan. Probeer aub later opnieuw of contacteer de administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pagina niet gevonden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training niet gevonden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er ging iets mis\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fout. Probeer opnieuw of contacteer de administrator.\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuwe OAuth2 app toevoegen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheim\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App omschrijving\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Probleem bij\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Naam van de app\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Doorverwijs URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Omvang\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geeft toestemming tot aanpassen van de applicatie instellingen.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan auth
endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan auth
endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan users
endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan users
endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat leestoegang toe aan workouts
endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"staat schrijftoegang toe aan workouts
endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App URL\"])}\n },\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 apps\"])},\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App succesvol aangemaakt. Kopieer zeker de geheime sleutel, deze zal later niet meer verschijnen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze app wilt verwijderen?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"De app \", _interpolate(_list(0)), \" vraagt:\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Toegang geven aan \", _interpolate(_list(0)), \" tot uw gebruikersaccount?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kopieer naar klembord\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder app\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg een app toe\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App niet gevonden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen apps\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen beschrijving\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwijder alle tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u alle tokens wilt intrekken?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle bestaande tokens werden ingetrokken.\"])}\n}","export default {\n \"CONTENT\": {\n \"ACCOUNT_DELETION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kunt uw account op elk moment opzeggen door naar volgend adres te gaan, en na inloggen op de knop \\\"Verwijder mijn account\\\" te klikken in uw instellingen.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account verwijderen\"])}\n },\n \"CHANGES_TO_OUR_PRIVACY_POLICY\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eventuele aanpassingen aan het privacybeleid zullen op deze pagina worden weergegeven.\\n\\nDit document valt onder volgende licentie [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/). Een aanpassing van dit origineel privacybeleid [Discourse](https://github.com/discourse/discourse).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aanpassingen aan ons Privacybeleid\"])}\n },\n \"DATA_COLLECTED\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De volgende informatie wordt verzameld:\\n- Account informatie (gebruikersnaam, email en wachtwoord). U kan ook bijkomende informatie opgeven zoals: naam, voornaam, geboortedatum, locatie, biografie en een profiel-afbeelding.\\n- [GPX](https://en.wikipedia.org/wiki/GPS_Exchange_Format) bestanden. Deze bestanden bevatten gegevens over uw activiteiten (coördinaten, datums, afstand, duur, maximum en minimum snelheden, hoogtegegevens, hartslag, ...). Als u bepaalde gegevens hiervan niet wil delen, verwijder deze dan uit het bestand alvorens deze te uploaden.\\n- Sportgerelateerde gegevens (soort sport, titel, datum, duur, afstand, geklommen afstand, gedaalde afstand, notities).\\n- Technische informatie (de browsernaam en naam van het besturingssysteem).\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Welke informatie wordt er door ons verzameld?\"])}\n },\n \"INFORMATION_DISCLOSURE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Persoonlijke informatie wordt niet verkocht, geruild of op enige manier doorgegeven aan derden/andere instanties.\\n\\nDe uitzondering hierop zijn derden die vertrouwd worden en hebben ingestemd om uw gegevens niet te delen. Dit zijn bijvoorbeeld website administrators en vertrouwde applicaties.\\n\\nWanneer je een app van derden linkt aan je gebruikersaccount, kan het naargelang de toegestane rechten toegang krijgen tot je profiel informatie en activiteiten. Apps hebben nooit toegang tot uw wachtwoord.\\n\\nMogelijk kan er informatie worden gedeeld wanneer dit nodig is om aan de wetgeving te voldoen, wanneer de regels van ons beleid dienen afgedwongen te worden, of om onze of anderen hun rechten, eigendom of veiligheid te beschermen.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wordt er informatie met derden gedeeld?\"])}\n },\n \"INFORMATION_PROTECTION\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Er worden verschillende maatregelen gebruikt om de veiligheid van uw persoonlijke informatie te beschermen. Zowel tijdens het ingegeven, uploaden en bekijken van uw informatie.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoe beschermen we uw informatie?\"])}\n },\n \"INFORMATION_USAGE\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De informatie die we verzamelen is nodig voor de basis functionaliteit van **FitTrackee**:\\n- GPX worden gebruikt om activiteiten aan te maken, routes te tonen op de map (door [OpenStreetMap](https://www.openstreetmap.org), grafieken te tonen, thumbnails voor de route aan te maken, berekenen van records en weerdata op te vragen (indien geconfigureerd).\\n- Profiel informatie en activiteiten zijn niet publiek zichtbaar. Een gebruiker kan enkel zijn eigen activiteiten bekijken.\\n- Het opgegeven email adres kan worden gebruikt om informatie met u te delen, of om wijzigingen aan uw account te melden.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Waarvoor wordt de opgegeven informatie gebruikt?\"])}\n },\n \"SITE_USAGE_BY_CHILDREN\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Als de server zich in de EU of EEA bevindt: Deze site en zijn services zijn gericht op personen van minstens 16 jaar oud. Als u onder de 16 jaar bent, volgens naleving van de [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) (General Data Protection Regulation), gelieve deze site niet te gebruiken.\\n\\nAls de server zich in de USA bevindt: Deze site en zijn services zijn gericht op personen van minstens 13 jaar oud. Als u onder de 13 jaar bent, volgens naleving van de [COPPA](https://en.wikipedia.org/wiki/Children%27s_Online_Privacy_Protection_Act) (Children's Online Privacy Protection Act), gelieve deze site niet te gebruiken.\\n\\nWetgeving kan verschillen als de server zich op een andere plaats bevindt.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik door minderjarigen\"])}\n },\n \"YOUR_CONSENT\": {\n \"CONTENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Door deze site te gebruiken, gaat u akkoord met ons privacybeleid.\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw toestemming\"])}\n }\n },\n \"LAST_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laatste aanpassing\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"privacybeleid\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fietsen (Virtueel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trektocht\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (Elektrisch)\"])}\n },\n \"Mountaineering\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bergbeklimmen\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roeien\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lopen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiën (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sneeuwschoenen\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandelen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistieken\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maand\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jaar\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen instructies ontvangen?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw email. Een nieuwe bevestigingsmail werd verzonden naar het opgegeven adres.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beheer\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Al een account aangemaakt?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u uw account wilt verwijderen? Alle data wordt verwijderd, dit kan niet ongedaan worden.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Huidig wachtwoord\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een geldig email adres op.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geef een paswoord in\"])},\n \"EXPORT_REQUEST\": {\n \"DATA_EXPORT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data exporteren\"])},\n \"DOWNLOAD_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Archief downloaden\"])},\n \"GENERATING_LINK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"link aanmaken...\"])},\n \"ONLY_ONE_EXPORT_PER_DAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Je kan 1 keer per 24h een archief aanvragen\"])},\n \"STATUS\": {\n \"errored\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fout (gelieve een nieuw archief aan te vragen)\"])},\n \"in_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bezig met verwerken...\"])}\n }\n },\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter op gebruikersnaam\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg wachtwoord\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ongeldig token, vraag een nieuwe wachtwoord reset aan.\"])},\n \"I_WANT_TO_DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ik wil mijn account verwijderen\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LAST_PRIVACY_POLICY_TO_VALIDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Het privacybeleid werd aangepast, gelieve te \", _interpolate(_list(0)), \" voor verdergaan.\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inloggen\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uitloggen\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"inloggen\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nieuw wachtwoord\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen gebruikers gevonden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord vergeten?\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tenminste 8 karakters vereist.\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wachtwoord reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Controleer uw inbox. Als uw email adres in onze database zit, hebt u een email ontvangen om uw wachtwoord te resetten.\"])},\n \"PASSWORD_STRENGTH\": {\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddeld\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"goed\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wachtwoord sterkte\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sterk\"])},\n \"SUGGESTIONS\": {\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik enkele hoofdletters.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voeg meer niet gangbare woorden toe.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd jaartallen met een persoonlijke betekenis.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik niet enkel voor de eerste letter een hoofdletter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd persoonlijke gegevens en jaartallen.\"])},\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare vervangingen, zoals \", \"@\", \" voor de letter a.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik langere patronen en verander de richting van typen meerdere malen.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"U kan sterke wachtwoorden maken zonder gebruik van symbolen, nummers, of hoofdletters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Als u dit wachtwoord ergens anders gebruikt zou u het beter veranderen.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd recente jaartallen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd opeenvolgende woorden en karakters.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd gangbare woorden die achterstevoren geschreven zijn.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermijd voorspelbare opeenvolgingen.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruik verschillende woorden, maar vermijd vaak gebruikte zinnen.\"])}\n },\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zwak\"])}\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Uw wachtwoord werd aangepast. Klik \", _interpolate(_list(0)), \" om in te loggen.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aanpassen\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogte gerelateerde data (opnames, totaal)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar profiel\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geboortedatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weergaveformaat datum\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren wijzigen\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren wijzigen\"])},\n \"ELEVATION_CHART_START\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogte grafiek begint op\"])},\n \"MIN_ALT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimum hoogte\"])},\n \"ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nul\"])}\n },\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Gelieve \", _interpolate(_list(0)), \" om uw email adres opnieuw te wijzigen of contacteer uw administrator\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eerste dag van de week\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voornaam\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taal\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Achternaam\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Locatie\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maandag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding aanpassen\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding verwijderen\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Afbeelding veranderen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Voorkeuren aanpassen\"])},\n \"PRIVACY-POLICY_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacybeleid\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profiel aanpassen\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum registratie\"])},\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actie\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"kleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"uitgeschakeld door admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actief\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheidsgrens voor stilstand\"])}\n },\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport voorkeuren aanpassen\"])},\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt. Controleer uw inbox om uw nieuw email adres te bevestigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol aangemaakt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Een link om uw account te activeren werd doorgestuurd naar opgegeven email adres.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uw account werd succesvol bijgewerkt.\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zondag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afbeelding\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"voorkeuren\"])},\n \"PRIVACY-POLICY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacybeleid\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profiel\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sporten\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tijdzone\"])},\n \"UNITS\": {\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperialistisch systeem (ft, mi, mph, °F)\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eenheid voor afstand\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisch systeem (m, km, m/s, °C)\"])}\n },\n \"USE_RAW_GPX_SPEED\": {\n \"FILTERED_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gefilterd\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Strategie voor maximale snelheid\"])},\n \"RAW_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rauw\"])}\n }\n },\n \"READ_AND_ACCEPT_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Ik heb het \", _interpolate(_list(0)), \" gelezen en goedgekeurd.\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registreren\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registreren is uitgeschakeld.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opnieuw zenden van account bevestigingsmail\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset uw wachtwoord\"])},\n \"REVIEW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"beoordeel\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon wachtwoord\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deze account is niet actief.\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebruikersnaam\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 tot 30 karakters vereist, enkel alfanumerieke karakters en het underscore karakter \\\"_\\\" zijn toegestaan.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gebruikersafbeelding\"])},\n \"YOU_HAVE_ACCEPTED_PRIVACY_POLICY\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"U hebt het \", _interpolate(_list(0)), \" aanvaard.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training toevoegen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geklommen\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gemiddelde snelheid\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gem. snelheid\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Terug naar training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedaald\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"toon filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afstand\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duur\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training aanpassen\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hoogte\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"einde\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"van\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx bestand\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberg filters\"])},\n \"INVALID_ASCENT_OR_DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beide waarden moeten opgegeven worden en dienen groter dan of gelijk aan 0 te zijn.\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De afstand moet groter zijn dan 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"De duur moet langer zijn dan 0 seconden\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laatste trainingen\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toon meer trainingen\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. hoogte\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. aantal bestanden\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. grootte\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. snelheid\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. hoogte\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Volgende training\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notities\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data vanuit gpx, zonder op te schonen\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen bestand opgegeven\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"geen map aanwezig\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen kaart\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgend segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen volgende training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen notities\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorig segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen vorige training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geen trainingen.\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauzes\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorig segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorige training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gem. snelheid\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste afstand\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hoogst geklommen\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langste duur\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. snelheid\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"resterende karakters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segmenten\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snelheid\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sporten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start en aankomst\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zet hoogte-as vast op 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tem.\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"totale duur\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eén uploaden!\"])},\n \"WEATHER\": {\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere dag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"heldere nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bewolkt\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mist\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte dag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gedeeltelijk bewolkte nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"natte sneeuw\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sneeuw\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n },\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vochtigheid\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperatuur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OZO\"])},\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Z\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZO\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZZW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ZW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WZW\"])}\n }\n },\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zonder .gpx bestand\"])},\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"met .gpx bestand\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"training\"]), _normalize([\"trainingen\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"datum training\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weet u zeker dat u deze training wilt verwijderen?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip bestand\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"of .zip archief met .gpx bestanden\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"WEATHER_DATA_FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dane pogodowe z:\"])},\n \"ABOUT_THIS_INSTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O tej instancji\"])},\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skontaktuj się z administratorem\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"na licencji \", _interpolate(_list(0)), \" \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kod źródłowy\"])}\n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ten miesiąc\"])}\n}","export default {\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wygląda na to, że aplikacja napotkała pewne problemy. Spróbuj ponownie później lub skontaktuj się z administratorem.\"])},\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Błąd. Proszę spróbować ponownie lub skontaktować się z administratorem.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nie znaleziono strony\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nie znaleziono treningu\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Coś poszło nie tak\"])}\n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statystyki\"])},\n \"TIME_FRAMES\": {\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"miesiąc\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tydzień\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rok\"])}\n }\n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport PrivacyPolicyTranslations from './privacy_policy.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n privacy_policy: PrivacyPolicyTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-97e20d3a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n };\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, { to: \"/privacy-policy\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('privacy_policy.TITLE')), 1)\n ]),\n _: 1\n })\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=97e20d3a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-97e20d3a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7c04bc24\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NavBar',\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n store.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n option.value.toString()\n )\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !isMenuOpen.value }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=7c04bc24&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7c04bc24\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47759238\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"no-config\" }\nconst _hoisted_2 = { class: \"error-page\" }\nconst _hoisted_3 = { class: \"error-img\" }\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport ErrorImg from '@/components/Common/Images/ErrorImg.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NoConfig',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(ErrorImg)\n ]),\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('error.APP_ERROR')\n }, null, 8, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1)\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { localeFromLanguage } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => {\n initLanguage()\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n })\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n const bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n function initLanguage() {\n let language = 'en'\n try {\n const navigatorLanguage = navigator.language.split('-')[0]\n if (navigatorLanguage in localeFromLanguage) {\n language = navigatorLanguage\n }\n } catch (e) {\n language = 'en'\n }\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE, language)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : '',\n adminContact: _unref(appConfig).admin_contact\n }, null, 8, [\"version\", \"adminContact\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2930d5e0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-69d7e4ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AlertMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-eb7fa534\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLength\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null };\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLength: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((text).value = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, text.value]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(text.value.length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=eb7fa534&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-eb7fa534\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean };\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9590c0e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dropdown',\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n };\n\n \n\n \n\n const route = useRoute()\n const isOpen = ref(false)\n const dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=9590c0e6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9590c0e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2659a79a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n \n \n silhouette of a person riding a bicycle\n \n \n \n \n \n \n \n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n silhouette of a person riding a bicycle (for transportation)\n \n \n \n \n \n \n \n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n silhouette of a person riding a bicycle with virtual indicator\n \n \n \n \n\n\n","import { render } from \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a person hiking \n \n \n \n \n \n \n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n silhouette of a person riding a mountain bike\n \n \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n silhouette of a person riding an electric mountain bike\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n silhouette of a person doing mountaineering\n \n \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./Mountaineering.vue?vue&type=template&id=15731a2a\"\nimport script from \"./Mountaineering.vue?vue&type=script&lang=js\"\nexport * from \"./Mountaineering.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a person rowing \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a running person \n \n \n \n \n \n \n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a person skiing \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n silhouette of a person skiing (cross country)\n \n \n \n \n \n \n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a person with snowshoes \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a person running (trail) \n \n \n \n \n \n \n \n \n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n silhouette of a walking person \n \n \n \n \n \n \n \n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Mountaineering from '@/components/Common/Images/SportImage/Mountaineering.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string };\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountaineering')\n ? (_openBlock(), _createBlock(Mountaineering, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 12 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 13 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n \n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5aa8db48\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Modal',\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null };\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=5aa8db48&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5aa8db48\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-80b4a9e6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"admin_contact\" }\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = { for: \"max_users\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = { class: \"user-limit-help\" }\nconst _hoisted_9 = { class: \"info-box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { for: \"max_single_file_size\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { for: \"max_zip_file_size\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { for: \"gpx_limit_import\" }\nconst _hoisted_16 = [\"disabled\"]\nconst _hoisted_17 = {\n class: \"about-label\",\n for: \"about\"\n}\nconst _hoisted_18 = { class: \"textarea-description\" }\nconst _hoisted_19 = [\"innerHTML\"]\nconst _hoisted_20 = {\n class: \"privacy-policy-label\",\n for: \"privacy_policy\"\n}\nconst _hoisted_21 = { class: \"textarea-description\" }\nconst _hoisted_22 = [\"innerHTML\"]\nconst _hoisted_23 = {\n key: 5,\n class: \"form-buttons\"\n}\nconst _hoisted_24 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_25 = [\"onClick\"]\nconst _hoisted_26 = {\n key: 6,\n class: \"form-buttons\"\n}\n\nimport snarkdown from 'snarkdown'\n import {\n ComputedRef,\n capitalize,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n toRefs,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n import { linkifyAndClean } from '@/utils/inputs'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminApplication',\n props: {\n appConfig: null,\n edition: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean };\n\n \n const { edition } = toRefs(props)\n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n admin_contact: '',\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n about: '',\n privacy_policy: '',\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 : ['about', 'privacy_policy'].includes(key)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n ? appData[key] = appConfig[key]!== null\n ? appConfig[key]\n : ''\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n : (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ADMIN_CONTACT')) + \": \", 1),\n (!_unref(edition) && !appData.admin_contact)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"no-contact\",\n value: _ctx.$t('admin.APP_CONFIG.NO_CONTACT_EMAIL'),\n disabled: \"\"\n }, null, 8, _hoisted_4))\n : _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"admin_contact\",\n name: \"admin_contact\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appData.admin_contact) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_5)), [\n [_vModelText, appData.admin_contact]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appData.max_users) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_7), [\n [_vModelText, appData.max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appData.max_single_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_12), [\n [_vModelText, appData.max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((appData.max_zip_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_14), [\n [_vModelText, appData.max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((appData.gpx_limit_import) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_16), [\n [_vModelText, appData.gpx_limit_import]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('admin.ABOUT.TEXT')) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('admin.ABOUT.DESCRIPTION')), 1),\n (_unref(edition))\n ? _withDirectives((_openBlock(), _createElementBlock(\"textarea\", {\n key: 0,\n id: \"about\",\n name: \"about\",\n rows: \"10\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((appData.about) = $event))\n }, null, 512)), [\n [_vModelText, appData.about]\n ])\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n innerHTML: _unref(snarkdown)(_unref(linkifyAndClean)(appData.about ? appData.about : _ctx.$t('admin.NO_TEXT_ENTERED'))),\n class: \"textarea-content\"\n }, null, 8, _hoisted_19)),\n _createElementVNode(\"label\", _hoisted_20, _toDisplayString(capitalize(_ctx.$t('privacy_policy.TITLE'))) + \": \", 1),\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(_ctx.$t('admin.PRIVACY_POLICY_DESCRIPTION')), 1),\n (_unref(edition))\n ? _withDirectives((_openBlock(), _createElementBlock(\"textarea\", {\n key: 2,\n id: \"privacy_policy\",\n name: \"privacy_policy\",\n rows: \"20\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((appData.privacy_policy) = $event))\n }, null, 512)), [\n [_vModelText, appData.privacy_policy]\n ])\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 3,\n innerHTML: _unref(snarkdown)(_unref(linkifyAndClean)(appData.privacy_policy ? appData.privacy_policy : _ctx.$t('admin.NO_TEXT_ENTERED'))),\n class: \"textarea-content\"\n }, null, 8, _hoisted_22)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 4,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(edition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_23, [\n _createElementVNode(\"button\", _hoisted_24, _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_25)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[7] || (_cache[7] = _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[8] || (_cache[8] = _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=80b4a9e6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-80b4a9e6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatCard',\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n };\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, toRefs } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppStatsCards',\n props: {\n appStatistics: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n appStatistics: IAppStatistics\n };\n\n \n\n const { appStatistics } = toRefs(props)\n const uploadDirSize = computed(() =>\n getReadableFileSize(appStatistics.value.uploads_dir_size, false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(appStatistics).users,\n text: _ctx.$t('admin.USER', _unref(appStatistics).users)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(appStatistics).sports,\n text: _ctx.$t('workouts.SPORT', _unref(appStatistics).sports)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(appStatistics).workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(appStatistics).workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0dd66f89\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = { class: \"application-config-details\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = { class: \"registration-status\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"email-sending-status\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-exclamation-triangle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminMenu',\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics };\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_4,\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1),\n (!_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.EMAIL_SENDING_DISABLED')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d62af67\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"text-center\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminSports',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"title\", \"sport-label\", \"color\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withKeys as _withKeys, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-627a8e91\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"users-filters\" }\nconst _hoisted_2 = { class: \"search-username\" }\nconst _hoisted_3 = [\"onKeyup\", \"placeholder\"]\n\nimport { ref } from 'vue'\n import { useRoute } from 'vue-router'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UsersNameFilter',\n emits: ['filterOnUsername'],\n setup(__props, { emit }) {\n\n const route = useRoute()\n const username = ref(route.query.q ? route.query.q : '')\n\n \n function searchUsers() {\n if (username.value !== '') {\n emit('filterOnUsername', username)\n }\n }\n function resetFilter() {\n username.value = ''\n emit('filterOnUsername', username.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"username\",\n name: \"username\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n onKeyup: _withKeys(searchUsers, [\"enter\"]),\n placeholder: _ctx.$t('user.FILTER_ON_USERNAME')\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n username.value,\n void 0,\n { trim: true }\n ]\n ]),\n (username.value !== '')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-times\",\n \"aria-hidden\": \"true\",\n onClick: resetFilter\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-search\", { 'fa-disabled': username.value === '' }]),\n \"aria-hidden\": \"true\",\n onClick: searchUsers\n }, null, 2)\n ]))\n}\n}\n\n})","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean };\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n case 'PRIVACY-POLICY':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=205359d6&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"info-box raw-speed-help\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_4 = { class: \"profile-buttons\" }\n\nimport { computed, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ELEVATION_CHART_START.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.ELEVATION_CHART_START.${\n __props.user.start_elevation_at_zero ? 'ZERO' : 'MIN_ALT'\n }`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.USE_RAW_GPX_SPEED.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.USE_RAW_GPX_SPEED.${\n __props.user.use_raw_gpx_speed ? 'RAW_SPEED' : 'FILTERED_SPEED'\n }`\n )), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", null, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PROFILE.USE_RAW_GPX_SPEED.HELP')), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'ACCOUNT', 'PICTURE', 'PREFERENCES', 'SPORTS', 'PRIVACY-POLICY']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6e11106c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = {\n class: \"form-items\",\n for: \"password-field\"\n}\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"new-password-field\"\n}\nconst _hoisted_9 = { class: \"form-buttons\" }\nconst _hoisted_10 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_11 = [\"onClick\"]\nconst _hoisted_12 = { class: \"data-export\" }\nconst _hoisted_13 = { class: \"info-box\" }\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_15 = {\n key: 0,\n class: \"data-export-archive\"\n}\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-download\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_17 = { key: 1 }\nconst _hoisted_18 = { key: 2 }\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-spinner fa-pulse\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { isBefore, subDays } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n watch,\n onUnmounted,\n } from 'vue'\n\n import authApi from \"@/api/authApi\";\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import {IAuthUserProfile, IUserAccountPayload, IExportRequest} from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAccountEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n const userForm: IUserAccountPayload = reactive({\n email: '',\n password: '',\n new_password: '',\n })\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const emailUpdate = ref(false)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const formErrors = ref(false)\n const displayModal: Ref = ref(false)\n const exportRequest: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.EXPORT_REQUEST]\n )\n const exportRequestDate: ComputedRef = computed(\n () => getExportRequestDate()\n )\n const generatingLink: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.GET_REQUEST_DATA_EXPORT)\n updateUserForm(props.user)\n }\n })\n\n function invalidateForm() {\n formErrors.value = true\n }\n function updateUserForm(user: IAuthUserProfile) {\n userForm.email = user.email\n }\n function updatePassword(password: string) {\n userForm.password = password\n }\n function updateNewPassword(new_password: string) {\n userForm.new_password = new_password\n }\n function getExportRequestDate() {\n return exportRequest.value ? formatDate(\n exportRequest.value.created_at,\n user.value.timezone,\n user.value.date_format,\n true,\n null, true\n ) : null\n }\n\n function canRequestExport() {\n return exportRequestDate.value\n ? isBefore(new Date(exportRequestDate.value), subDays(new Date(), 1))\n : true\n }\n function updateProfile() {\n const payload: IUserAccountPayload = {\n email: userForm.email,\n password: userForm.password,\n }\n if (userForm.new_password) {\n payload.new_password = userForm.new_password\n }\n emailUpdate.value = userForm.email !== user.value.email\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT, payload)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n function requestExport() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.REQUEST_DATA_EXPORT)\n }\n async function downloadArchive(filename: string) {\n generatingLink.value = true\n await authApi\n .get(`/auth/account/export/${filename}`, {\n responseType: 'blob',\n })\n .then((response) => {\n const archiveFileUrl = window.URL.createObjectURL(\n new Blob([response.data], { type: 'application/zip' })\n )\n const archive_link = document.createElement('a')\n archive_link.href = archiveFileUrl\n archive_link.setAttribute('download', filename)\n document.body.appendChild(archive_link)\n archive_link.click()\n })\n .finally(() => generatingLink.value = false)\n }\n\n onUnmounted(() => {\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\n watch(\n () => isSuccess.value,\n async (isSuccessValue) => {\n if (isSuccessValue) {\n updatePassword('')\n updateNewPassword('')\n updateUserForm(user.value)\n formErrors.value = false\n }\n }\n )\n watch(\n () => user.value.email,\n async () => {\n updateUserForm(user.value)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n emailUpdate.value && _unref(appConfig).is_email_sending_enabled ? 'EMAIL_' : ''\n }UPDATE`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.email) = $event)),\n disabled: _unref(loading),\n required: true,\n onInvalid: invalidateForm\n }, null, 40, _hoisted_6), [\n [_vModelText, userForm.email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.CURRENT_PASSWORD')) + \"* \", 1),\n _createVNode(PasswordInput, {\n id: \"password-field\",\n disabled: _unref(loading),\n password: userForm.password,\n required: true,\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.NEW_PASSWORD')) + \" \", 1),\n _createVNode(PasswordInput, {\n id: \"new-password-field\",\n disabled: _unref(loading),\n checkStrength: true,\n password: userForm.new_password,\n isSuccess: false,\n onUpdatePassword: updateNewPassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", _hoisted_10, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1),\n (canRequestExport())\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _withModifiers(requestExport, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.REQUEST_DATA_EXPORT')), 9, _hoisted_11))\n : _createCommentVNode(\"\", true)\n ])\n ], 42, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, [\n _hoisted_14,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY')), 1)\n ]),\n (_unref(exportRequest))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EXPORT_REQUEST.DATA_EXPORT')) + \" (\" + _toDisplayString(_unref(exportRequestDate)) + \"): \", 1),\n (_unref(exportRequest).status=== 'successful')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"archive-link\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (downloadArchive(_unref(exportRequest).file_name)), [\"prevent\"]))\n }, [\n _hoisted_16,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE\")) + \" (\" + _toDisplayString(_unref(getReadableFileSize)(_unref(exportRequest).file_size)) + \") \", 1)\n ]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_17, _toDisplayString(_ctx.$t(`user.EXPORT_REQUEST.STATUS.${_unref(exportRequest).status}`)), 1)),\n (generatingLink.value)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.EXPORT_REQUEST.GENERATING_LINK`)) + \" \", 1),\n _hoisted_19\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=6e11106c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6e11106c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean };\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7d35cb46\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_27 = { class: \"checkboxes-label\" }\nconst _hoisted_28 = { class: \"checkboxes\" }\nconst _hoisted_29 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_30 = { class: \"checkbox-label\" }\nconst _hoisted_31 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_32 = { class: \"checkboxes-label\" }\nconst _hoisted_33 = { class: \"checkboxes\" }\nconst _hoisted_34 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_35 = { class: \"checkbox-label\" }\nconst _hoisted_36 = { class: \"info-box raw-speed-help\" }\nconst _hoisted_37 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_38 = { class: \"form-buttons\" }\nconst _hoisted_39 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const startElevationAtZeroData = [\n {\n label: 'ZERO',\n value: true,\n },\n {\n label: 'MIN_ALT',\n value: false,\n },\n ]\n const useRawGpxSpeed = [\n {\n label: 'FILTERED_SPEED',\n value: false,\n },\n {\n label: 'RAW_SPEED',\n value: true,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.start_elevation_at_zero = user.start_elevation_at_zero\n ? user.start_elevation_at_zero\n : false\n userForm.use_raw_gpx_speed = user.use_raw_gpx_speed\n ? user.use_raw_gpx_speed\n : false\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateStartElevationAtZero(value: boolean) {\n userForm.start_elevation_at_zero = value\n }\n function updateUseRawGpxSpeed(value: boolean) {\n userForm.use_raw_gpx_speed = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"span\", _hoisted_27, _toDisplayString(_ctx.$t('user.PROFILE.ELEVATION_CHART_START.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_28, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(startElevationAtZeroData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.start_elevation_at_zero,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateStartElevationAtZero(status.value))\n }, null, 40, _hoisted_29),\n _createElementVNode(\"span\", _hoisted_30, _toDisplayString(_ctx.$t(`user.PROFILE.ELEVATION_CHART_START.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"span\", _hoisted_32, _toDisplayString(_ctx.$t('user.PROFILE.USE_RAW_GPX_SPEED.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_33, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(useRawGpxSpeed, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.use_raw_gpx_speed,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateUseRawGpxSpeed(status.value))\n }, null, 40, _hoisted_34),\n _createElementVNode(\"span\", _hoisted_35, _toDisplayString(_ctx.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${status.label}`)), 1)\n ])\n }), 64))\n ]),\n _createElementVNode(\"div\", _hoisted_36, [\n _createElementVNode(\"span\", null, [\n _hoisted_37,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PROFILE.USE_RAW_GPX_SPEED.HELP')), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_38, [\n _createElementVNode(\"button\", _hoisted_39, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=7d35cb46&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7d35cb46\"]])\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, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0c1693aa\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"privacy-policy-text\" }\nconst _hoisted_2 = { class: \"last-update\" }\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport snarkdown from 'snarkdown'\n import { ComputedRef, capitalize, computed } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { dateStringFormats, formatDate } from '@/utils/dates'\n import { linkifyAndClean } from '@/utils/inputs'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PrivacyPolicy',\n setup(__props) {\n\n const store = useStore()\n const fittrackee_private_policy_date = 'Sun, 26 Feb 2023 17:00:00 GMT'\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const dateFormat = computed(() => getDateFormat())\n const timezone = computed(() => getTimezone())\n const private_policy_date = computed(() => getPolicyDate())\n const paragraphs = [\n 'DATA_COLLECTED', 'INFORMATION_USAGE', 'INFORMATION_PROTECTION',\n 'INFORMATION_DISCLOSURE', 'SITE_USAGE_BY_CHILDREN', 'YOUR_CONSENT',\n 'ACCOUNT_DELETION', 'CHANGES_TO_OUR_PRIVACY_POLICY'\n ]\n\n function getTimezone() {\n return authUser.value.timezone\n ? authUser.value.timezone\n : Intl.DateTimeFormat().resolvedOptions().timeZone\n ? Intl.DateTimeFormat().resolvedOptions().timeZone\n : 'Europe/Paris'\n }\n function getDateFormat() {\n return dateStringFormats[language.value]\n }\n function getPolicyDate() {\n return formatDate(\n appConfig.value.privacy_policy && appConfig.value.privacy_policy_date\n ? `${appConfig.value.privacy_policy_date}`\n : fittrackee_private_policy_date,\n timezone.value,\n dateFormat.value,\n false,\n )\n }\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", null, _toDisplayString(capitalize(_ctx.$t('privacy_policy.TITLE'))), 1),\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('privacy_policy.LAST_UPDATE')) + \": \" + _toDisplayString(_unref(private_policy_date)), 1),\n (_unref(appConfig).privacy_policy)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n innerHTML: _unref(snarkdown)(_unref(linkifyAndClean)(_unref(appConfig).privacy_policy))\n }, null, 8, _hoisted_3))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, _renderList(paragraphs, (paragraph) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: paragraph }, [\n _createElementVNode(\"h2\", null, _toDisplayString(_ctx.$t(`privacy_policy.CONTENT.${paragraph}.TITLE`)), 1),\n _createElementVNode(\"p\", {\n innerHTML: _unref(snarkdown)(_ctx.$t(`privacy_policy.CONTENT.${paragraph}.CONTENT`))\n }, null, 8, _hoisted_4)\n ], 64))\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./PrivacyPolicy.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./PrivacyPolicy.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./PrivacyPolicy.vue?vue&type=style&index=0&id=0c1693aa&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0c1693aa\"]])\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, createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, vModelCheckbox as _vModelCheckbox, withDirectives as _withDirectives, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c77e04be\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-privacy-policy\" }\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = { class: \"policy-content\" }\nconst _hoisted_4 = {\n for: \"accepted_policy\",\n class: \"accepted_policy\"\n}\nconst _hoisted_5 = { class: \"form-buttons\" }\nconst _hoisted_6 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, ref, onUnmounted, toRefs } from 'vue'\n\n import PrivacyPolicy from '@/components/PrivacyPolicy.vue'\n import {AUTH_USER_STORE, ROOT_STORE} from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPrivacyPolicyValidation',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const acceptedPolicy= ref(false)\n\n function onSubmit() {\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.ACCEPT_PRIVACY_POLICY, acceptedPolicy.value\n )\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(user).accepted_privacy_policy)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"p\", null, [\n _createVNode(_component_i18n_t, { keypath: \"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, { to: \"/privacy-policy\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('privacy_policy.TITLE')), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\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 : (_openBlock(), _createElementBlock(\"form\", {\n key: 2,\n onSubmit: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (onSubmit()), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(PrivacyPolicy)\n ]),\n _createElementVNode(\"label\", _hoisted_4, [\n _withDirectives(_createElementVNode(\"input\", {\n type: \"checkbox\",\n id: \"accepted_policy\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((acceptedPolicy).value = $event))\n }, null, 512), [\n [_vModelCheckbox, acceptedPolicy.value]\n ]),\n _createElementVNode(\"span\", null, [\n _createVNode(_component_i18n_t, { keypath: \"user.READ_AND_ACCEPT_PRIVACY_POLICY\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('privacy_policy.TITLE')), 1)\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(_component_router_link, { to: \"/profile/edit/account\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.I_WANT_TO_DELETE_MY_ACCOUNT')), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", _hoisted_6, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 32))\n ]))\n}\n}\n\n})","import script from \"./UserPrivacyPolicyValidation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPrivacyPolicyValidation.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPrivacyPolicyValidation.vue?vue&type=style&index=0&id=c77e04be&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c77e04be\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean };\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n };\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-7b2a3a04\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about-text\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-book fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-github fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = {\n href: \"https://github.com/SamR1/FitTrackee\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-balance-scale fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://choosealicense.com/licenses/agpl-3.0/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \" AGPLv3 \", -1))\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-envelope-o fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\"href\"]\nconst _hoisted_12 = { key: 1 }\nconst _hoisted_13 = [\"href\"]\nconst _hoisted_14 = { class: \"about-instance\" }\nconst _hoisted_15 = [\"innerHTML\"]\n\nimport snarkdown from 'snarkdown'\n import { ComputedRef, computed, capitalize } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { linkifyAndClean } from '@/utils/inputs'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'About',\n setup(__props) {\n\n const store = useStore()\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const weather_provider: ComputedRef> = computed(() =>\n get_weather_provider()\n )\n\n function get_weather_provider() {\n const weather_provider: Record = {}\n if (appConfig.value.weather_provider === 'visualcrossing') {\n weather_provider['name'] = 'Visual Crossing'\n weather_provider['url'] = 'https://www.visualcrossing.com'\n }\n return weather_provider\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('about.FITTRACKEE_DESCRIPTION')\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", null, [\n _hoisted_3,\n _createElementVNode(\"a\", _hoisted_4, _toDisplayString(capitalize(_ctx.$t('common.DOCUMENTATION'))), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_5,\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(_ctx.$t('about.SOURCE_CODE')), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_7,\n _createVNode(_component_i18n_t, { keypath: \"about.FITTRACKEE_LICENSE\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n (_unref(appConfig).admin_contact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(appConfig).admin_contact}`\n }, _toDisplayString(_ctx.$t('about.CONTACT_ADMIN')), 9, _hoisted_11)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(weather_provider) && _unref(weather_provider).name)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createTextVNode(_toDisplayString(_ctx.$t('about.WEATHER_DATA_FROM')) + \" \", 1),\n _createElementVNode(\"a\", {\n href: _unref(weather_provider).url,\n target: \"_blank\",\n rel: \"nofollow noopener\"\n }, _toDisplayString(_unref(weather_provider).name), 9, _hoisted_13)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(appConfig).about)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"p\", _hoisted_14, _toDisplayString(_ctx.$t('about.ABOUT_THIS_INSTANCE')), 1),\n _createElementVNode(\"div\", {\n innerHTML: _unref(snarkdown)(_unref(linkifyAndClean)(_unref(appConfig).about))\n }, null, 8, _hoisted_15)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=7b2a3a04&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-7b2a3a04\"]])\n\nexport default __exports__","\n \n
\n
\n \n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bffb50d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"about\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub about-details\" }\n\nimport About from '@/components/About.vue'\n import BikePic from '@/components/BikePic.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AboutView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(About)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-645a9e33\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport };\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n function hasElevation(workout: IWorkout): boolean {\n return workout && workout.ascent !== null && workout.descent !== null\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (hasElevation(_unref(workout)))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=645a9e33&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-645a9e33\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n };\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n };\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n };\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n };\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n };\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n };\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n };\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n };\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n \n \n \n \n {{ $t('user.REVIEW') }}\n \n \n \n
\n \n\n\n\n\n","import { render } from \"./PrivacyPolicyToAccept.vue?vue&type=template&id=05532ad6&scoped=true\"\nconst script = {}\n\nimport \"./PrivacyPolicyToAccept.vue?vue&type=style&index=0&id=05532ad6&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-05532ad6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-40886688\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"dashboard\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container mobile-menu\" }\nconst _hoisted_3 = { class: \"box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-calendar\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-bar-chart\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = {\n key: 0,\n class: \"container privacy-policy-message\"\n}\nconst _hoisted_13 = { class: \"container\" }\nconst _hoisted_14 = { class: \"container dashboard-container\" }\nconst _hoisted_15 = { class: \"left-container dashboard-sub-container\" }\nconst _hoisted_16 = { class: \"right-container dashboard-sub-container\" }\nconst _hoisted_17 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_18 = {\n key: 1,\n class: \"app-loading\"\n}\n\nimport { ComputedRef, Ref, computed, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import PrivacyPolicyToAccept from '@/components/PrivacyPolicyToAccept.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n (!_unref(authUser).accepted_privacy_policy)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createVNode(PrivacyPolicyToAccept)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(UserStatsCards, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(UserMonthStats, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'chart') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(UserRecords, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'records') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(UserCalendar, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'calendar') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(Timeline, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'timeline') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ])\n ]),\n _hoisted_17\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _createVNode(_component_Loader)\n ]))\n}\n}\n\n})","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=40886688&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-40886688\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"not-found view\" }\n\nimport NotFound from '@/components/Common/NotFound.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFoundView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(NotFound)\n ]))\n}\n}\n\n})","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"privacy-policy\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1)\n\nimport { onBeforeMount } from 'vue'\n\n import PrivacyPolicy from '@/components/PrivacyPolicy.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PrivacyPolicyView',\n setup(__props) {\n\n const store = useStore()\n\n onBeforeMount(() => {\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(PrivacyPolicy)\n ]),\n _hoisted_3\n ]))\n}\n}\n\n})","import script from \"./PrivacyPolicyView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./PrivacyPolicyView.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58043acb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoginOrRegister',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(LoginOrRegisterForm, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=58043acb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58043acb\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport UserPrivacyPolicyValidation from '@/components/User/ProfileEdition/UserPrivacyPolicyValidation.vue'\nimport AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport PrivacyPolicyView from '@/views/PrivacyPolicyView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n {\n path: 'privacy-policy',\n name: 'UserPrivacyPolicy',\n component: UserPrivacyPolicyValidation,\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/privacy-policy',\n name: 'PrivacyPolicy',\n component: PrivacyPolicyView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about', '/privacy-policy']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n ACCEPT_PRIVACY_POLICY = 'ACCEPT_PRIVACY_POLICY',\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_REQUEST_DATA_EXPORT = 'GET_REQUEST_DATA_EXPORT',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n REQUEST_DATA_EXPORT = 'REQUEST_DATA_EXPORT',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n EXPORT_REQUEST = 'EXPORT_REQUEST',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n SET_EXPORT_REQUEST = 'SET_EXPORT_REQUEST',\n}\n","export enum OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_PRIVACY_POLICY = 'GET_APPLICATION_PRIVACY_POLICY',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_PRIVACY_POLICY = 'UPDATE_APPLICATION_PRIVACY_POLICY',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled' && error.response) {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext