diff --git a/.env.example b/.env.example index 03c339fb..3b9acf6d 100644 --- a/.env.example +++ b/.env.example @@ -25,6 +25,7 @@ export SENDER_EMAIL= # Workouts # export TILE_SERVER_URL= +# export STATICMAP_SUBDOMAINS= # export MAP_ATTRIBUTION= # export DEFAULT_STATICMAP=False # export WEATHER_API_KEY= diff --git a/CHANGELOG.md b/CHANGELOG.md index 34d08fad..3193ed8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Change log +## Version 0.6.10 (2022/07/13) + +### Issues Closed + +#### Bugs Fixed + +* [#210](https://github.com/SamR1/FitTrackee/issues/210) - ERROR - could not download 6 tiles + **Note**: for tile server requiring subdomains, see the new environment variable [`STATICMAP_SUBDOMAINS`](https://samr1.github.io/FitTrackee/installation.html#envvar-STATICMAP_SUBDOMAINS) + +### Pull Requests + +#### Bugs Fixed + +* [#209](https://github.com/SamR1/FitTrackee/pull/209) - Incorrect duration with track containing multiple segments + +Thanks to @gorgobacka + +In this release 1 issue was closed. + + ## Version 0.6.9 (2022/07/03) FitTrackee is now available in German (thanks to @gorgobacka). diff --git a/VERSION b/VERSION index 1a5ac0d4..04e84f89 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.9 +0.6.10 diff --git a/docs/.buildinfo b/docs/.buildinfo index d0f64bb3..9d67b457 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: be957a0969da3c052862eb24f6a139c9 +config: c52394c093f45e0ad0599926c90fff71 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png index 328f3aa5..78cff17f 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 3f07ca60..ca67c5f7 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 64668f67..8bceb460 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 a1374a3e..644f14f0 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 c1a46ad8..afbd16d1 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 706e2a90..a2816269 100644 Binary files a/docs/_images/fittrackee_screenshot-06.png and b/docs/_images/fittrackee_screenshot-06.png differ diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt index 34d08fad..3193ed8b 100644 --- a/docs/_sources/changelog.md.txt +++ b/docs/_sources/changelog.md.txt @@ -1,5 +1,25 @@ # Change log +## Version 0.6.10 (2022/07/13) + +### Issues Closed + +#### Bugs Fixed + +* [#210](https://github.com/SamR1/FitTrackee/issues/210) - ERROR - could not download 6 tiles + **Note**: for tile server requiring subdomains, see the new environment variable [`STATICMAP_SUBDOMAINS`](https://samr1.github.io/FitTrackee/installation.html#envvar-STATICMAP_SUBDOMAINS) + +### Pull Requests + +#### Bugs Fixed + +* [#209](https://github.com/SamR1/FitTrackee/pull/209) - Incorrect duration with track containing multiple segments + +Thanks to @gorgobacka + +In this release 1 issue was closed. + + ## Version 0.6.9 (2022/07/03) FitTrackee is now available in German (thanks to @gorgobacka). diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt index d7de6753..7cc2ae1a 100644 --- a/docs/_sources/installation.rst.txt +++ b/docs/_sources/installation.rst.txt @@ -175,6 +175,16 @@ deployment method. :default: `https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png` +.. envvar:: STATICMAP_SUBDOMAINS 🆕 + + .. versionadded:: 0.6.10 + + | Some tile servers require a subdomain, see `Map tile server `__. + | For instance: "a,b,c" for OSM France. + + :default: empty string + + .. envvar:: MAP_ATTRIBUTION .. versionadded:: 0.4.0 @@ -184,11 +194,17 @@ deployment method. :default: `© OpenStreetMap contributors` -.. envvar:: DEFAULT_STATICMAP 🆕 +.. envvar:: DEFAULT_STATICMAP .. versionadded:: 0.4.9 - If `True`, it keeps using default tile server to generate static maps. + | If `True`, it keeps using default tile server to generate static maps (Komoot.de tile server). + | Otherwise, it uses the tile server set in `TILE_SERVER_URL `__. + + .. versionchanged:: 0.6.10 + + | This variable is now case-insensitive. + | If `False`, depending on tile server, `subdomains `__ may be mandatory. :default: False @@ -256,6 +272,20 @@ To keep using **ThunderForest Outdoors**, the configuration is: .. note:: | Check the terms of service of tile provider for map attribution + +.. versionchanged:: 0.6.10 + +Since the tile server can be used for static map generation, some servers require a subdomain. + +For instance, to set OSM France tile server, the expected values are: + +- ``TILE_SERVER_URL=https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png`` +- ``MAP_ATTRIBUTION='fond de carte par OpenStreetMap France, sous licence CC BY-SA'`` +- ``STATICMAP_SUBDOMAINS=a,b,c`` + +The subdomain will be chosen randomly. + + Installation ~~~~~~~~~~~~ @@ -395,13 +425,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.6.9): +- Download the last release (for now, it is the release v0.6.10): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.9.tar.gz - $ tar -xzf v0.6.9.tar.gz - $ mv FitTrackee-0.6.9 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.10.tar.gz + $ tar -xzf v0.6.10.tar.gz + $ mv FitTrackee-0.6.10 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -521,13 +551,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.6.9) and overwrite existing files: +- Download the last release (for now, it is the release v0.6.10) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.9.tar.gz - $ tar -xzf v0.6.9.tar.gz - $ cp -R FitTrackee-0.6.9/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.10.tar.gz + $ tar -xzf v0.6.10.tar.gz + $ cp -R FitTrackee-0.6.10/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). @@ -590,6 +620,7 @@ Examples (to update depending on your application configuration and given distri Environment="SENDER_EMAIL=" Environment="REDIS_URL=" Environment="TILE_SERVER_URL=" + Environment="STATICMAP_SUBDOMAINS=" Environment="MAP_ATTRIBUTION=" Environment="WEATHER_API_KEY=" WorkingDirectory=/home// diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index d5d45972..74e4dc3f 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.6.9', + VERSION: '0.6.10', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/api/auth.html b/docs/api/auth.html index 286ced46..946cf66a 100644 --- a/docs/api/auth.html +++ b/docs/api/auth.html @@ -5,7 +5,7 @@ - Authentication — FitTrackee 0.6.9 + <title>Authentication — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/api/configuration.html b/docs/api/configuration.html index 64d6e555..2b05eeb4 100644 --- a/docs/api/configuration.html +++ b/docs/api/configuration.html @@ -5,7 +5,7 @@ - Configuration — FitTrackee 0.6.9 + <title>Configuration — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 @@ -152,7 +152,7 @@ "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.6.9" + "version": "0.6.10" }, "status": "success" } @@ -192,7 +192,7 @@ "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.6.9" + "version": "0.6.10" }, "status": "success" } diff --git a/docs/api/index.html b/docs/api/index.html index ddee6ece..883748fb 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -5,7 +5,7 @@ - API documentation — FitTrackee 0.6.9 + <title>API documentation — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/api/records.html b/docs/api/records.html index 9ae0e440..bff4d35d 100644 --- a/docs/api/records.html +++ b/docs/api/records.html @@ -5,7 +5,7 @@ - Records — FitTrackee 0.6.9 + <title>Records — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/api/sports.html b/docs/api/sports.html index f2dfbbe7..23ee93ec 100644 --- a/docs/api/sports.html +++ b/docs/api/sports.html @@ -5,7 +5,7 @@ - Sports — FitTrackee 0.6.9 + <title>Sports — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/api/stats.html b/docs/api/stats.html index f659cf49..fa92e3f5 100644 --- a/docs/api/stats.html +++ b/docs/api/stats.html @@ -5,7 +5,7 @@ - Statistics — FitTrackee 0.6.9 + <title>Statistics — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/api/users.html b/docs/api/users.html index 37125711..9ba98140 100644 --- a/docs/api/users.html +++ b/docs/api/users.html @@ -5,7 +5,7 @@ - Users — FitTrackee 0.6.9 + <title>Users — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/api/workouts.html b/docs/api/workouts.html index e8b9f5e2..02b3bc60 100644 --- a/docs/api/workouts.html +++ b/docs/api/workouts.html @@ -5,7 +5,7 @@ - Workouts — FitTrackee 0.6.9 + <title>Workouts — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/changelog.html b/docs/changelog.html index 75b479cc..f7e6c62a 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -5,7 +5,7 @@ - Change log — FitTrackee 0.6.9 + <title>Change log — FitTrackee 0.6.10 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.9 + 0.6.10 @@ -79,279 +79,290 @@ role="menu" aria-labelledby="dLabelLocalToc">
  • Change log
      -
    • Version 0.6.9 (2022/07/03)
        +
      • Version 0.6.10 (2022/07/13) +
      • +
      • Version 0.6.9 (2022/07/03)
      • 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) -
            • -
            • Version 0.6.3 (2022/04/09) -
            • -
            • Version 0.6.2 (2022/04/03)
            • -
            • Version 0.6.1 (2022/03/27)
                -
              • Issues Closed
                  +
                • Version 0.6.3 (2022/04/09)
                • -
                • Version 0.6.0 (2022/03/27)
                    +
                  • Version 0.6.2 (2022/04/03)
                    • Issues Closed
                    • -
                    • Pull Requests +
                    • +
                    • Version 0.6.1 (2022/03/27) +
                    • +
                    • Version 0.6.0 (2022/03/27)
                    • 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) -
                          • -
                          • Version 0.5.4 (2022/01/01) -
                          • -
                          • Version 0.5.3 (2022/01/01)
                          • -
                          • Version 0.5.2 (2021/12/19)
                              +
                            • Version 0.5.4 (2022/01/01) +
                            • +
                            • Version 0.5.3 (2022/01/01) +
                            • +
                            • Version 0.5.2 (2021/12/19)
                            • Version 0.5.1 (2021/11/30)
                                -
                              • Issues Closed
                              • Version 0.5.0 (2021/11/14)
                                  -
                                • Issues Closed
                                • Version 0.4.9 (2021/07/16)
                                    -
                                  • 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)
                                              -
                                            • Issues Closed
                                            • Version 0.4.3 (2021/01/10)
                                                -
                                              • Issues Closed
                                              • Version 0.4.2 (2021/01/03)
                                              • Version 0.4.1 (2020/12/31) -
                                              • -
                                              • Version 0.4.0 - FitTrackee on PyPI (2020/09/19) -
                                              • -
                                              • Version 0.3.0 - Administration (2020/07/15)
                                              • +
                                              • Version 0.4.0 - FitTrackee on PyPI (2020/09/19) +
                                              • +
                                              • Version 0.3.0 - Administration (2020/07/15) +
                                              • Version 0.2.5 - Fix and improvements (2020/01/31)
                                              • Version 0.2.4 - Minor fix (2020/01/30)
                                                  -
                                                • Issues Closed
                                                • Version 0.2.3 - FitTrackee available in French (2019/12/29)
                                                    -
                                                  • Issues Closed
                                                  • Version 0.2.2 - Statistics fix (2019/09/23)
                                                      -
                                                    • Issues Closed
                                                    • Version 0.2.1 - Fix and improvements (2019/09/01)
                                                        -
                                                      • Issues Closed
                                                      • Version 0.2.0 - Statistics (2019/07/07)
                                                          -
                                                        • Issues Closed
                                                        • Version 0.1.1 - Fix and improvements (2019/02/07)
                                                            -
                                                          • Issues Closed
                                                          • Version 0.1.0 - First release 🎉 (2018-07-04)
                                                              -
                                                            • Issues Closed @@ -403,19 +414,42 @@

                                                              Change log

                                                              +
                                                              +

                                                              Version 0.6.10 (2022/07/13)

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              +
                                                                +
                                                              • #210 - ERROR - could not download 6 tiles
                                                                Note: for tile server requiring subdomains, see the new environment variable STATICMAP_SUBDOMAINS

                                                              • +
                                                              +
                                                              +
                                                              +
                                                              +

                                                              Pull Requests

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              +
                                                                +
                                                              • #209 - Incorrect duration with track containing multiple segments

                                                              • +
                                                              +

                                                              Thanks to @gorgobacka

                                                              +

                                                              In this release 1 issue was closed.

                                                              +
                                                              +
                                                              +

                                                              Version 0.6.9 (2022/07/03)

                                                              FitTrackee is now available in German (thanks to @gorgobacka).
                                                              And translations can be updated on Weblate.

                                                              -
                                                              -

                                                              Issues Closed

                                                              +
                                                              +

                                                              Issues Closed

                                                              Features

                                                              • #200 - Detect browser language to use matching translation if available

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • PR#208 - fix order on records cards

                                                              • #201 - html lang attribute is not updated when changing language

                                                              • @@ -439,10 +473,10 @@

                                                              Version 0.6.8 (2022/06/22)

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #193 - Allow deleting a workout when files are missing

                                                              • #192 - Returns 404 instead of 500 when map file not found

                                                              • @@ -461,10 +495,10 @@

                                                              Version 0.6.7 (2022/06/11)

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #156 - Process gpx file with offset

                                                              @@ -474,8 +508,8 @@

                                                              Version 0.6.6 (2022/05/29)

                                                              -
                                                              -

                                                              Misc

                                                              +
                                                              +

                                                              Misc

                                                              No new features in this release, only dependencies update and code refacto before introducing new features.

                                                              @@ -484,10 +518,10 @@

                                                              It is now possible to start FitTrackee without a configured SMTP provider (see documentation). It reduces pre-requisites for single-user instances.

                                                              To manage users, a new CLI is available.

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Features

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Features

                                                              • #180 - allow using FitTrackee without SMTP server

                                                              @@ -497,10 +531,10 @@ It reduces pre-requisites for single-user instances.

                                                              Version 0.6.4 (2022/04/23)

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #178 - cannot send email with TLS

                                                              @@ -510,10 +544,10 @@ It reduces pre-requisites for single-user instances.

                                                              Version 0.6.3 (2022/04/09)

                                                              -
                                                              -

                                                              Pull Requests

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Pull Requests

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #177 - Minor fixes

                                                                  @@ -527,10 +561,10 @@ It reduces pre-requisites for single-user instances.

                                                              Version 0.6.2 (2022/04/03)

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #175 - Distance card on dashboard is not refreshed

                                                              • #173 - link to user profile in workout card is incorrect

                                                              • @@ -541,10 +575,10 @@ It reduces pre-requisites for single-user instances.

                                                              Version 0.6.1 (2022/03/27)

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #171 - Stats chart is not updated correctly

                                                              @@ -555,26 +589,26 @@ It reduces pre-requisites for single-user instances.

                                                              Version 0.6.0 (2022/03/27)

                                                              This version introduces some changes on user registration.
                                                              From now on, a user needs to confirm his account after registration (an email with confirmation instructions is sent after registration).

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              Features

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              Features

                                                              • #155 - Improve user registration

                                                              • #106 - Allow user to update email

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #169 - user picture is not refreshed after update

                                                              -
                                                              -

                                                              Pull Requests

                                                              -
                                                              -

                                                              Bugs Fixed

                                                              +
                                                              +

                                                              Pull Requests

                                                              +
                                                              +

                                                              Bugs Fixed

                                                              • #161 - Minor translation issue on ‘Farthest’

                                                              • #160 - Minor translation issue on APP_ERROR

                                                              • @@ -589,17 +623,17 @@ It reduces pre-requisites for single-user instances.

                                                                This release contains several fixes including security fixes.
                                                                Thanks to @DanielSiersleben for the report.

                                                                And from now on, admin account is not created on application initialization.
                                                                A new command is added to set administration rights on the account created after registration (see documentation)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Misc

                                                                • #149 - improve database initialisation

                                                                -
                                                                -

                                                                Pull Requests

                                                                +
                                                                +

                                                                Pull Requests

                                                                Security

                                                                  @@ -617,8 +651,8 @@ It reduces pre-requisites for single-user instances.

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

                                                                • #152 - Fixes and improvements:

                                                                    @@ -634,17 +668,17 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.6 (2022/02/05)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #146 - incorrect label on workouts filters

                                                                -
                                                                -

                                                                Pull Requests

                                                                +
                                                                +

                                                                Pull Requests

                                                                • #145 - fix on database models

                                                                @@ -653,8 +687,8 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.5 (2022/01/19)

                                                                -
                                                                -

                                                                Issues Closed

                                                                +
                                                                +

                                                                Issues Closed

                                                                New Features

                                                                  @@ -664,8 +698,8 @@ It reduces pre-requisites for single-user instances.

                                                                • #134 - Wind direction

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • 877fa0f - fix sport icon color (when changed) on calendar on small resolutions

                                                                @@ -675,10 +709,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.4 (2022/01/01)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #131 - No workouts displayed on calendar

                                                                @@ -688,10 +722,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.3 (2022/01/01)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

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

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

                                                                • @@ -702,10 +736,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.2 (2021/12/19)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

                                                                • #123 - Allow user to reset preferences for a sport

                                                                • #121 - Add activity : snowshoes

                                                                • @@ -716,10 +750,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.1 (2021/11/30)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

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

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

                                                                • @@ -731,10 +765,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.5.0 (2021/11/14)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

                                                                • #99 - Display workout with imperial units

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

                                                                • @@ -742,21 +776,21 @@ It reduces pre-requisites for single-user instances.

                                                                • #18 - Better UI

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

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

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

                                                                • #104 - Switch to AGPLv3 license

                                                                -
                                                                -

                                                                Pull Requests

                                                                +
                                                                +

                                                                Pull Requests

                                                                • #101 - Docker updates for full files

                                                                • #100 - Add client application in docker for development

                                                                • @@ -773,17 +807,17 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.9 (2021/07/16)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

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

                                                                • #81 - display remaining characters in textarea

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

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

                                                                • #80 - can not save notes with control characters

                                                                • @@ -794,10 +828,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.8 (2021/07/03)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #79 - Fails to start after make rebuild

                                                                @@ -807,17 +841,17 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.7 (2021/04/07)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

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

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

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

                                                                @@ -826,10 +860,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.6 (2021/02/21)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

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

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

                                                                • @@ -841,10 +875,10 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.5 (2021/02/17)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

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

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

                                                                • @@ -855,17 +889,17 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.4 (2021/01/31)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #62 - Error when sending reset password email

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

                                                                • Refactoring before introducing new features.

                                                                • Add docker files for evaluation purposes.

                                                                • @@ -875,16 +909,16 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.3 (2021/01/10)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

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

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #59 - No message displayed on uploading image error

                                                                @@ -894,18 +928,18 @@ It reduces pre-requisites for single-user instances.

                                                                Version 0.4.2 (2021/01/03)

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

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

                                                                Version 0.4.1 (2020/12/31)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

                                                                • #57 - Use uuid for activities

                                                                @@ -921,10 +955,10 @@ new features.

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

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              New Features

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              New Features

                                                              • #54 - Tile server can be changed

                                                              • #53 - Simplify FitTrackee installation

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

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

                                                              -
                                                              -

                                                              Issues Closed

                                                              -
                                                              -

                                                              New Features

                                                              +
                                                              +

                                                              Issues Closed

                                                              +
                                                              +

                                                              New Features

                                                              • #50 - A user can reset his password

                                                              • #17 - A user can delete his account

                                                              • @@ -955,8 +989,8 @@ see

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

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

                                                                This version contains minor fix and improvements on client side:

                                                                • 4c3fc34 - empty user data on logout

                                                                • @@ -969,10 +1003,10 @@ add URL interceptors to simplify routes definition

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

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

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

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

                                                                • @@ -983,17 +1017,17 @@ add URL interceptors to simplify routes definition

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

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

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

                                                                • #40 - Localize FitTrackee (i18n)

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

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

                                                                @@ -1003,10 +1037,10 @@ add URL interceptors to simplify routes definition

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

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #41 - User statistics are incorrect

                                                                @@ -1016,10 +1050,10 @@ add URL interceptors to simplify routes definition

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

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

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

                                                                • #14 - Display segments informations

                                                                • @@ -1030,15 +1064,15 @@ add URL interceptors to simplify routes definition

                                                                • #37 - Display map on activities list

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #34 - Weather is not displayed anymore

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

                                                                @@ -1047,17 +1081,17 @@ add URL interceptors to simplify routes definition

                                                                Version 0.2.0 - Statistics (2019/07/07)

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

                                                                • #13 - Detailed statistics

                                                                -
                                                                -

                                                                Misc

                                                                +
                                                                +

                                                                Misc

                                                                • Update dependencies

                                                                @@ -1066,17 +1100,17 @@ add URL interceptors to simplify routes definition

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

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

                                                                • #25 - Display records on calendar

                                                                • #22 - Add a total on current month statistics

                                                                -
                                                                -

                                                                Bugs Fixed

                                                                +
                                                                +

                                                                Bugs Fixed

                                                                • #31 - Use moving duration for stats

                                                                • #29 - Pause duration calculation with segments

                                                                • @@ -1125,10 +1159,10 @@ add URL interceptors to simplify routes definition

                                                                • no administration for now

                                                                ➡️ more informations: see documentation and current issues

                                                                -
                                                                -

                                                                Issues Closed

                                                                -
                                                                -

                                                                New Features

                                                                +
                                                                +

                                                                Issues Closed

                                                                +
                                                                +

                                                                New Features

                                                                • #11 - Timezone support

                                                                • #10 - Add a note to an activity

                                                                • diff --git a/docs/cli.html b/docs/cli.html index f8b27248..88075a2f 100644 --- a/docs/cli.html +++ b/docs/cli.html @@ -5,7 +5,7 @@ - Command line interface — FitTrackee 0.6.9 + <title>Command line interface — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/features.html b/docs/features.html index d22ec58f..9654bda0 100644 --- a/docs/features.html +++ b/docs/features.html @@ -5,7 +5,7 @@ - Features — FitTrackee 0.6.9 + <title>Features — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/genindex.html b/docs/genindex.html index 0a322271..82974fba 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,7 +4,7 @@ - Index — FitTrackee 0.6.9 + <title>Index — FitTrackee 0.6.10 documentation @@ -38,7 +38,7 @@ FitTrackee - 0.6.9 + 0.6.10 @@ -135,7 +135,7 @@
                                                                • DATABASE_URL
                                                                • -
                                                                • DEFAULT_STATICMAP 🆕 +
                                                                • DEFAULT_STATICMAP
                                                                • EMAIL_URL
                                                                • @@ -150,6 +150,8 @@
                                                                • REDIS_URL
                                                                • SENDER_EMAIL +
                                                                • +
                                                                • STATICMAP_SUBDOMAINS 🆕
                                                                • TILE_SERVER_URL
                                                                • diff --git a/docs/http-routingtable.html b/docs/http-routingtable.html index 235475e9..2f6d3717 100644 --- a/docs/http-routingtable.html +++ b/docs/http-routingtable.html @@ -4,7 +4,7 @@ - HTTP Routing Table — FitTrackee 0.6.9 + <title>HTTP Routing Table — FitTrackee 0.6.10 documentation @@ -45,7 +45,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/index.html b/docs/index.html index 1da30745..5e89c042 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ - FitTrackee — FitTrackee 0.6.9 + <title>FitTrackee — FitTrackee 0.6.10 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.9 + 0.6.10 diff --git a/docs/installation.html b/docs/installation.html index e316b041..cdf45628 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -5,7 +5,7 @@ - Installation — FitTrackee 0.6.9 + <title>Installation — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10 @@ -420,6 +420,23 @@ see +
                                                                  +STATICMAP_SUBDOMAINS 🆕
                                                                  +
                                                                  +

                                                                  New in version 0.6.10.

                                                                  +
                                                                  +
                                                                  +
                                                                  Some tile servers require a subdomain, see Map tile server.
                                                                  +
                                                                  For instance: “a,b,c” for OSM France.
                                                                  +
                                                                  +
                                                                  +
                                                                  Default:
                                                                  +

                                                                  empty string

                                                                  +
                                                                  +
                                                                  +
                                                                  +
                                                                  MAP_ATTRIBUTION
                                                                  @@ -436,11 +453,21 @@ see
                                                                  -DEFAULT_STATICMAP 🆕
                                                                  +DEFAULT_STATICMAP

                                                                  New in version 0.4.9.

                                                                  -

                                                                  If True, it keeps using default tile server to generate static maps.

                                                                  +
                                                                  +
                                                                  If True, it keeps using default tile server to generate static maps (Komoot.de tile server).
                                                                  +
                                                                  Otherwise, it uses the tile server set in TILE_SERVER_URL.
                                                                  +
                                                                  +
                                                                  +

                                                                  Changed in version 0.6.10.

                                                                  +
                                                                  +
                                                                  +
                                                                  This variable is now case-insensitive.
                                                                  +
                                                                  If False, depending on tile server, subdomains may be mandatory.
                                                                  +
                                                                  Default:

                                                                  False

                                                                  @@ -527,6 +554,17 @@ The tile server can be changed by updating Check the terms of service of tile provider for map attribution +
                                                                  +

                                                                  Changed in version 0.6.10.

                                                                  +
                                                                  +

                                                                  Since the tile server can be used for static map generation, some servers require a subdomain.

                                                                  +

                                                                  For instance, to set OSM France tile server, the expected values are:

                                                                  +
                                                                    +
                                                                  • TILE_SERVER_URL=https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png

                                                                  • +
                                                                  • MAP_ATTRIBUTION='fond de carte par <a href="http://www.openstreetmap.fr/mentions-legales/" target="_blank" rel="nofollow noopener">OpenStreetMap France</a>, sous&nbsp;<a href="http://creativecommons.org/licenses/by-sa/2.0/fr/" target="_blank" rel="nofollow noopener">licence CC BY-SA</a>'

                                                                  • +
                                                                  • STATICMAP_SUBDOMAINS=a,b,c

                                                                  • +
                                                                  +

                                                                  The subdomain will be chosen randomly.

                                                                @@ -675,11 +713,11 @@ $ make install-db
                                                                  -
                                                                • Download the last release (for now, it is the release v0.6.9):

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

                                                                -
                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.9.tar.gz
                                                                -$ tar -xzf v0.6.9.tar.gz
                                                                -$ mv FitTrackee-0.6.9 FitTrackee
                                                                +
                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.10.tar.gz
                                                                +$ tar -xzf v0.6.10.tar.gz
                                                                +$ mv FitTrackee-0.6.10 FitTrackee
                                                                 $ cd FitTrackee
                                                                 
                                                                @@ -799,11 +837,11 @@ $ source .env
                                                                • Stop the application

                                                                • Change to the directory where FitTrackee directory is located

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

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

                                                                -
                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.9.tar.gz
                                                                -$ tar -xzf v0.6.9.tar.gz
                                                                -$ cp -R FitTrackee-0.6.9/* FitTrackee/
                                                                +
                                                                $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.10.tar.gz
                                                                +$ tar -xzf v0.6.10.tar.gz
                                                                +$ cp -R FitTrackee-0.6.10/* FitTrackee/
                                                                 $ cd FitTrackee
                                                                 
                                                                @@ -866,6 +904,7 @@ One way is to use a systemd services and Nginx Environment="SENDER_EMAIL=" Environment="REDIS_URL=" Environment="TILE_SERVER_URL=" +Environment="STATICMAP_SUBDOMAINS=" Environment="MAP_ATTRIBUTION=" Environment="WEATHER_API_KEY=" WorkingDirectory=/home/<USER>/<FITTRACKEE DIRECTORY> diff --git a/docs/objects.inv b/docs/objects.inv index dcd5e60c..fed2551b 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/search.html b/docs/search.html index a6c709de..1351a5dc 100644 --- a/docs/search.html +++ b/docs/search.html @@ -4,7 +4,7 @@ - Search — FitTrackee 0.6.9 + <title>Search — FitTrackee 0.6.10 documentation @@ -45,7 +45,7 @@ FitTrackee - 0.6.9 + 0.6.10
                                                                diff --git a/docs/searchindex.js b/docs/searchindex.js index b7d9c3a1..e0afa833 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication", "Configuration", "API documentation", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 7], "api": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "auth": [0, 1, 3, 4, 5, 6, 7, 12], "regist": [0, 1, 12], "user": [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 14], "send": [0, 6, 8, 10, 12], "confirm": [0, 8, 10, 12], "email": [0, 1, 6, 8, 9, 10, 13], "The": [0, 8, 9, 10, 12], "newli": [0, 12], "creat": [0, 7, 8, 10, 12], "account": [0, 6, 8, 9, 12], "inact": [0, 6, 10, 12], "must": [0, 1, 4, 6, 8, 10, 12, 13], "hi": [0, 6, 8, 10], "activ": [0, 4, 6, 8, 9, 10, 11, 12], "exampl": [0, 1, 3, 4, 5, 6, 7, 11, 12], "request": [0, 1, 3, 4, 5, 6, 7, 12], "http": [0, 1, 3, 4, 5, 6, 7, 12], "1": [0, 1, 3, 4, 5, 6, 7, 10, 12], "content": [0, 1, 3, 4, 5, 6, 7], "type": [0, 1, 3, 4, 5, 6, 7, 12], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "json": [0, 1, 3, 4, 5, 6, 7], "respons": [0, 1, 3, 4, 5, 6, 7], "success": [0, 1, 3, 4, 5, 6, 7], "200": [0, 1, 3, 4, 5, 6, 7, 8], "statu": [0, 1, 3, 4, 5, 6, 7, 9], "error": [0, 1, 4, 6, 7, 8, 10, 12, 13], "registr": [0, 1, 8, 10, 12], "400": [0, 1, 4, 6, 7], "bad": [0, 1, 4, 6, 7], "messag": [0, 1, 7, 8, 9], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13], "n": 0, "object": [0, 1, 4, 6, 7], "usernam": [0, 6, 8, 12], "string": [0, 1, 4, 5, 6, 7, 12], "3": [0, 4, 5, 6, 7, 10, 12], "30": [0, 5], "charact": [0, 8], "requir": 0, "password": [0, 6, 8, 9, 10, 12], "8": [0, 7], "lang": [0, 8], "languag": [0, 6, 8, 10], "prefer": [0, 6, 8], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 12], "fallback": 0, "en": [0, 6], "english": 0, "code": [0, 1, 3, 4, 5, 6, 7, 8], "ok": [0, 1, 3, 4, 5, 6, 7], "payload": [0, 1, 4, 6, 7], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 6, 7, 8, 9, 10, 12], "alphanumer": [0, 8], "underscor": 0, "_": [0, 8], "allow": [0, 1, 7, 8, 10, 11], "403": [0, 1, 4, 5, 6, 7], "forbidden": [0, 1, 4, 5, 6, 7], "disabl": [0, 8, 10, 12], "500": [0, 1, 4, 6, 7, 8], "intern": [0, 1, 4, 6, 7], "server": [0, 1, 4, 6, 7, 8, 10, 11], "pleas": [0, 1, 3, 4, 5, 6, 7, 8], "try": [0, 6, 7], "again": [0, 1, 3, 4, 5, 6, 7], "contact": [0, 1, 6, 7, 10], "administr": [0, 1, 6, 7, 14], "after": [0, 8, 10, 12], "auth_token": 0, "web": [0, 11, 12], "token": [0, 1, 3, 4, 5, 6, 7], "resend": 0, "instruct": [0, 8, 10, 12], "If": [0, 10, 12], "thi": [0, 7, 8, 9, 10, 11, 12], "endpoint": [0, 1, 8], "avail": [0, 3, 9, 10, 12], "resent": 0, "404": [0, 4, 5, 6, 7, 8], "Not": [0, 4, 5, 6, 7], "found": [0, 4, 5, 6, 7, 8], "url": [0, 8, 12, 13], "wa": [0, 8], "login": 0, "an": [0, 1, 4, 6, 8, 10, 12, 13], "can": [0, 6, 8, 10, 11, 12, 13], "log": [0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7], "unauthor": [0, 1, 3, 4, 5, 6, 7], "credenti": [0, 12], "get": [0, 1, 3, 4, 5, 6, 7], "profil": [0, 8], "info": 0, "data": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "admin": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12], "fals": [0, 1, 4, 6, 7, 12], "bio": [0, 6], "null": [0, 4, 6, 7], "birth_dat": [0, 6], "created_at": [0, 6], "sun": [0, 3, 6, 7], "14": [0, 6, 7], "jul": [0, 3, 6, 7], "2019": [0, 3, 5, 6, 7], "09": [0, 6], "58": [0, 6, 8], "gmt": [0, 3, 6, 7], "sam": [0, 6], "com": [0, 1, 6, 12], "first_nam": [0, 6], "imperial_unit": [0, 6], "is_act": [0, 4, 6], "true": [0, 1, 4, 6, 8, 12], "last_nam": [0, 6], "locat": [0, 6, 12], "nb_sport": [0, 6], "nb_workout": [0, 5, 6], "6": [0, 1, 4, 6, 7, 9, 10, 12], "pictur": [0, 6, 7, 8], "record": [0, 2, 6, 7, 8, 10], "id": [0, 3, 4, 5, 6, 7], "9": [0, 1, 3, 6, 10, 12], "record_typ": [0, 3, 6, 7], "AS": [0, 3, 6, 7], "sport_id": [0, 3, 4, 5, 6, 7], "valu": [0, 3, 6, 7], "18": [0, 3, 6, 7, 8], "workout_d": [0, 3, 6, 7], "07": [0, 3, 6, 7], "08": [0, 3, 6], "00": [0, 3, 6, 7], "workout_id": [0, 3, 6, 7], "hvybqybra7wwxpastwr4v2": [0, 3, 6], "10": [0, 1, 3, 6, 7, 12], "fd": [0, 3, 6, 7], "11": [0, 3, 6, 10], "ld": [0, 3, 6, 7], "01": [0, 3, 5, 6, 7], "12": [0, 3, 6, 7], "ms": [0, 3, 6, 7], "sports_list": [0, 6], "4": [0, 4, 5, 6, 7, 12], "timezon": [0, 6, 7, 8, 10], "europ": [0, 6], "pari": [0, 6], "total_dist": [0, 5, 6], "67": [0, 6], "895": [0, 6], "total_dur": [0, 5, 6], "50": [0, 6, 8], "27": [0, 6], "weekm": [0, 5, 6], "header": [0, 1, 3, 4, 5, 6, 7], "author": [0, 1, 3, 4, 5, 6, 7], "oauth": [0, 1, 3, 4, 5, 6, 7], "2": [0, 1, 3, 4, 5, 6, 7, 10, 12], "0": [0, 1, 3, 4, 5, 6, 7, 9, 10, 12], "bearer": [0, 1, 3, 4, 5, 6, 7], "signatur": [0, 1, 3, 4, 5, 6, 7], "expir": [0, 1, 3, 4, 5, 6, 7], "edit": [0, 8, 10], "updat": [0, 1, 4, 6, 7, 8, 10, 12], "first": [0, 10], "name": [0, 5, 6, 8, 12], "last": [0, 12], "biographi": 0, "birth": [0, 8], "date": [0, 5, 7, 8, 10], "format": [0, 5, 7], "y": [0, 5, 7, 12], "m": [0, 5, 7], "d": [0, 5, 7], "time": [0, 5, 7, 8, 10], "zone": 0, "boolean": [0, 1, 6, 9], "doe": [0, 5, 6, 7, 8], "week": [0, 5, 8, 10], "start": [0, 5, 7, 8, 10, 12, 14], "mondai": [0, 5, 10], "displai": [0, 7, 8, 9, 10, 11, 12, 14], "distanc": [0, 3, 7, 8, 10], "imperi": [0, 8, 10], "unit": [0, 8, 12], "don": 0, "t": [0, 8, 13], "match": [0, 8], "sport": [0, 2, 5, 7, 8, 10, 12], "color": [0, 4, 8, 10], "000000": 0, "stopped_speed_threshold": [0, 4], "user_id": 0, "hexadecim": 0, "when": [0, 1, 8, 9, 10, 12], "ad": [0, 8, 9, 10], "workout": [0, 2, 5, 8, 11, 14], "float": [0, 7], "stop": [0, 8, 10, 12], "speed": [0, 3, 7, 8, 10, 12], "threshold": [0, 8, 10], "us": [0, 6, 7, 8, 10, 11, 12], "gpxpy": [0, 10, 12], "exist": [0, 5, 6, 7, 10, 11, 12], "delet": [0, 6, 7, 8, 9, 10], "reset": [0, 6, 8, 9, 10, 12], "given": [0, 12], "204": [0, 6, 7], "paramet": [0, 4, 5, 6, 7, 8, 10], "No": [0, 6, 7, 8, 11], "multipart": [0, 7], "form": [0, 7], "file": [0, 1, 7, 8, 9, 10, 11, 12], "imag": [0, 6, 7, 8, 10, 12, 14], "extens": [0, 7], "jpg": 0, "png": [0, 7, 12], "gif": 0, "part": [0, 7], "select": [0, 7, 10], "413": [0, 7], "entiti": [0, 7], "too": [0, 7], "larg": [0, 7, 10], "dure": [0, 7], "size": [0, 1, 7, 8, 10], "exce": [0, 7], "0mb": [0, 7], "NO": [0, 6, 7], "handl": [0, 10, 12], "process": [0, 8, 10, 12], "patch": [0, 1, 4, 6, 7], "It": [0, 6, 8, 10, 11, 13], "enabl": [0, 1, 6, 10, 12], "chang": [0, 10, 11, 12], "one": [0, 6, 7, 10], "current": [0, 8], "address": [0, 10, 12], "inform": [0, 8, 11, 12], "anoth": [0, 6, 12], "new": [0, 6, 9, 10, 12], "new_password": 0, "miss": [0, 8], "config": [1, 8, 12], "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, 12], "copi": [1, 12], "href": [1, 12], "www": [1, 12], "openstreetmap": [1, 8, 12], "org": [1, 12], "copyright": [1, 12], "contributor": [1, 8, 12], "version": [1, 9, 12], "authent": [1, 2, 3, 4, 6, 7], "integ": [1, 4, 5, 6, 7], "max": [1, 6, 7, 8], "number": [1, 6, 7, 8, 10, 12], "zip": [1, 7, 8, 10], "archiv": [1, 8, 10, 12], "singl": [1, 6, 8, 12], "instanc": [1, 8, 10, 12], "you": [1, 4, 5, 6, 7, 11], "do": [1, 4, 5, 6, 7], "have": [1, 4, 5, 6, 7, 8], "permiss": [1, 4, 5, 6, 7], "ping": 1, "health": 1, "check": [1, 8, 12, 13], "pong": 1, "configur": [2, 8, 10, 12], "statist": 2, "all": [3, 4, 5, 6, 12], "follow": [3, 9, 10, 12, 13], "ar": [3, 7, 8, 9, 10, 11, 12, 14], "averag": [3, 7, 8, 10], "farest": [3, 8], "longest": [3, 8, 10], "durat": [3, 7, 8, 10], "maximum": [3, 8, 10], "return": [3, 6, 7, 8, 12], "non": [4, 11], "is_active_for_us": 4, "label": [4, 8], "cycl": [4, 8, 10], "transport": [4, 8, 10], "hike": [4, 8, 10], "mountain": [4, 10], "bike": [4, 7, 8, 10], "5": [4, 5, 6, 7, 9, 10, 12], "run": [4, 8, 10, 12], "walk": [4, 8, 10], "has_workout": 4, "int": [4, 7], "NOT": [4, 7], "stat": [5, 8], "user_nam": [5, 6], "by_tim": 5, "without": [5, 6, 7, 8, 10, 11], "from": [5, 7, 8, 10, 11], "2018": [5, 7], "06": 5, "2017": [5, 7], "average_spe": 5, "48": 5, "total_asc": 5, "203": 5, "156": [5, 8], "15": [5, 7], "282": 5, "12341": 5, "16": [5, 7], "99": [5, 8], "150": 5, "178": [5, 8], "47": [5, 7, 8], "9960": 5, "95": [5, 8], "46": [5, 8], "78": 5, "613": 5, "1267": 5, "queri": [5, 6, 7], "end": [5, 7], "frame": 5, "sundai": [5, 7, 10], "month": [5, 8, 10], "year": [5, 10], "default": [5, 6, 7, 8, 10, 12], "by_sport": 5, "uploads_dir_s": 5, "1000": 5, "regardless": 6, "ha": [6, 10], "right": [6, 8, 9, 10, 12], "some": [6, 7, 8, 11, 12], "order_bi": 6, "workouts_count": 6, "par_pag": 6, "is_admin": 6, "sat": 6, "20": 6, "03": [6, 7], "fr": 6, "page": [6, 7, 8], "pagin": [6, 7], "per_pag": [6, 7], "per": [6, 7, 8], "q": 6, "sort": [6, 7], "criteria": 6, "order": [6, 7, 8], "asc": 6, "detail": [6, 8, 14], "other": [6, 12], "jpeg": 6, "add": [6, 8, 9, 10, 11], "remov": [6, 8, 9, 10], "modifi": [6, 8, 9, 12], "new_email": 6, "reset_password": 6, "differ": [6, 8, 10], "than": [6, 8], "curent": 6, "A": [6, 8, 9, 10, 12, 13], "own": [6, 11], "except": [6, 13], "he": 6, "s": [6, 7, 8, 12], "john_do": 6, "your": [6, 11, 12], "02": 7, "31": 7, "least": 7, "ascent": [7, 10], "ave_spe": 7, "bound": 7, "creation_d": 7, "13": 7, "51": 7, "descent": [7, 10], "17": [7, 12], "04": 7, "kjxavsturjvoah2wvcegef": 7, "map": [7, 8, 10, 11, 14], "max_alt": 7, "max_spe": 7, "min_alt": 7, "modification_d": 7, "move": [7, 8], "next_workout": 7, "note": [7, 8, 10, 12], "paus": [7, 8], "previous_workout": 7, "mon": 7, "jan": 7, "segment": [7, 8, 10], "titl": 7, "weather_end": 7, "weather_start": 7, "with_gpx": 7, "100": [7, 8, 10], "distance_from": 7, "minim": 7, "distance_to": 7, "maxim": 7, "duration_from": 7, "h": [7, 10], "duration_to": 7, "ave_speed_from": 7, "ave_speed_to": 7, "max_speed_from": 7, "max_speed_to": 7, "desc": 7, "workout_short_id": 7, "57": [7, 8], "45": 7, "22": 7, "gpx": [7, 8, 10, 11, 12], "morn": 7, "acit": 7, "short": 7, "leaflet": [7, 12], "chart_data": 7, "chart": [7, 8, 10, 12], "rechart": 7, "elev": [7, 8, 10, 12], "279": 7, "latitud": 7, "5078118": 7, "longitud": 7, "1232004": 7, "63": 7, "fri": 7, "44": [7, 8], "7": [7, 12], "7380": 7, "280": 7, "5079733": 7, "1234538": 7, "39": 7, "segment_id": 7, "map_id": 7, "fa33f4d996844a5c73ecd1ae24456ab8": 7, "1563529507772": 7, "map_til": 7, "z": [7, 12], "x": [7, 12], "tile": [7, 8], "c": 7, "4109": 7, "2930": 7, "subdomain": 7, "zoom": 7, "index": 7, "along": 7, "axi": 7, "download": [7, 8, 10, 12], "xml": 7, "201": [7, 8], "no_gpx": 7, "uuid": [7, 8], "km": [7, 10], "second": 7, "mandatori": [7, 8, 12], "now": [8, 9, 10, 12], "german": 8, "thank": 8, "gorgobacka": 8, "And": 8, "weblat": 8, "detect": 8, "browser": 8, "pr": 8, "208": 8, "card": 8, "html": 8, "attribut": [8, 12], "197": 8, "196": 8, "manag": [8, 9], "tool": [8, 12], "190": 8, "In": [8, 10], "were": 8, "j": 8, "lavoi": 8, "193": 8, "192": 8, "instead": [8, 10], "191": 8, "layout": 8, "includ": 8, "195": 8, "affect": 8, "previous": 8, "import": [8, 12], "cc4287e": 8, "docker": 8, "env": [8, 12], "offset": 8, "depend": [8, 12], "refacto": 8, "befor": [8, 12], "introduc": 8, "possibl": [8, 10, 11, 12], "smtp": [8, 12], "see": [8, 10, 11, 12, 13], "document": [8, 11, 12], "reduc": 8, "pre": 8, "requisit": 8, "To": [8, 12], "cli": [8, 9, 10, 12], "180": 8, "cannot": [8, 10], "tl": [8, 12], "177": 8, "posit": [8, 10], "small": 8, "screen": [8, 10], "175": 8, "dashboard": 8, "refresh": 8, "173": 8, "link": [8, 12], "incorrect": 8, "171": 8, "correctli": 8, "need": [8, 12], "sent": [8, 10, 12], "155": 8, "106": 8, "169": 8, "161": 8, "farthest": [8, 10], "160": 8, "app": [8, 11], "fmstrat": 8, "contain": [8, 10, 12], "databas": [8, 10, 12, 13], "migrat": [8, 9, 12], "upgrad": 8, "sever": [8, 11, 12], "danielsiersleben": 8, "report": 8, "initi": [8, 12], "command": [8, 10, 11, 12], "set": [8, 9, 10, 12, 13], "149": 8, "initialis": [8, 12], "152": 8, "autoescap": 8, "jinja": 8, "templat": 8, "151": 8, "sanit": 8, "input": 8, "serv": [8, 12], "dramatiq": [8, 12], "warn": [8, 10], "launch": 8, "worker": [8, 12], "w": 8, "script": 8, "entrypoint": 8, "drop": 8, "avoid": 8, "product": 8, "dotenv": 8, "146": 8, "filter": [8, 10], "145": 8, "model": 8, "140": 8, "fullscreen": 8, "control": [8, 10], "138": 8, "135": 8, "finish": 8, "marker": 8, "134": 8, "wind": [8, 10], "direct": [8, 10], "877fa0f": 8, "icon": [8, 12], "calendar": [8, 10], "resolut": 8, "131": 8, "129": 8, "127": [8, 12], "pars": [8, 12], "legitim": 8, "uri": 8, "localhost": [8, 12], "25": [8, 12], "123": 8, "121": 8, "snowsho": [8, 10], "116": 8, "better": 8, "ui": 8, "button": 8, "graph": 8, "115": 8, "option": [8, 9, 12], "91": 8, "min": 8, "altitud": 8, "90": 8, "seem": 8, "104": 8, "switch": 8, "agplv3": 8, "licens": [8, 11], "101": 8, "full": [8, 10], "client": [8, 12], "develop": [8, 9, 11], "98": 8, "109": 8, "support": [8, 10, 13], "slow": 8, "movement": 8, "84": 8, "93": 8, "paf38": 8, "83": 8, "gener": [8, 10, 12], "static": [8, 12], "keep": [8, 11, 12], "environ": [8, 9, 13], "variabl": [8, 13], "default_staticmap": [8, 12], "81": 8, "remain": 8, "textarea": 8, "82": 8, "dai": [8, 10], "80": [8, 12], "save": [8, 10], "79": 8, "fail": [8, 14], "make": [8, 12], "rebuild": 8, "75": 8, "same": 8, "python": [8, 12], "javascript": 8, "due": 8, "sqlalchemi": [8, 12, 13], "engin": [8, 12, 13], "postgr": [8, 13], "longer": [8, 13], "database_url": [8, 12], "postgresql": [8, 12, 13], "72": 8, "exceed": 8, "71": 8, "greater": 8, "70": 8, "less": 8, "upload": [8, 9, 10, 12], "66": 8, "limit": [8, 10], "64": 8, "shown": [8, 14], "62": 8, "refactor": 8, "evalu": [8, 12], "purpos": [8, 12], "standard": [8, 12], "term": [8, 12], "directori": [8, 12], "also": [8, 9, 11, 12], "59": 8, "major": 8, "instal": [8, 11], "becom": 8, "more": [8, 10, 11, 12], "easi": 8, "read": 8, "been": 8, "renam": 8, "layer": [8, 12], "replac": [8, 12], "thunderforest": [8, 12], "outdoor": [8, 11, 12], "54": 8, "53": 8, "simplifi": 8, "redi": [8, 12], "complet": 8, "side": 8, "4c3fc34": 8, "empti": [8, 9, 12], "logout": 8, "34614d5": 8, "spinner": 8, "load": [8, 13], "b862a77": 8, "2e1ee2c": 8, "interceptor": 8, "rout": 8, "definit": 8, "down": 8, "43": 8, "weekend": 8, "background": 8, "40": 8, "local": [8, 11, 12], "i18n": 8, "41": 8, "show": [8, 9], "point": [8, 12], "mous": 8, "over": 8, "choos": [8, 10], "36": 8, "33": 8, "37": 8, "list": [8, 11, 12], "34": 8, "weather": [8, 10, 12], "anymor": 8, "poetri": [8, 12], "pipenv": 8, "packag": [8, 12], "total": [8, 10], "calcul": 8, "28": 8, "26": 8, "tooltip": [8, 10], "creation": [8, 10], "montain": 8, "even": [8, 10], "enter": [8, 10], "darkski": [8, 10], "kei": [8, 10, 12], "search": 8, "owner": [8, 10], "view": [8, 10], "usag": 9, "arg": 9, "fittracke": [9, 10, 12, 14], "help": 9, "exit": 9, "deprec": 9, "next": [9, 10], "fittrackee_set_admin": 9, "fittrackee_upgrade_db": 9, "appli": 9, "descript": [9, 12], "electr": 10, "row": 10, "ski": 10, "alpin": 10, "cross": 10, "countri": 10, "trail": 10, "overridden": 10, "which": 10, "up": [10, 11], "relat": [10, 12], "store": [10, 11], "metric": 10, "system": [10, 12], "arrow": 10, "indic": 10, "come": 10, "period": 10, "mai": [10, 11, 12], "origin": 10, "dropdown": 10, "For": [10, 12], "On": [10, 12], "case": [10, 12], "line": [10, 11, 12], "between": 10, "overrid": 10, "appear": 10, "still": [10, 11], "defin": 10, "rais": 10, "necessari": [10, 12], "like": [10, 12], "nginx": [10, 12], "lock": 10, "via": 10, "track": 11, "mobil": 11, "yet": 11, "export": 11, "them": 11, "android": 11, "exhaust": 11, "runner": 11, "gpl": 11, "v3": 11, "forrunn": 11, "opentrack": 11, "apach": 11, "fitotrack": 11, "open": [11, 12], "street": 11, "under": [11, 12], "heavi": [11, 12], "featur": [11, 12], "unstabl": [11, 12], "issu": [11, 12], "interfac": [11, 12], "troubleshoot": 11, "written": 12, "typescript": 12, "flask": 12, "staticmap": 12, "coordin": 12, "forecast": 12, "io": 12, "fetch": 12, "dark": 12, "sky": 12, "former": 12, "task": 12, "queue": 12, "vue3": 12, "vuex": 12, "js": 12, "logo": 12, "made": 12, "freepik": 12, "flaticon": 12, "fork": 12, "awesom": 12, "yarn": 12, "compos": 12, "step": 12, "describ": 12, "linux": 12, "test": 12, "debian": 12, "arch": 12, "os": 12, "encount": 12, "adapt": 12, "sinc": 12, "makefil": 12, "custom": 12, "librari": 12, "thei": 12, "method": 12, "flask_app": 12, "modul": 12, "should": 12, "pwd": 12, "__main__": 12, "py": 12, "els": 12, "host": 12, "port": 12, "5000": 12, "app_set": 12, "productionconfig": 12, "app_secret_kei": 12, "secret": 12, "app_work": 12, "spawn": 12, "gunicorn": [12, 13], "app_log": 12, "path": [12, 13], "upload_fold": [12, 13], "absolut": [12, 13], "where": 12, "folder": 12, "application_directori": 12, "With": 12, "virtualenv": 12, "5432": 12, "begin": 12, "database_disable_pool": 12, "pool": 12, "entri": 12, "directli": 12, "ui_url": 12, "email_url": [12, 13], "sender_email": 12, "sender": 12, "redis_url": 12, "workers_process": 12, "tile_server_url": 12, "target": 12, "_blank": 12, "rel": 12, "noopen": 12, "noreferr": 12, "weather_api_kei": 12, "weather_api": 12, "vue_app_api_url": 12, "unencrypt": 12, "ssl": 12, "465": 12, "starttl": 12, "587": 12, "office365": 12, "work": 12, "omit": 12, "old": 12, "adress": 12, "apikei": 12, "xxxx": 12, "servic": 12, "recommend": 12, "wai": 12, "pip": 12, "WITH": 12, "grant": 12, "privileg": 12, "ON": 12, "TO": 12, "nano": 12, "schema": 12, "ftcli": 12, "db": 12, "fittrackee_work": 12, "systemd": 12, "3000": 12, "archlinux": 12, "yai": 12, "project": 12, "clone": 12, "repo": 12, "git": 12, "github": 12, "samr1": 12, "cd": 12, "vue": 12, "releas": 12, "v0": 12, "wget": 12, "tar": 12, "gz": 12, "xzf": 12, "mv": 12, "sql": 12, "backup": 12, "pg_dump": 12, "u": 12, "changelog": 12, "restart": 12, "pull": 12, "repositori": 12, "overwrit": 12, "cp": 12, "r": 12, "There": 12, "One": 12, "proxi": 12, "pass": 12, "distribut": 12, "network": 12, "startlimitintervalsec": 12, "simpl": 12, "alwai": 12, "restartsec": 12, "standardoutput": 12, "syslog": 12, "standarderror": 12, "syslogidentifi": 12, "workingdirectori": 12, "home": 12, "execstart": 12, "venv": 12, "bin": 12, "b": 12, "create_app": 12, "logfil": 12, "wantedbi": 12, "multi": 12, "OF": 12, "listen": 12, "443": 12, "http2": 12, "server_nam": 12, "ssl_certif": 12, "fullchain": 12, "pem": 12, "ssl_certificate_kei": 12, "privkei": 12, "proxy_pass": 12, "proxy_redirect": 12, "proxy_set_head": 12, "real": 12, "ip": 12, "remote_addr": 12, "forward": 12, "proxy_add_x_forwarded_for": 12, "301": 12, "request_uri": 12, "larger": 12, "client_max_body_s": 12, "build": 12, "init": 12, "8025": 12, "access": 12, "mailhog": 12, "shell": 12, "insid": 12, "addit": 12, "fittrackee_cli": 12, "exc": 13, "nosuchmoduleerror": 13, "plugin": 13, "dialect": 13, "invalidemailurlschem": 13, "todo": 15}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [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-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 1, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 2, 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, 1, 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, 2, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [1, 2, 1, "get--api-ping", "/api/ping"], [3, 2, 1, "get--api-records", "/api/records"], [4, 2, 1, "get--api-sports", "/api/sports"], [4, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [4, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [5, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [5, 2, 1, "get--api-stats-all", "/api/stats/all"], [6, 2, 1, "get--api-users", "/api/users"], [6, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [6, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [6, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [6, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [7, 2, 1, "get--api-workouts", "/api/workouts"], [7, 0, 1, "post--api-workouts", "/api/workouts"], [7, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [7, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [7, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [7, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [12, 4, 1, "-", "APP_LOG"], [12, 4, 1, "-", "APP_SECRET_KEY"], [12, 4, 1, "-", "APP_SETTINGS"], [12, 4, 1, "-", "APP_WORKERS"], [12, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [12, 4, 1, "-", "DATABASE_URL"], [12, 4, 1, "envvar-DEFAULT_STATICMAP", "DEFAULT_STATICMAP \ud83c\udd95"], [12, 4, 1, "-", "EMAIL_URL"], [12, 4, 1, "-", "FLASK_APP"], [12, 4, 1, "-", "HOST"], [12, 4, 1, "-", "MAP_ATTRIBUTION"], [12, 4, 1, "-", "PORT"], [12, 4, 1, "-", "REDIS_URL"], [12, 4, 1, "-", "SENDER_EMAIL"], [12, 4, 1, "-", "TILE_SERVER_URL"], [12, 4, 1, "-", "UI_URL"], [12, 4, 1, "-", "UPLOAD_FOLDER"], [12, 4, 1, "-", "VUE_APP_API_URL"], [12, 4, 1, "-", "WEATHER_API_KEY"], [12, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[7, 2, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:delete", "2": "http:get", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "delete", "HTTP delete"], "2": ["http", "get", "HTTP get"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "configur": 1, "api": 2, "document": 2, "endpoint": 2, "record": 3, "sport": 4, "statist": [5, 8, 10], "user": [6, 9, 15], "workout": [7, 10, 13], "chang": 8, "log": 8, "version": 8, "0": 8, "6": 8, "9": 8, "2022": 8, "07": 8, "03": 8, "issu": 8, "close": 8, "featur": [8, 10], "bug": 8, "fix": 8, "translat": [8, 10], "8": 8, "06": 8, "22": 8, "misc": 8, "7": 8, "11": 8, "05": 8, "29": 8, "5": 8, "04": 8, "24": 8, "4": 8, "23": 8, "3": 8, "09": 8, "pull": 8, "request": 8, "2": 8, "1": 8, "27": 8, "02": 8, "13": 8, "secur": 8, "01": 8, "19": 8, "new": 8, "2021": 8, "12": 8, "30": 8, "14": 8, "16": 8, "21": 8, "17": 8, "31": 8, "10": 8, "2020": 8, "fittracke": [8, 11, 13], "pypi": [8, 12], "administr": [8, 10, 13], "15": 8, "improv": 8, "minor": 8, "avail": 8, "french": 8, "2019": 8, "first": 8, "releas": 8, "2018": 8, "command": 9, "line": 9, "interfac": 9, "databas": 9, "ftcli": 9, "db": 9, "upgrad": [9, 12], "drop": 9, "updat": 9, "account": 10, "prefer": 10, "screenshot": 10, "dashboard": 10, "detail": [10, 13], "list": 10, "tabl": 11, "content": 11, "instal": 12, "prerequisit": 12, "environ": 12, "variabl": 12, "email": 12, "map": [12, 13], "tile": 12, "server": 12, "from": 12, "sourc": 12, "dev": 12, "product": 12, "prod": 12, "deploy": 12, "docker": 12, "develop": 12, "fail": 13, "start": 13, "imag": 13, "ar": 13, "displai": 13, "shown": 13, "troubleshoot": 14}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst", "troubleshooting/user.rst"], "titles": ["Authentication", "Configuration", "API documentation", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 7], "api": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "auth": [0, 1, 3, 4, 5, 6, 7, 12], "regist": [0, 1, 12], "user": [0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 14], "send": [0, 6, 8, 10, 12], "confirm": [0, 8, 10, 12], "email": [0, 1, 6, 8, 9, 10, 13], "The": [0, 8, 9, 10, 12], "newli": [0, 12], "creat": [0, 7, 8, 10, 12], "account": [0, 6, 8, 9, 12], "inact": [0, 6, 10, 12], "must": [0, 1, 4, 6, 8, 10, 12, 13], "hi": [0, 6, 8, 10], "activ": [0, 4, 6, 8, 9, 10, 11, 12], "exampl": [0, 1, 3, 4, 5, 6, 7, 11, 12], "request": [0, 1, 3, 4, 5, 6, 7, 12], "http": [0, 1, 3, 4, 5, 6, 7, 12], "1": [0, 1, 3, 4, 5, 6, 7, 10, 12], "content": [0, 1, 3, 4, 5, 6, 7], "type": [0, 1, 3, 4, 5, 6, 7, 12], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "json": [0, 1, 3, 4, 5, 6, 7], "respons": [0, 1, 3, 4, 5, 6, 7], "success": [0, 1, 3, 4, 5, 6, 7], "200": [0, 1, 3, 4, 5, 6, 7, 8], "statu": [0, 1, 3, 4, 5, 6, 7, 9], "error": [0, 1, 4, 6, 7, 8, 10, 12, 13], "registr": [0, 1, 8, 10, 12], "400": [0, 1, 4, 6, 7], "bad": [0, 1, 4, 6, 7], "messag": [0, 1, 7, 8, 9], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13], "n": 0, "object": [0, 1, 4, 6, 7], "usernam": [0, 6, 8, 12], "string": [0, 1, 4, 5, 6, 7, 12], "3": [0, 4, 5, 6, 7, 10, 12], "30": [0, 5], "charact": [0, 8], "requir": [0, 8, 12], "password": [0, 6, 8, 9, 10, 12], "8": [0, 7], "lang": [0, 8], "languag": [0, 6, 8, 10], "prefer": [0, 6, 8], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 12], "fallback": 0, "en": [0, 6], "english": 0, "code": [0, 1, 3, 4, 5, 6, 7, 8], "ok": [0, 1, 3, 4, 5, 6, 7], "payload": [0, 1, 4, 6, 7], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 6, 7, 8, 9, 10, 12], "alphanumer": [0, 8], "underscor": 0, "_": [0, 8], "allow": [0, 1, 7, 8, 10, 11], "403": [0, 1, 4, 5, 6, 7], "forbidden": [0, 1, 4, 5, 6, 7], "disabl": [0, 8, 10, 12], "500": [0, 1, 4, 6, 7, 8], "intern": [0, 1, 4, 6, 7], "server": [0, 1, 4, 6, 7, 8, 10, 11], "pleas": [0, 1, 3, 4, 5, 6, 7, 8], "try": [0, 6, 7], "again": [0, 1, 3, 4, 5, 6, 7], "contact": [0, 1, 6, 7, 10], "administr": [0, 1, 6, 7, 14], "after": [0, 8, 10, 12], "auth_token": 0, "web": [0, 11, 12], "token": [0, 1, 3, 4, 5, 6, 7], "resend": 0, "instruct": [0, 8, 10, 12], "If": [0, 10, 12], "thi": [0, 7, 8, 9, 10, 11, 12], "endpoint": [0, 1, 8], "avail": [0, 3, 9, 10, 12], "resent": 0, "404": [0, 4, 5, 6, 7, 8], "Not": [0, 4, 5, 6, 7], "found": [0, 4, 5, 6, 7, 8], "url": [0, 8, 12, 13], "wa": [0, 8], "login": 0, "an": [0, 1, 4, 6, 8, 10, 12, 13], "can": [0, 6, 8, 10, 11, 12, 13], "log": [0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7], "unauthor": [0, 1, 3, 4, 5, 6, 7], "credenti": [0, 12], "get": [0, 1, 3, 4, 5, 6, 7], "profil": [0, 8], "info": 0, "data": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "admin": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12], "fals": [0, 1, 4, 6, 7, 12], "bio": [0, 6], "null": [0, 4, 6, 7], "birth_dat": [0, 6], "created_at": [0, 6], "sun": [0, 3, 6, 7], "14": [0, 6, 7], "jul": [0, 3, 6, 7], "2019": [0, 3, 5, 6, 7], "09": [0, 6], "58": [0, 6, 8], "gmt": [0, 3, 6, 7], "sam": [0, 6], "com": [0, 1, 6, 12], "first_nam": [0, 6], "imperial_unit": [0, 6], "is_act": [0, 4, 6], "true": [0, 1, 4, 6, 8, 12], "last_nam": [0, 6], "locat": [0, 6, 12], "nb_sport": [0, 6], "nb_workout": [0, 5, 6], "6": [0, 1, 4, 6, 7, 9, 10, 12], "pictur": [0, 6, 7, 8], "record": [0, 2, 6, 7, 8, 10], "id": [0, 3, 4, 5, 6, 7], "9": [0, 3, 6, 10, 12], "record_typ": [0, 3, 6, 7], "AS": [0, 3, 6, 7], "sport_id": [0, 3, 4, 5, 6, 7], "valu": [0, 3, 6, 7, 12], "18": [0, 3, 6, 7, 8], "workout_d": [0, 3, 6, 7], "07": [0, 3, 6, 7], "08": [0, 3, 6], "00": [0, 3, 6, 7], "workout_id": [0, 3, 6, 7], "hvybqybra7wwxpastwr4v2": [0, 3, 6], "10": [0, 1, 3, 6, 7, 12], "fd": [0, 3, 6, 7], "11": [0, 3, 6, 10], "ld": [0, 3, 6, 7], "01": [0, 3, 5, 6, 7], "12": [0, 3, 6, 7], "ms": [0, 3, 6, 7], "sports_list": [0, 6], "4": [0, 4, 5, 6, 7, 12], "timezon": [0, 6, 7, 8, 10], "europ": [0, 6], "pari": [0, 6], "total_dist": [0, 5, 6], "67": [0, 6], "895": [0, 6], "total_dur": [0, 5, 6], "50": [0, 6, 8], "27": [0, 6], "weekm": [0, 5, 6], "header": [0, 1, 3, 4, 5, 6, 7], "author": [0, 1, 3, 4, 5, 6, 7], "oauth": [0, 1, 3, 4, 5, 6, 7], "2": [0, 1, 3, 4, 5, 6, 7, 10, 12], "0": [0, 1, 3, 4, 5, 6, 7, 9, 10, 12], "bearer": [0, 1, 3, 4, 5, 6, 7], "signatur": [0, 1, 3, 4, 5, 6, 7], "expir": [0, 1, 3, 4, 5, 6, 7], "edit": [0, 8, 10], "updat": [0, 1, 4, 6, 7, 8, 10, 12], "first": [0, 10], "name": [0, 5, 6, 8, 12], "last": [0, 12], "biographi": 0, "birth": [0, 8], "date": [0, 5, 7, 8, 10], "format": [0, 5, 7], "y": [0, 5, 7, 12], "m": [0, 5, 7], "d": [0, 5, 7], "time": [0, 5, 7, 8, 10], "zone": 0, "boolean": [0, 1, 6, 9], "doe": [0, 5, 6, 7, 8], "week": [0, 5, 8, 10], "start": [0, 5, 7, 8, 10, 12, 14], "mondai": [0, 5, 10], "displai": [0, 7, 8, 9, 10, 11, 12, 14], "distanc": [0, 3, 7, 8, 10], "imperi": [0, 8, 10], "unit": [0, 8, 12], "don": 0, "t": [0, 8, 13], "match": [0, 8], "sport": [0, 2, 5, 7, 8, 10, 12], "color": [0, 4, 8, 10], "000000": 0, "stopped_speed_threshold": [0, 4], "user_id": 0, "hexadecim": 0, "when": [0, 1, 8, 9, 10, 12], "ad": [0, 8, 9, 10], "workout": [0, 2, 5, 8, 11, 14], "float": [0, 7], "stop": [0, 8, 10, 12], "speed": [0, 3, 7, 8, 10, 12], "threshold": [0, 8, 10], "us": [0, 6, 7, 8, 10, 11, 12], "gpxpy": [0, 10, 12], "exist": [0, 5, 6, 7, 10, 11, 12], "delet": [0, 6, 7, 8, 9, 10], "reset": [0, 6, 8, 9, 10, 12], "given": [0, 12], "204": [0, 6, 7], "paramet": [0, 4, 5, 6, 7, 8, 10], "No": [0, 6, 7, 8, 11], "multipart": [0, 7], "form": [0, 7], "file": [0, 1, 7, 8, 9, 10, 11, 12], "imag": [0, 6, 7, 8, 10, 12, 14], "extens": [0, 7], "jpg": 0, "png": [0, 7, 12], "gif": 0, "part": [0, 7], "select": [0, 7, 10], "413": [0, 7], "entiti": [0, 7], "too": [0, 7], "larg": [0, 7, 10], "dure": [0, 7], "size": [0, 1, 7, 8, 10], "exce": [0, 7], "0mb": [0, 7], "NO": [0, 6, 7], "handl": [0, 10, 12], "process": [0, 8, 10, 12], "patch": [0, 1, 4, 6, 7], "It": [0, 6, 8, 10, 11, 13], "enabl": [0, 1, 6, 10, 12], "chang": [0, 10, 11, 12], "one": [0, 6, 7, 10], "current": [0, 8], "address": [0, 10, 12], "inform": [0, 8, 11, 12], "anoth": [0, 6, 12], "new": [0, 6, 9, 10, 12], "new_password": 0, "miss": [0, 8], "config": [1, 8, 12], "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, 12], "copi": [1, 12], "href": [1, 12], "www": [1, 12], "openstreetmap": [1, 8, 12], "org": [1, 12], "copyright": [1, 12], "contributor": [1, 8, 12], "version": [1, 9, 12], "authent": [1, 2, 3, 4, 6, 7], "integ": [1, 4, 5, 6, 7], "max": [1, 6, 7, 8], "number": [1, 6, 7, 8, 10, 12], "zip": [1, 7, 8, 10], "archiv": [1, 8, 10, 12], "singl": [1, 6, 8, 12], "instanc": [1, 8, 10, 12], "you": [1, 4, 5, 6, 7, 11], "do": [1, 4, 5, 6, 7], "have": [1, 4, 5, 6, 7, 8], "permiss": [1, 4, 5, 6, 7], "ping": 1, "health": 1, "check": [1, 8, 12, 13], "pong": 1, "configur": [2, 8, 10, 12], "statist": 2, "all": [3, 4, 5, 6, 12], "follow": [3, 9, 10, 12, 13], "ar": [3, 7, 8, 9, 10, 11, 12, 14], "averag": [3, 7, 8, 10], "farest": [3, 8], "longest": [3, 8, 10], "durat": [3, 7, 8, 10], "maximum": [3, 8, 10], "return": [3, 6, 7, 8, 12], "non": [4, 11], "is_active_for_us": 4, "label": [4, 8], "cycl": [4, 8, 10], "transport": [4, 8, 10], "hike": [4, 8, 10], "mountain": [4, 10], "bike": [4, 7, 8, 10], "5": [4, 5, 6, 7, 9, 10, 12], "run": [4, 8, 10, 12], "walk": [4, 8, 10], "has_workout": 4, "int": [4, 7], "NOT": [4, 7], "stat": [5, 8], "user_nam": [5, 6], "by_tim": 5, "without": [5, 6, 7, 8, 10, 11], "from": [5, 7, 8, 10, 11], "2018": [5, 7], "06": 5, "2017": [5, 7], "average_spe": 5, "48": 5, "total_asc": 5, "203": 5, "156": [5, 8], "15": [5, 7], "282": 5, "12341": 5, "16": [5, 7], "99": [5, 8], "150": 5, "178": [5, 8], "47": [5, 7, 8], "9960": 5, "95": [5, 8], "46": [5, 8], "78": 5, "613": 5, "1267": 5, "queri": [5, 6, 7], "end": [5, 7], "frame": 5, "sundai": [5, 7, 10], "month": [5, 8, 10], "year": [5, 10], "default": [5, 6, 7, 8, 10, 12], "by_sport": 5, "uploads_dir_s": 5, "1000": 5, "regardless": 6, "ha": [6, 10], "right": [6, 8, 9, 10, 12], "some": [6, 7, 8, 11, 12], "order_bi": 6, "workouts_count": 6, "par_pag": 6, "is_admin": 6, "sat": 6, "20": 6, "03": [6, 7], "fr": [6, 12], "page": [6, 7, 8], "pagin": [6, 7], "per_pag": [6, 7], "per": [6, 7, 8], "q": 6, "sort": [6, 7], "criteria": 6, "order": [6, 7, 8], "asc": 6, "detail": [6, 8, 14], "other": [6, 12], "jpeg": 6, "add": [6, 8, 9, 10, 11], "remov": [6, 8, 9, 10], "modifi": [6, 8, 9, 12], "new_email": 6, "reset_password": 6, "differ": [6, 8, 10], "than": [6, 8], "curent": 6, "A": [6, 8, 9, 10, 12, 13], "own": [6, 11], "except": [6, 13], "he": 6, "s": [6, 7, 8, 12], "john_do": 6, "your": [6, 11, 12], "02": 7, "31": 7, "least": 7, "ascent": [7, 10], "ave_spe": 7, "bound": 7, "creation_d": 7, "13": 7, "51": 7, "descent": [7, 10], "17": [7, 12], "04": 7, "kjxavsturjvoah2wvcegef": 7, "map": [7, 8, 10, 11, 14], "max_alt": 7, "max_spe": 7, "min_alt": 7, "modification_d": 7, "move": [7, 8], "next_workout": 7, "note": [7, 8, 10, 12], "paus": [7, 8], "previous_workout": 7, "mon": 7, "jan": 7, "segment": [7, 8, 10], "titl": 7, "weather_end": 7, "weather_start": 7, "with_gpx": 7, "100": [7, 8, 10], "distance_from": 7, "minim": 7, "distance_to": 7, "maxim": 7, "duration_from": 7, "h": [7, 10], "duration_to": 7, "ave_speed_from": 7, "ave_speed_to": 7, "max_speed_from": 7, "max_speed_to": 7, "desc": 7, "workout_short_id": 7, "57": [7, 8], "45": 7, "22": 7, "gpx": [7, 8, 10, 11, 12], "morn": 7, "acit": 7, "short": 7, "leaflet": [7, 12], "chart_data": 7, "chart": [7, 8, 10, 12], "rechart": 7, "elev": [7, 8, 10, 12], "279": 7, "latitud": 7, "5078118": 7, "longitud": 7, "1232004": 7, "63": 7, "fri": 7, "44": [7, 8], "7": [7, 12], "7380": 7, "280": 7, "5079733": 7, "1234538": 7, "39": 7, "segment_id": 7, "map_id": 7, "fa33f4d996844a5c73ecd1ae24456ab8": 7, "1563529507772": 7, "map_til": 7, "z": [7, 12], "x": [7, 12], "tile": [7, 8], "c": [7, 12], "4109": 7, "2930": 7, "subdomain": [7, 8, 12], "zoom": 7, "index": 7, "along": 7, "axi": 7, "download": [7, 8, 10, 12], "xml": 7, "201": [7, 8], "no_gpx": 7, "uuid": [7, 8], "km": [7, 10], "second": 7, "mandatori": [7, 8, 12], "210": 8, "could": 8, "see": [8, 10, 11, 12, 13], "environ": [8, 9, 13], "variabl": [8, 13], "staticmap_subdomain": [8, 12], "209": 8, "incorrect": 8, "track": [8, 11], "contain": [8, 10, 12], "multipl": 8, "thank": 8, "gorgobacka": 8, "In": [8, 10], "now": [8, 9, 10, 12], "german": 8, "And": 8, "weblat": 8, "detect": 8, "browser": 8, "pr": 8, "208": 8, "card": 8, "html": 8, "attribut": [8, 12], "197": 8, "196": 8, "manag": [8, 9], "tool": [8, 12], "190": 8, "were": 8, "j": 8, "lavoi": 8, "193": 8, "192": 8, "instead": [8, 10], "191": 8, "layout": 8, "includ": 8, "195": 8, "affect": 8, "previous": 8, "import": [8, 12], "cc4287e": 8, "docker": 8, "env": [8, 12], "offset": 8, "depend": [8, 12], "refacto": 8, "befor": [8, 12], "introduc": 8, "possibl": [8, 10, 11, 12], "smtp": [8, 12], "document": [8, 11, 12], "reduc": 8, "pre": 8, "requisit": 8, "To": [8, 12], "cli": [8, 9, 10, 12], "180": 8, "cannot": [8, 10], "tl": [8, 12], "177": 8, "posit": [8, 10], "small": 8, "screen": [8, 10], "175": 8, "dashboard": 8, "refresh": 8, "173": 8, "link": [8, 12], "171": 8, "correctli": 8, "need": [8, 12], "sent": [8, 10, 12], "155": 8, "106": 8, "169": 8, "161": 8, "farthest": [8, 10], "160": 8, "app": [8, 11], "fmstrat": 8, "databas": [8, 10, 12, 13], "migrat": [8, 9, 12], "upgrad": 8, "sever": [8, 11, 12], "danielsiersleben": 8, "report": 8, "initi": [8, 12], "command": [8, 10, 11, 12], "set": [8, 9, 10, 12, 13], "149": 8, "initialis": [8, 12], "152": 8, "autoescap": 8, "jinja": 8, "templat": 8, "151": 8, "sanit": 8, "input": 8, "serv": [8, 12], "dramatiq": [8, 12], "warn": [8, 10], "launch": 8, "worker": [8, 12], "w": 8, "script": 8, "entrypoint": 8, "drop": 8, "avoid": 8, "product": 8, "dotenv": 8, "146": 8, "filter": [8, 10], "145": 8, "model": 8, "140": 8, "fullscreen": 8, "control": [8, 10], "138": 8, "135": 8, "finish": 8, "marker": 8, "134": 8, "wind": [8, 10], "direct": [8, 10], "877fa0f": 8, "icon": [8, 12], "calendar": [8, 10], "resolut": 8, "131": 8, "129": 8, "127": [8, 12], "pars": [8, 12], "legitim": 8, "uri": 8, "localhost": [8, 12], "25": [8, 12], "123": 8, "121": 8, "snowsho": [8, 10], "116": 8, "better": 8, "ui": 8, "button": 8, "graph": 8, "115": 8, "option": [8, 9, 12], "91": 8, "min": 8, "altitud": 8, "90": 8, "seem": 8, "104": 8, "switch": 8, "agplv3": 8, "licens": [8, 11, 12], "101": 8, "full": [8, 10], "client": [8, 12], "develop": [8, 9, 11], "98": 8, "109": 8, "support": [8, 10, 13], "slow": 8, "movement": 8, "84": 8, "93": 8, "paf38": 8, "83": 8, "gener": [8, 10, 12], "static": [8, 12], "keep": [8, 11, 12], "default_staticmap": [8, 12], "81": 8, "remain": 8, "textarea": 8, "82": 8, "dai": [8, 10], "80": [8, 12], "save": [8, 10], "79": 8, "fail": [8, 14], "make": [8, 12], "rebuild": 8, "75": 8, "same": 8, "python": [8, 12], "javascript": 8, "due": 8, "sqlalchemi": [8, 12, 13], "engin": [8, 12, 13], "postgr": [8, 13], "longer": [8, 13], "database_url": [8, 12], "postgresql": [8, 12, 13], "72": 8, "exceed": 8, "71": 8, "greater": 8, "70": 8, "less": 8, "upload": [8, 9, 10, 12], "66": 8, "limit": [8, 10], "64": 8, "shown": [8, 14], "62": 8, "refactor": 8, "evalu": [8, 12], "purpos": [8, 12], "standard": [8, 12], "term": [8, 12], "directori": [8, 12], "also": [8, 9, 11, 12], "59": 8, "major": 8, "instal": [8, 11], "becom": 8, "more": [8, 10, 11, 12], "easi": 8, "read": 8, "been": 8, "renam": 8, "layer": [8, 12], "replac": [8, 12], "thunderforest": [8, 12], "outdoor": [8, 11, 12], "54": 8, "53": 8, "simplifi": 8, "redi": [8, 12], "complet": 8, "side": 8, "4c3fc34": 8, "empti": [8, 9, 12], "logout": 8, "34614d5": 8, "spinner": 8, "load": [8, 13], "b862a77": 8, "2e1ee2c": 8, "interceptor": 8, "rout": 8, "definit": 8, "down": 8, "43": 8, "weekend": 8, "background": 8, "40": 8, "local": [8, 11, 12], "i18n": 8, "41": 8, "show": [8, 9], "point": [8, 12], "mous": 8, "over": 8, "choos": [8, 10], "36": 8, "33": 8, "37": 8, "list": [8, 11, 12], "34": 8, "weather": [8, 10, 12], "anymor": 8, "poetri": [8, 12], "pipenv": 8, "packag": [8, 12], "total": [8, 10], "calcul": 8, "28": 8, "26": 8, "tooltip": [8, 10], "creation": [8, 10], "montain": 8, "even": [8, 10], "enter": [8, 10], "darkski": [8, 10], "kei": [8, 10, 12], "search": 8, "owner": [8, 10], "view": [8, 10], "usag": 9, "arg": 9, "fittracke": [9, 10, 12, 14], "help": 9, "exit": 9, "deprec": 9, "next": [9, 10], "fittrackee_set_admin": 9, "fittrackee_upgrade_db": 9, "appli": 9, "descript": [9, 12], "electr": 10, "row": 10, "ski": 10, "alpin": 10, "cross": 10, "countri": 10, "trail": 10, "overridden": 10, "which": 10, "up": [10, 11], "relat": [10, 12], "store": [10, 11], "metric": 10, "system": [10, 12], "arrow": 10, "indic": 10, "come": 10, "period": 10, "mai": [10, 11, 12], "origin": 10, "dropdown": 10, "For": [10, 12], "On": [10, 12], "case": [10, 12], "line": [10, 11, 12], "between": 10, "overrid": 10, "appear": 10, "still": [10, 11], "defin": 10, "rais": 10, "necessari": [10, 12], "like": [10, 12], "nginx": [10, 12], "lock": 10, "via": 10, "mobil": 11, "yet": 11, "export": 11, "them": 11, "android": 11, "exhaust": 11, "runner": 11, "gpl": 11, "v3": 11, "forrunn": 11, "opentrack": 11, "apach": 11, "fitotrack": 11, "open": [11, 12], "street": 11, "under": [11, 12], "heavi": [11, 12], "featur": [11, 12], "unstabl": [11, 12], "issu": [11, 12], "interfac": [11, 12], "troubleshoot": 11, "written": 12, "typescript": 12, "flask": 12, "staticmap": 12, "coordin": 12, "forecast": 12, "io": 12, "fetch": 12, "dark": 12, "sky": 12, "former": 12, "task": 12, "queue": 12, "vue3": 12, "vuex": 12, "js": 12, "logo": 12, "made": 12, "freepik": 12, "flaticon": 12, "fork": 12, "awesom": 12, "yarn": 12, "compos": 12, "step": 12, "describ": 12, "linux": 12, "test": 12, "debian": 12, "arch": 12, "os": 12, "encount": 12, "adapt": 12, "sinc": 12, "makefil": 12, "custom": 12, "librari": 12, "thei": 12, "method": 12, "flask_app": 12, "modul": 12, "should": 12, "pwd": 12, "__main__": 12, "py": 12, "els": 12, "host": 12, "port": 12, "5000": 12, "app_set": 12, "productionconfig": 12, "app_secret_kei": 12, "secret": 12, "app_work": 12, "spawn": 12, "gunicorn": [12, 13], "app_log": 12, "path": [12, 13], "upload_fold": [12, 13], "absolut": [12, 13], "where": 12, "folder": 12, "application_directori": 12, "With": 12, "virtualenv": 12, "5432": 12, "begin": 12, "database_disable_pool": 12, "pool": 12, "entri": 12, "directli": 12, "ui_url": 12, "email_url": [12, 13], "sender_email": 12, "sender": 12, "redis_url": 12, "workers_process": 12, "tile_server_url": 12, "b": 12, "osm": 12, "franc": 12, "target": 12, "_blank": 12, "rel": 12, "noopen": 12, "noreferr": 12, "komoot": 12, "de": 12, "otherwis": 12, "insensit": 12, "weather_api_kei": 12, "weather_api": 12, "vue_app_api_url": 12, "unencrypt": 12, "ssl": 12, "465": 12, "starttl": 12, "587": 12, "office365": 12, "work": 12, "omit": 12, "old": 12, "adress": 12, "apikei": 12, "xxxx": 12, "servic": 12, "expect": 12, "osmfr": 12, "fond": 12, "cart": 12, "par": 12, "mention": 12, "legal": 12, "nofollow": 12, "sou": 12, "nbsp": 12, "creativecommon": 12, "sa": 12, "licenc": 12, "cc": 12, "BY": 12, "chosen": 12, "randomli": 12, "recommend": 12, "wai": 12, "pip": 12, "WITH": 12, "grant": 12, "privileg": 12, "ON": 12, "TO": 12, "nano": 12, "schema": 12, "ftcli": 12, "db": 12, "fittrackee_work": 12, "systemd": 12, "3000": 12, "archlinux": 12, "yai": 12, "project": 12, "clone": 12, "repo": 12, "git": 12, "github": 12, "samr1": 12, "cd": 12, "vue": 12, "releas": 12, "v0": 12, "wget": 12, "tar": 12, "gz": 12, "xzf": 12, "mv": 12, "sql": 12, "backup": 12, "pg_dump": 12, "u": 12, "changelog": 12, "restart": 12, "pull": 12, "repositori": 12, "overwrit": 12, "cp": 12, "r": 12, "There": 12, "One": 12, "proxi": 12, "pass": 12, "distribut": 12, "network": 12, "startlimitintervalsec": 12, "simpl": 12, "alwai": 12, "restartsec": 12, "standardoutput": 12, "syslog": 12, "standarderror": 12, "syslogidentifi": 12, "workingdirectori": 12, "home": 12, "execstart": 12, "venv": 12, "bin": 12, "create_app": 12, "logfil": 12, "wantedbi": 12, "multi": 12, "OF": 12, "listen": 12, "443": 12, "http2": 12, "server_nam": 12, "ssl_certif": 12, "fullchain": 12, "pem": 12, "ssl_certificate_kei": 12, "privkei": 12, "proxy_pass": 12, "proxy_redirect": 12, "proxy_set_head": 12, "real": 12, "ip": 12, "remote_addr": 12, "forward": 12, "proxy_add_x_forwarded_for": 12, "301": 12, "request_uri": 12, "larger": 12, "client_max_body_s": 12, "build": 12, "init": 12, "8025": 12, "access": 12, "mailhog": 12, "shell": 12, "insid": 12, "addit": 12, "fittrackee_cli": 12, "exc": 13, "nosuchmoduleerror": 13, "plugin": 13, "dialect": 13, "invalidemailurlschem": 13, "todo": 15}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [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-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 1, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 2, 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, 1, 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, 2, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [1, 2, 1, "get--api-ping", "/api/ping"], [3, 2, 1, "get--api-records", "/api/records"], [4, 2, 1, "get--api-sports", "/api/sports"], [4, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [4, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [5, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [5, 2, 1, "get--api-stats-all", "/api/stats/all"], [6, 2, 1, "get--api-users", "/api/users"], [6, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [6, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [6, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [6, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [7, 2, 1, "get--api-workouts", "/api/workouts"], [7, 0, 1, "post--api-workouts", "/api/workouts"], [7, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [7, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [7, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [7, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [7, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [12, 4, 1, "-", "APP_LOG"], [12, 4, 1, "-", "APP_SECRET_KEY"], [12, 4, 1, "-", "APP_SETTINGS"], [12, 4, 1, "-", "APP_WORKERS"], [12, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [12, 4, 1, "-", "DATABASE_URL"], [12, 4, 1, "-", "DEFAULT_STATICMAP"], [12, 4, 1, "-", "EMAIL_URL"], [12, 4, 1, "-", "FLASK_APP"], [12, 4, 1, "-", "HOST"], [12, 4, 1, "-", "MAP_ATTRIBUTION"], [12, 4, 1, "-", "PORT"], [12, 4, 1, "-", "REDIS_URL"], [12, 4, 1, "-", "SENDER_EMAIL"], [12, 4, 1, "envvar-STATICMAP_SUBDOMAINS", "STATICMAP_SUBDOMAINS \ud83c\udd95"], [12, 4, 1, "-", "TILE_SERVER_URL"], [12, 4, 1, "-", "UI_URL"], [12, 4, 1, "-", "UPLOAD_FOLDER"], [12, 4, 1, "-", "VUE_APP_API_URL"], [12, 4, 1, "-", "WEATHER_API_KEY"], [12, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[7, 2, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:delete", "2": "http:get", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "delete", "HTTP delete"], "2": ["http", "get", "HTTP get"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "configur": 1, "api": 2, "document": 2, "endpoint": 2, "record": 3, "sport": 4, "statist": [5, 8, 10], "user": [6, 9, 15], "workout": [7, 10, 13], "chang": 8, "log": 8, "version": 8, "0": 8, "6": 8, "10": 8, "2022": 8, "07": 8, "13": 8, "issu": 8, "close": 8, "bug": 8, "fix": 8, "pull": 8, "request": 8, "9": 8, "03": 8, "featur": [8, 10], "translat": [8, 10], "8": 8, "06": 8, "22": 8, "misc": 8, "7": 8, "11": 8, "05": 8, "29": 8, "5": 8, "04": 8, "24": 8, "4": 8, "23": 8, "3": 8, "09": 8, "2": 8, "1": 8, "27": 8, "02": 8, "secur": 8, "01": 8, "19": 8, "new": 8, "2021": 8, "12": 8, "30": 8, "14": 8, "16": 8, "21": 8, "17": 8, "31": 8, "2020": 8, "fittracke": [8, 11, 13], "pypi": [8, 12], "administr": [8, 10, 13], "15": 8, "improv": 8, "minor": 8, "avail": 8, "french": 8, "2019": 8, "first": 8, "releas": 8, "2018": 8, "command": 9, "line": 9, "interfac": 9, "databas": 9, "ftcli": 9, "db": 9, "upgrad": [9, 12], "drop": 9, "updat": 9, "account": 10, "prefer": 10, "screenshot": 10, "dashboard": 10, "detail": [10, 13], "list": 10, "tabl": 11, "content": 11, "instal": 12, "prerequisit": 12, "environ": 12, "variabl": 12, "email": 12, "map": [12, 13], "tile": 12, "server": 12, "from": 12, "sourc": 12, "dev": 12, "product": 12, "prod": 12, "deploy": 12, "docker": 12, "develop": 12, "fail": 13, "start": 13, "imag": 13, "ar": 13, "displai": 13, "shown": 13, "troubleshoot": 14}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html index eebb4147..65b02601 100644 --- a/docs/troubleshooting/administrator.html +++ b/docs/troubleshooting/administrator.html @@ -5,7 +5,7 @@ - Administrator — FitTrackee 0.6.9 + <title>Administrator — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10
                                                                diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index fad3334a..be84f798 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -5,7 +5,7 @@ - Troubleshooting — FitTrackee 0.6.9 + <title>Troubleshooting — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10
                                                                diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html index ce912f95..1062001e 100644 --- a/docs/troubleshooting/user.html +++ b/docs/troubleshooting/user.html @@ -5,7 +5,7 @@ - User — FitTrackee 0.6.9 + <title>User — FitTrackee 0.6.10 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.6.9 + 0.6.10
                                                                diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png index 328f3aa5..78cff17f 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 3f07ca60..ca67c5f7 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 64668f67..8bceb460 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 a1374a3e..644f14f0 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 c1a46ad8..afbd16d1 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 706e2a90..a2816269 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/installation.rst b/docsrc/source/installation.rst index d7de6753..7cc2ae1a 100644 --- a/docsrc/source/installation.rst +++ b/docsrc/source/installation.rst @@ -175,6 +175,16 @@ deployment method. :default: `https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png` +.. envvar:: STATICMAP_SUBDOMAINS 🆕 + + .. versionadded:: 0.6.10 + + | Some tile servers require a subdomain, see `Map tile server `__. + | For instance: "a,b,c" for OSM France. + + :default: empty string + + .. envvar:: MAP_ATTRIBUTION .. versionadded:: 0.4.0 @@ -184,11 +194,17 @@ deployment method. :default: `© OpenStreetMap contributors` -.. envvar:: DEFAULT_STATICMAP 🆕 +.. envvar:: DEFAULT_STATICMAP .. versionadded:: 0.4.9 - If `True`, it keeps using default tile server to generate static maps. + | If `True`, it keeps using default tile server to generate static maps (Komoot.de tile server). + | Otherwise, it uses the tile server set in `TILE_SERVER_URL `__. + + .. versionchanged:: 0.6.10 + + | This variable is now case-insensitive. + | If `False`, depending on tile server, `subdomains `__ may be mandatory. :default: False @@ -256,6 +272,20 @@ To keep using **ThunderForest Outdoors**, the configuration is: .. note:: | Check the terms of service of tile provider for map attribution + +.. versionchanged:: 0.6.10 + +Since the tile server can be used for static map generation, some servers require a subdomain. + +For instance, to set OSM France tile server, the expected values are: + +- ``TILE_SERVER_URL=https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png`` +- ``MAP_ATTRIBUTION='fond de carte par OpenStreetMap France, sous licence CC BY-SA'`` +- ``STATICMAP_SUBDOMAINS=a,b,c`` + +The subdomain will be chosen randomly. + + Installation ~~~~~~~~~~~~ @@ -395,13 +425,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.6.9): +- Download the last release (for now, it is the release v0.6.10): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.9.tar.gz - $ tar -xzf v0.6.9.tar.gz - $ mv FitTrackee-0.6.9 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.10.tar.gz + $ tar -xzf v0.6.10.tar.gz + $ mv FitTrackee-0.6.10 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -521,13 +551,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.6.9) and overwrite existing files: +- Download the last release (for now, it is the release v0.6.10) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.9.tar.gz - $ tar -xzf v0.6.9.tar.gz - $ cp -R FitTrackee-0.6.9/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.10.tar.gz + $ tar -xzf v0.6.10.tar.gz + $ cp -R FitTrackee-0.6.10/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). @@ -590,6 +620,7 @@ Examples (to update depending on your application configuration and given distri Environment="SENDER_EMAIL=" Environment="REDIS_URL=" Environment="TILE_SERVER_URL=" + Environment="STATICMAP_SUBDOMAINS=" Environment="MAP_ATTRIBUTION=" Environment="WEATHER_API_KEY=" WorkingDirectory=/home// diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index 70bdf7df..3747c79c 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -20,7 +20,7 @@ from sqlalchemy.exc import ProgrammingError from fittrackee.emails.email import EmailService from fittrackee.request import CustomRequest -VERSION = __version__ = '0.6.9' +VERSION = __version__ = '0.6.10' db = SQLAlchemy() bcrypt = Bcrypt() migrate = Migrate() diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py index abfc7c4e..cde2eaa3 100644 --- a/fittrackee/application/app_config.py +++ b/fittrackee/application/app_config.py @@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]: "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors" - "version": "0.6.9" + "version": "0.6.10" }, "status": "success" } @@ -98,7 +98,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]: "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors" - "version": "0.6.9" + "version": "0.6.10" }, "status": "success" } diff --git a/fittrackee/config.py b/fittrackee/config.py index 4898fb1c..4f5ffd6e 100644 --- a/fittrackee/config.py +++ b/fittrackee/config.py @@ -43,8 +43,9 @@ class BaseConfig: ' contributors', ), 'DEFAULT_STATICMAP': ( - os.environ.get('DEFAULT_STATICMAP', 'False') == 'True' + os.environ.get('DEFAULT_STATICMAP', 'false').lower() == 'true' ), + 'STATICMAP_SUBDOMAINS': os.environ.get('STATICMAP_SUBDOMAINS', ''), } TRANSLATIONS_FOLDER = os.path.join( current_app.root_path, 'emails/translations' diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index c91b176d..72d11cb3 100644 --- a/fittrackee/dist/index.html +++ b/fittrackee/dist/index.html @@ -1 +1 @@ -FitTrackee
                                                                \ No newline at end of file +FitTrackee
                                                                \ No newline at end of file diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index cd7f53fa..b481588e 100644 --- a/fittrackee/dist/service-worker.js +++ b/fittrackee/dist/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-2d118ab0"],(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:"26a9d81dcb8f174eeb8993a6bca76bd3"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.32d0ced1.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.203e78e2.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.d0356685.css",revision:null},{url:"/static/css/workouts.fa95a9cb.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.b773e58b.js",revision:null},{url:"/static/js/431.8c82cbac.js",revision:null},{url:"/static/js/633.69dd3969.js",revision:null},{url:"/static/js/858.6dd1c30f.js",revision:null},{url:"/static/js/93.8adb4a90.js",revision:null},{url:"/static/js/admin.d8f63f79.js",revision:null},{url:"/static/js/app.51b2bdb0.js",revision:null},{url:"/static/js/chunk-vendors.7123d468.js",revision:null},{url:"/static/js/password.332510b4.js",revision:null},{url:"/static/js/profile.cc6add96.js",revision:null},{url:"/static/js/reset.0550e664.js",revision:null},{url:"/static/js/statistics.145d19e3.js",revision:null},{url:"/static/js/workouts.f325b0e6.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 n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-2d118ab0"],(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:"993205b32240728616fc3c2dd2a5b08f"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.32d0ced1.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.203e78e2.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.d0356685.css",revision:null},{url:"/static/css/workouts.fa95a9cb.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.b773e58b.js",revision:null},{url:"/static/js/431.8c82cbac.js",revision:null},{url:"/static/js/633.69dd3969.js",revision:null},{url:"/static/js/858.6dd1c30f.js",revision:null},{url:"/static/js/93.8adb4a90.js",revision:null},{url:"/static/js/admin.b19d15cc.js",revision:null},{url:"/static/js/app.bf1d4e1c.js",revision:null},{url:"/static/js/chunk-vendors.7132edc6.js",revision:null},{url:"/static/js/password.332510b4.js",revision:null},{url:"/static/js/profile.12bdb140.js",revision:null},{url:"/static/js/reset.90b2d965.js",revision:null},{url:"/static/js/statistics.1ad194e3.js",revision:null},{url:"/static/js/workouts.22600b70.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 e5b98b9f..1117f0c6 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/61cb3c8fe6a1080f01ac538f1b2c7e01/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\": \"26a9d81dcb8f174eeb8993a6bca76bd3\"\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.32d0ced1.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.203e78e2.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.d0356685.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.fa95a9cb.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.b773e58b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.8c82cbac.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.69dd3969.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.6dd1c30f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.8adb4a90.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.d8f63f79.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.51b2bdb0.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.7123d468.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.332510b4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.cc6add96.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.0550e664.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.145d19e3.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.f325b0e6.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,iBAYTC,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,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/a0680a9b4929274846d518abb8438593/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\": \"993205b32240728616fc3c2dd2a5b08f\"\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.32d0ced1.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.203e78e2.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.d0356685.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.fa95a9cb.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.b773e58b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.8c82cbac.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.69dd3969.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.6dd1c30f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.8adb4a90.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.b19d15cc.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.bf1d4e1c.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.7132edc6.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.332510b4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.12bdb140.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.90b2d965.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.1ad194e3.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.22600b70.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,iBAYTC,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,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb"} \ No newline at end of file diff --git a/fittrackee/dist/static/js/admin.d8f63f79.js b/fittrackee/dist/static/js/admin.b19d15cc.js similarity index 96% rename from fittrackee/dist/static/js/admin.d8f63f79.js rename to fittrackee/dist/static/js/admin.b19d15cc.js index 6526717e..04722fa4 100644 --- a/fittrackee/dist/static/js/admin.d8f63f79.js +++ b/fittrackee/dist/static/js/admin.b19d15cc.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[328],{6e3:function(t,e,i){i.r(e),i.d(e,{default:function(){return _}});var a=i(6252),n=i(2262),s=i(8273),c=i(8602),r=i(9917);const S=t=>((0,a.dD)("data-v-64629971"),t=t(),(0,a.Cn)(),t),l={id:"admin",class:"view"},p={key:0,class:"container"},u=S((()=>(0,a._)("div",{id:"bottom"},null,-1)));var T=(0,a.aZ)({__name:"AdminView",setup(t){const e=(0,r.o)(),i=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>e.getters[c.SY.GETTERS.APP_STATS])),T=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.IS_ADMIN])),d=(0,a.Fl)((()=>e.getters[c.YN.GETTERS.USER_LOADING]));return(0,a.wF)((()=>e.dispatch(c.SY.ACTIONS.GET_APPLICATION_STATS))),(t,e)=>{const c=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",l,[(0,n.SU)(d)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",p,[(0,n.SU)(T)?((0,a.wg)(),(0,a.j4)(c,{key:0,appConfig:(0,n.SU)(i),appStatistics:(0,n.SU)(S)},null,8,["appConfig","appStatistics"])):((0,a.wg)(),(0,a.j4)(s.Z,{key:1})),u]))])}}}),d=i(3744);const o=(0,d.Z)(T,[["__scopeId","data-v-64629971"]]);var _=o}}]); -//# sourceMappingURL=admin.d8f63f79.js.map \ No newline at end of file +//# sourceMappingURL=admin.b19d15cc.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/admin.b19d15cc.js.map b/fittrackee/dist/static/js/admin.b19d15cc.js.map new file mode 100644 index 00000000..4ef2af60 --- /dev/null +++ b/fittrackee/dist/static/js/admin.b19d15cc.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/admin.b19d15cc.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,W,UClDV,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE","sources":["webpack://fittrackee_client/./src/views/AdminView.vue?67de","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appStatistics: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/admin.d8f63f79.js.map b/fittrackee/dist/static/js/admin.d8f63f79.js.map deleted file mode 100644 index 8aaba412..00000000 --- a/fittrackee/dist/static/js/admin.d8f63f79.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/admin.d8f63f79.js","mappings":"mOAGA,MAAMA,EAAeC,KAAMC,EAAAA,EAAAA,IAAa,mBAAmBD,EAAEA,KAAIE,EAAAA,EAAAA,MAAcF,GACzEG,EAAa,CACjBC,GAAI,QACJC,MAAO,QAEHC,EAAa,CACjBC,IAAK,EACLF,MAAO,aAEHG,EAA2BT,GAAa,KAAmBU,EAAAA,EAAAA,GAAoB,MAAO,CAAEL,GAAI,UAAY,MAAO,KAUrH,OAA4BM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAEN,MAAMC,GAAQC,EAAAA,EAAAA,KAERC,GAAqCC,EAAAA,EAAAA,KACzC,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,cAEhBC,GAA6CH,EAAAA,EAAAA,KACjD,IAAMH,EAAMI,QAAQC,EAAAA,GAAAA,QAAAA,aAEhBE,GAAuCJ,EAAAA,EAAAA,KAC3C,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,YAEhBC,GAAoCN,EAAAA,EAAAA,KACxC,IAAMH,EAAMI,QAAQI,EAAAA,GAAAA,QAAAA,gBAKxB,OAFEE,EAAAA,EAAAA,KAAc,IAAMV,EAAMW,SAASN,EAAAA,GAAAA,QAAAA,yBAE9B,CAACO,EAAUC,KAChB,MAAMC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAO5B,EAAY,EACzD6B,EAAAA,EAAAA,IAAOT,IAWLU,EAAAA,EAAAA,IAAoB,IAAI,KAVvBH,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAoB,MAAOzB,EAAY,EACnD0B,EAAAA,EAAAA,IAAOX,KACHS,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaN,EAAwB,CAClDrB,IAAK,EACLS,WAAWgB,EAAAA,EAAAA,IAAOhB,GAClBI,eAAeY,EAAAA,EAAAA,IAAOZ,IACrB,KAAM,EAAG,CAAC,YAAa,qBACzBU,EAAAA,EAAAA,OAAcI,EAAAA,EAAAA,IAAaC,EAAAA,EAAU,CAAE5B,IAAK,KACjDC,W,UClDV,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE","sources":["webpack://fittrackee_client/./node_modules/vue-loader/dist/index.js","webpack://fittrackee_client/./src/views/AdminView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-64629971\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig, IAppStatistics } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminView',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appStatistics: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_STATS]\n )\n const isAuthUserAmin: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_ADMIN]\n )\n const userLoading: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\n onBeforeMount(() => store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_STATS))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (!_unref(userLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAuthUserAmin))\n ? (_openBlock(), _createBlock(_component_router_view, {\n key: 0,\n appConfig: _unref(appConfig),\n appStatistics: _unref(appStatistics)\n }, null, 8, [\"appConfig\", \"appStatistics\"]))\n : (_openBlock(), _createBlock(NotFound, { key: 1 })),\n _hoisted_3\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminView.vue?vue&type=style&index=0&id=64629971&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-64629971\"]])\n\nexport default __exports__"],"names":["_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","class","_hoisted_2","key","_hoisted_3","_createElementVNode","_defineComponent","__name","setup","__props","store","useStore","appConfig","computed","getters","ROOT_STORE","appStatistics","isAuthUserAmin","AUTH_USER_STORE","userLoading","onBeforeMount","dispatch","_ctx","_cache","_component_router_view","_resolveComponent","_openBlock","_createElementBlock","_unref","_createCommentVNode","_createBlock","NotFound","__exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.51b2bdb0.js b/fittrackee/dist/static/js/app.51b2bdb0.js deleted file mode 100644 index df4bb97a..00000000 --- a/fittrackee/dist/static/js/app.51b2bdb0.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var e={5167:function(e,t,n){"use strict";var r=n(9669),a=n.n(r),o=n(12),s=n(8602),i=n(2024);const l=a().create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=o.Z.getters[s.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))),t["Z"]=l},2540:function(e,t,n){"use strict";var r=n(3324);function a(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){const a=r[1];t[a]=e(n).default}})),t}t["Z"]=(0,r.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:a()})},27:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["unter ",n(r(0))," Lizenz"])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Quellkode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt-E-Mail des Administrators"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Neue E-Mail"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Das wasswort wurde zurückgesetzt."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainings existieren"])},IMAGE:e=>{const{normalize:t}=e;return t(["Bild"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:t}=e;return t(["Nutzer"])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte entfernen"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["Adminstatus"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Accountstatus"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["Trainingsanzahl"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Abrufen der Konfiguration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Aktualisieren der Konfiguration."])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Die Datei ist größer als erlaubt."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden."])},"no file part":e=>{const{normalize:t}=e;return t(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:t}=e;return t(["Keine Datei ausgewählt."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Gebe ein gültiges Authentifizierungstoken an."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sportart existiert nicht."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Du hast keine Berechtigung."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["Vorhergehende"])},NEXT:e=>{const{normalize:t}=e;return t(["Nächste"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Bestätigungs-E-Mail erneut senden"])},BACK:e=>{const{normalize:t}=e;return t(["Zurück"])},CANCEL:e=>{const{normalize:t}=e;return t(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Lösche meinen Account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Editieren"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aktivieren"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Einloggen"])},NO:e=>{const{normalize:t}=e;return t(["Nein"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESET:e=>{const{normalize:t}=e;return t(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Speichern"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["Über"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bestätigung"])},CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["Tag"]),t(["Tage"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])},ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["pro Seite"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Dieser Monat"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
                                                                Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Etwas lief schief"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (elektrisch)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rudern"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["Woche"])},month:e=>{const{normalize:t}=e;return t(["Monat"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Eine neue Bestätigungsemail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Möchtest Du Dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:t}=e;return t(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Gebe ein Passwort ein"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte fordere ein neues Passworts an."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["schwach"])},AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},capitalization:e=>{const{normalize:t}=e;return t(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:t}=e;return t(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])},noNeed:e=>{const{normalize:t}=e;return t(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:t}=e;return t(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Dein Passwort wurde aktualisiert. Klicke ",n(r(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Kontoausgabe"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Zurück zum Profil"])},BIO:e=>{const{normalize:t}=e;return t(["Biographie"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geburtsdatum"])},EDIT:e=>{const{normalize:t}=e;return t(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen für Sportarten ändern"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Bitte ",n(r(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nachname"])},LOCATION:e=>{const{normalize:t}=e;return t(["Ort"])},MONDAY:e=>{const{normalize:t}=e;return t(["Montag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Bildausgabe"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Einstellungsausgabe"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Regirierungsdatum"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["Konto"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen"])},PROFILE:e=>{const{normalize:t}=e;return t(["Profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["Sportarten"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},COLOR:e=>{const{normalize:t}=e;return t(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["aktiv"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Geschwindigkeitsschwellenwert für Stopp"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sende Email zur Kontobestätigung erneut"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Dieser Account ist inaktiv."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich "_" sind erlaubt.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["Analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["Aufstieg"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["zurück zum Training"])},DATE:e=>{const{normalize:t}=e;return t(["Datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["zeige Filter"])},DISTANCE:e=>{const{normalize:t}=e;return t(["Entfernung"])},DURATION:e=>{const{normalize:t}=e;return t(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:t}=e;return t(["Höhe"])},END:e=>{const{normalize:t}=e;return t(["Ende"])},FROM:e=>{const{normalize:t}=e;return t(["Von"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberge Filter"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nächstes Training"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Keine Trainings."])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},PAUSES:e=>{const{normalize:t}=e;return t(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorheriges Training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["Aufzeichnung"]),t(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Weiteste Entfernung"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["Segment"]),t(["Segmente"])])},SPEED:e=>{const{normalize:t}=e;return t(["Geschwindigkeit"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["Sportart"]),t(["Sportarten"])])},START:e=>{const{normalize:t}=e;return t(["Start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:t}=e;return t(["Titel"])},TO:e=>{const{normalize:t}=e;return t(["bis"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Füge erstes Training hinzu!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["Temperatur"])},WIND:e=>{const{normalize:t}=e;return t(["Wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},E:e=>{const{normalize:t}=e;return t(["O"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["klarer Tag"])},"clear-night":e=>{const{normalize:t}=e;return t(["klare Nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["wolkig"])},fog:e=>{const{normalize:t}=e;return t(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:t}=e;return t(["Regen"])},sleet:e=>{const{normalize:t}=e;return t(["Schneeregen"])},snow:e=>{const{normalize:t}=e;return t(["Schnee"])},wind:e=>{const{normalize:t}=e;return t(["Wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .gpx Datei"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["Training"]),t(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["oder .zip Datei mit .gpx Dateien"])}},E={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},9350:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["under ",n(r(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to reset ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
                                                                Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["weak"])},AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Please ",n(r(0))," to change your email address again or contact the administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},E={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},1079:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["sous licence ",n(r(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(r(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(r(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Courriel : une adresse électronique valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Renvoyer le message de confirmation"])},BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois-ci"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
                                                                Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Électrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisir une adresse email valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["faible"])},AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe "])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Veuillez vous ",n(r(0))," pour changer de nouveau votre adresse email ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances "])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse email fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau l'email de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère "_" sont autorisés.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},E={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},9370:function(e,t,n){"use strict";var r=n(3328),a=n(8278),o=n(9963),s=n(2343),i=n(5205);(0,i.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},S={class:"footer-items"},E={class:"footer-item"},_=d((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},O={key:1,class:"footer-item"},U=["href"],R=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),g={class:"footer-item"},I={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:r}=(0,c.BK)(t);return(e,t)=>{const a=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",m,[(0,l._)("div",S,[(0,l._)("div",E,[_,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(r)),1)]),T,(0,l._)("div",p,[(0,l.Wm)(a,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",O,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,U)])):(0,l.kq)("",!0),R,(0,l._)("div",g,[(0,l._)("a",I,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),z=n(3744);const w=(0,z.Z)(N,[["__scopeId","data-v-2c73279e"]]);var h=w,f=n(6595),v=n(8602),D=n(9917),C=n(6287);const k=e=>((0,l.dD)("data-v-95c1cc02"),e=e(),(0,l.Cn)(),e),P={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=k((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},W=k((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),F={class:"nav-items-user-menu"},Y={key:0,class:"nav-items-group"},B={class:"nav-item nav-profile-img"},K={key:1,class:"nav-items-group"},x=k((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var Z=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,D.o)(),r=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.LANGUAGE])),s=(0,c.iH)(!1);function i(){s.value=!0,t("menuInteraction",!0)}function d(){s.value=!1,t("menuInteraction",!1)}function m(e){n.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function S(){n.dispatch(v.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),E=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",P,[(0,l._)("div",L,[(0,l._)("div",M,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":s.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>i())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":s.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!s.value}]),onClick:t[2]||(t[2]=e=>d())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>d())},[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",G,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(a)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),W])):(0,l.kq)("",!0)]),(0,l._)("div",F,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",Y,[(0,l._)("div",B,[(0,l.Wm)(f.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:S},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",K,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(C.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(E,{key:2,class:"nav-item",options:(0,c.SU)(C.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[x])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const $=(0,z.Z)(Z,[["__scopeId","data-v-95c1cc02"]]);var H=$,q=n(7167);const V={id:"no-config"},j={class:"error-page"},X={class:"error-img"},J=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",V,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(q.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,z.Z)(Q,[["__scopeId","data-v-47759238"]]);var te=ee;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},ae={class:"app-loading"},oe={class:"container scroll"},se=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),ie=[se];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,D.o)(),n=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function s(e){a.value=e}function i(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&i(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function S(){let e="en";try{const t=navigator.language.split("-")[0];t in C.v1&&(e=t)}catch(n){e="en"}t.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{S(),t.dispatch(v.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>d())),(e,t)=>{const i=(0,l.up)("Loader"),d=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)(H,{onMenuInteraction:s}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(i)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":a.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(d,{key:0})):((0,l.wg)(),(0,l.j4)(te,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":o.value}]),onClick:m},ie,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(h,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ce=le;var ue=ce,de=n(2540),me=n(4809),Se=n(12);const Ee={class:"alert-message"},_e=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,_e)]))}});const pe=(0,z.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Ue={class:"custom-textarea"},Re=["id","name","maxLenght","disabled"],ge={class:"remaining-chars"};var Ie=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,r=(0,c.iH)("");function a(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{r.value=e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Ue,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e),onInput:a},null,40,Re),[[o.nr,r.value]]),(0,l._)("div",ge,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,z.Z)(Ie,[["__scopeId","data-v-7fb0a1e7"]]);var ze=Ne,we=n(3649);const he=(0,l.Uk)(" "+(0,u.zw)(" ")+" ");var fe=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:r,distance:a,speed:o,strong:s,unitFrom:i,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?we.Dl[i.value].defaultTarget:i.value)),S=(0,l.Fl)((()=>d.value?(0,we.sC)(a.value,i.value,m.value,n.value):parseFloat(a.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(S)),3),he,(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const ve=(0,z.Z)(fe,[["__scopeId","data-v-f46ff1d6"]]);var De=ve,Ce=n(2119);const ke={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},Le=["onClick"];var Me=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,r=(0,Ce.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function s(){a.value=!a.value}function i(e){t("selected",e),a.value=!1}return(0,l.YP)((()=>r.path),(()=>a.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",ke,[(0,l._)("div",{class:"dropdown-selected",onClick:s},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(o),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>i(t)},(0,u.zw)(t.label),11,Le)))),128))])):(0,l.kq)("",!0)]))}});const be=(0,z.Z)(Me,[["__scopeId","data-v-2d3b4eac"]]);var ye=be;const Ge={class:"error-message"},We={key:0},Fe={key:1};var Ye=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ge,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",We,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Fe,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const Be=(0,z.Z)(Ye,[["__scopeId","data-v-2659a79a"]]);var Ke=Be;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"},Ze=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),$e=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),He=[Ze,$e];function qe(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xe,He)}var Ve={name:"CyclingSport"};const je=(0,z.Z)(Ve,[["render",qe]]);var Xe=je;const Je={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"},Qe=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),et=(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),tt=[Qe,et];function nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Je,tt)}var rt={name:"CyclingTransport"};const at=(0,z.Z)(rt,[["render",nt]]);var ot=at;const st={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 463.507 463.507",style:{"enable-background":"new 0 0 463.507 463.507"},"xml:space":"preserve"},it=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),lt=(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),ct=[it,lt];function ut(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",st,ct)}var dt={name:"Hiking"};const mt=(0,z.Z)(dt,[["render",ut]]);var St=mt;const Et={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"},_t=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Tt=(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),pt=[_t,Tt];function At(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Et,pt)}var Ot={name:"MountainBiking"};const Ut=(0,z.Z)(Ot,[["render",At]]);var Rt=Ut;const gt={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"},It=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),Nt=[It];function zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",gt,Nt)}var wt={name:"MountainBikingElectric"};const ht=(0,z.Z)(wt,[["render",zt]]);var ft=ht;const vt={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"},Dt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),Ct=(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),kt=[Dt,Ct];function Pt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vt,kt)}var Lt={name:"Rowing"};const Mt=(0,z.Z)(Lt,[["render",Pt]]);var bt=Mt;const yt={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"},Gt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Wt=(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),Ft=[Gt,Wt];function Yt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",yt,Ft)}var Bt={name:"Running"};const Kt=(0,z.Z)(Bt,[["render",Yt]]);var xt=Kt;const Zt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},$t=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Ht=(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),qt=[$t,Ht];function Vt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Zt,qt)}var jt={name:"SkiingAlpine"};const Xt=(0,z.Z)(jt,[["render",Vt]]);var Jt=Xt;const Qt={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"},en=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),tn=(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),nn=[en,tn];function rn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Qt,nn)}var an={name:"SkiingCrossCountry"};const on=(0,z.Z)(an,[["render",rn]]);var sn=on;const ln={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"},cn=(0,l.uE)('silhouette of a person with snowshoes',6),un=[cn];function dn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ln,un)}var mn={name:"Snowshoes"};const Sn=(0,z.Z)(mn,[["render",dn]]);var En=Sn;const _n={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"},Tn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),pn=(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),An=[Tn,pn];function On(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",_n,An)}var Un={name:"Trail"};const Rn=(0,z.Z)(Un,[["render",On]]);var gn=Rn;const In={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Nn=(0,l.uE)('silhouette of a walking person',3),zn=[Nn];function wn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,zn)}var hn={name:"Walking"};const fn=(0,z.Z)(hn,[["render",wn]]);var vn=fn;const Dn=["title"];var Cn=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:r,title:a}=(0,c.BK)(t),o=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(o)[(0,c.SU)(r)]}),title:(0,c.SU)(a)?(0,c.SU)(a):e.$t(`sports.${(0,c.SU)(r)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Xe,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(ot,{key:1})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(St,{key:2})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Rt,{key:3})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(ft,{key:4})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(bt,{key:5})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(xt,{key:6})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Jt,{key:7})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(sn,{key:8})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(En,{key:9})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(gn,{key:10})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(vn,{key:11})):(0,l.kq)("",!0)],12,Dn))}});const kn=Cn;var Pn=kn;const Ln={class:"loader"};function Mn(e,t){return(0,l.wg)(),(0,l.iD)("div",Ln)}const bn={},yn=(0,z.Z)(bn,[["render",Mn],["__scopeId","data-v-4c9921ee"]]);var Gn=yn;const Wn={id:"modal"},Fn={class:"custom-modal"},Yn={key:0,class:"modal-message"},Bn={key:1,class:"modal-message"},Kn={class:"modal-buttons"};var xn=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,r=(0,D.o)(),{title:a,message:o,strongMessage:s}=(0,c.BK)(n),i=(0,l.Fl)((()=>r.getters[v.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(v.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),d=(0,l.up)("ErrorMessage"),m=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Wn,[(0,l._)("div",Fn,[(0,l.Wm)(m,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",Yn,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(s)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",Bn,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(i)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(i)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",Kn,[(0,c.SU)(i)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(i)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const Zn=(0,z.Z)(xn,[["__scopeId","data-v-e8fcfaba"]]);var $n=Zn;const Hn=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:ze,name:"CustomTextArea"},{target:De,name:"Distance"},{target:ye,name:"Dropdown"},{target:Ke,name:"ErrorMessage"},{target:Gn,name:"Loader"},{target:$n,name:"Modal"},{target:Pn,name:"SportImage"}],qn={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var Vn=n(631);r.kL.register(r.ZL,r.jn,r.od,r.De,r.Dx,r.u,r.Gu,r.vn,r.uw,r.ST,r.f$,a.Z);const jn=(0,o.ri)(ue).provide("sportColors",Vn.Zo).use(de.Z).use(Se.Z).use(me.Z).use(s.ZP,{name:"VFullscreen"}).directive("click-outside",qn);Hn.forEach((e=>{jn.component(e.name,e.target)})),jn.mount("#app")},4809:function(e,t,n){"use strict";n.d(t,{Z:function(){return si}});n(6699);var r=n(2119),a=n(6252),o=n(3577),s=n(9963),i=n(2262),l=n(8602),c=n(9917),u=n(8966);const d=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),m={id:"admin-app",class:"admin-card"},S=["onSubmit"],E={for:"admin_contact"},_=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},U={class:"info-box"},R=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),g={for:"max_single_file_size"},I=["disabled"],N={for:"max_zip_file_size"},z=["disabled"],w={for:"gpx_limit_import"},h=["disabled"],f={key:1,class:"form-buttons"},v={class:"confirm",type:"submit"},D=["onClick"],C={key:2,class:"form-buttons"};var k=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,i.BK)(t),d=(0,c.o)(),k=(0,r.tv)(),P=(0,i.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>d.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(P).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?P[t]=(0,u.j)(e[t]):P[t]=e[t]}))}function b(){M(t.appConfig),d.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),k.push("/admin/application")}function y(){const e=Object.assign({},P);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,d.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,a.wF)((()=>{t.appConfig&&M(t.appConfig)})),(e,t)=>{const r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("form",{class:"admin-form",onSubmit:(0,s.iM)(y,["prevent"])},[(0,a._)("label",E,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,i.SU)(n)||P.admin_contact?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>P.admin_contact=e),disabled:!(0,i.SU)(n)},null,8,T)),[[s.nr,P.admin_contact]]):((0,a.wg)(),(0,a.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,_))]),(0,a._)("label",p,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>P.max_users=e),disabled:!(0,i.SU)(n)},null,8,A),[[s.nr,P.max_users]])]),(0,a._)("div",O,[(0,a._)("span",U,[R,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",g,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>P.max_single_file_size=e),disabled:!(0,i.SU)(n)},null,8,I),[[s.nr,P.max_single_file_size]])]),(0,a._)("label",N,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>P.max_zip_file_size=e),disabled:!(0,i.SU)(n)},null,8,z),[[s.nr,P.max_zip_file_size]])]),(0,a._)("label",w,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>P.gpx_limit_import=e),disabled:!(0,i.SU)(n)},null,8,h),[[s.nr,P.gpx_limit_import]])]),(0,i.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,i.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(n)?((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",v,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,s.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,D)])):((0,a.wg)(),(0,a.iD)("div",C,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,s.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,o.zw)(e.$t("buttons.EDIT")),1),(0,a._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,S)])),_:1})])}}}),P=n(3744);const L=(0,P.Z)(k,[["__scopeId","data-v-24ec93e2"]]);var M=L;const b={class:"stat-card"},y={class:"stat-content box"},G={class:"stat-icon"},W={class:"stat-details"},F={class:"stat-huge"},Y={class:"stat"};var B=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:s}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",b,[(0,a._)("div",y,[(0,a._)("div",G,[(0,a._)("i",{class:(0,o.C_)(["fa",`fa-${(0,i.SU)(n)}`])},null,2)]),(0,a._)("div",W,[(0,a._)("div",F,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("div",Y,(0,o.zw)((0,i.SU)(r)),1)])])]))}});const K=B;var x=K;const Z={id:"user-stats"};var $=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,i.BK)(t),r=(0,a.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Z,[(0,a.Wm)(x,{icon:"users",value:(0,i.SU)(n).users,text:e.$t("admin.USER",(0,i.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"tags",value:(0,i.SU)(n).sports,text:e.$t("workouts.SPORT",(0,i.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"calendar",value:(0,i.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"folder-open",value:(0,i.SU)(r).size,text:(0,i.SU)(r).suffix},null,8,["value","text"])]))}});const H=$;var q=H,V=n(2531);const j=e=>((0,a.dD)("data-v-0dd66f89"),e=e(),(0,a.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=j((()=>(0,a._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},re=j((()=>(0,a._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var ae=(0,a.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:r}=(0,i.BK)(t);return(e,t)=>{const s=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(V.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(q,{appStatistics:(0,i.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/application"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,a._)("dd",Q,[(0,a.Uk)((0,o.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,a._)("span",te,(0,o.zw)(e.$t("admin.REGISTRATION_"+((0,i.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,i.SU)(n).is_email_sending_enabled?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",ne,[re,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/sports"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/users"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const oe=(0,P.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var se=oe,ie=n(3324),le=n(631);const ce=e=>((0,a.dD)("data-v-6d62af67"),e=e(),(0,a.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},de={class:"responsive-table"},me=ce((()=>(0,a._)("th",null,"#",-1))),Se={class:"text-left"},Ee={class:"text-left sport-action"},_e=ce((()=>(0,a._)("th",null,null,-1))),Te={class:"text-center"},pe=ce((()=>(0,a._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Oe={class:"sport-label"},Ue={class:"cell-heading"},Re={class:"text-center"},ge={class:"cell-heading"},Ie={class:"sport-action"},Ne={class:"cell-heading"},ze={class:"action-button"},we=["onClick"],he={key:0,class:"has-workouts"},fe=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var ve=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,ie.QT)(),n=(0,c.o)(),r=(0,a.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,a.up)("SportImage"),l=(0,a.up)("ErrorMessage"),c=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ue,[(0,a.Wm)(c,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",de,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[me,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",Se,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("th",Ee,(0,o.zw)(e.$t("admin.ACTION")),1),_e])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.id},[(0,a._)("td",Te,[pe,(0,a.Uk)(" "+(0,o.zw)(t.id),1)]),(0,a._)("td",null,[(0,a._)("span",Ae,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,a._)("td",Oe,[(0,a._)("span",Ue,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Re,[(0,a._)("span",ge,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,a._)("td",Ie,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",ze,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>d(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,we),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",he,[fe,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const De=(0,P.Z)(ve,[["__scopeId","data-v-6d62af67"]]);var Ce=De,ke=n(4850),Pe=n(8626),Le=n(6514),Me=n(6595);const be={class:"users-filters"},ye={class:"search-username"},Ge=["onKeyup","placeholder"];var We=(0,a.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,r.yj)(),l=(0,i.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",be,[(0,a._)("div",ye,[(0,a.wy)((0,a._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,s.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,Ge),[[s.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,a.kq)("",!0)]),(0,a._)("i",{class:(0,o.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Fe=(0,P.Z)(We,[["__scopeId","data-v-627a8e91"]]);var Ye=Fe,Be=n(2766),Ke=n(6558);const xe=e=>((0,a.dD)("data-v-4735c10f"),e=e(),(0,a.Cn)(),e),Ze={id:"admin-users",class:"admin-card"},$e={key:0,class:"no-users"},He={key:1,class:"responsive-table"},qe=xe((()=>(0,a._)("th",null,"#",-1))),Ve={class:"left-text"},je={class:"left-text"},Xe={class:"left-text"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"cell-heading"},nt={class:"text-center"},rt={class:"cell-heading"},at={class:"text-center"},ot={class:"cell-heading"},st={class:"text-center"},it={class:"cell-heading"},lt={class:"text-center"},ct={class:"cell-heading"},ut=["disabled","onClick"];var dt=(0,a.aZ)({__name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,r.yj)(),u=(0,r.tv)(),d=["is_active","admin","created_at","username","workouts_count"],m="created_at";let S=(0,i.qj)((0,Be.pm)(n.query,d,m));const E=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),_=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),T=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),p=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function O(e){R("q",e.value)}function U(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function R(e,t){S[e]=t,"per_page"===e&&(S.page=1),u.push({path:"/admin/users",query:S})}return(0,a.wF)((()=>A(S))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{S=(0,Be.pm)(e,d,m,{query:S}),A(S)})),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ze,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a.Wm)(Ye,{onFilterOnUsername:O}),(0,a.Wm)(Pe.Z,{sort:(0,i.SU)(Be.fS),order_by:d,query:(0,i.SU)(S),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:R},null,8,["sort","query"]),0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",$e,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",He,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[qe,(0,a._)("th",Ve,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",je,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",Xe,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a._)("th",null,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTION")),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(_),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Je,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Me.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Qe,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.username),1)])),_:2},1032,["to"])]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",tt,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(ke.Z)((0,i.SU)(Ke.eB)(t.created_at,(0,i.SU)(E).timezone),"dd/MM/yyyy HH:mm")),1)]),(0,a._)("td",nt,[(0,a._)("span",rt,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a.Uk)(" "+(0,o.zw)(t.nb_workouts),1)]),(0,a._)("td",at,[(0,a._)("span",ot,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",st,[(0,a._)("span",it,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",lt,[(0,a._)("span",ct,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("button",{class:(0,o.C_)({danger:t.admin}),disabled:t.username===(0,i.SU)(E).username,onClick:e=>U(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ut)])])))),128))])]),(0,i.SU)(T).page?((0,a.wg)(),(0,a.j4)(Le.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(T),query:(0,i.SU)(S)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,i.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,i.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,P.Z)(dt,[["__scopeId","data-v-4735c10f"]]);var St=mt,Et=n(2179);const _t={class:"profile-tabs custom-checkboxes-group"},Tt={class:"profile-tabs-checkboxes custom-checkboxes"},pt=["id","name","checked","disabled","onInput"];var At=(0,a.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:r,disabled:s}=(0,i.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",_t,[(0,a._)("div",Tt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(n),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:t,name:t,checked:(0,i.SU)(r)===t,disabled:(0,i.SU)(s),onInput:n=>e.$router.push(l(t))},null,40,pt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const Ot=At;var Ut=Ot;const Rt={id:"user-profile"},gt={class:"box"};var It=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,i.BK)(t),o=["PROFILE","PREFERENCES","SPORTS"];return(e,t)=>{const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",Rt,[(0,a.Wm)(Et.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,a._)("div",gt,[(0,a.Wm)(Ut,{tabs:o,selectedTab:(0,i.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(s,{user:(0,i.SU)(n)},null,8,["user"])])])}}});const Nt=(0,P.Z)(It,[["__scopeId","data-v-e26535e0"]]);var zt=Nt,wt=n(7408),ht=n(6287);const ft={id:"user-preferences",class:"description-list"},vt={class:"profile-buttons"};var Dt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.zK.en)),r=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),s=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris"));return(t,l)=>((0,a.wg)(),(0,a.iD)("div",ft,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(n)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`user.PROFILE.${(0,i.SU)(r)}`)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1)]),(0,a._)("div",vt,[(0,a._)("button",{onClick:l[0]||(l[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:l[1]||(l[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const Ct=Dt;var kt=Ct;const Pt={id:"user-profile-edition",class:"center-card"};var Lt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:s}=(0,i.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,a.up)("router-view"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Pt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,i.SU)(s)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ut,{tabs:u,selectedTab:(0,i.SU)(s),edition:!0,disabled:(0,i.SU)(d)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,i.SU)(r)},null,8,["user"])])),_:1})])}}});const Mt=Lt;var bt=Mt,yt=n(8403);const Gt={id:"user-infos-edition"},Wt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Yt=["onSubmit"],Bt={class:"form-items",for:"email"},Kt=["disabled"],xt={class:"form-items",for:"password-field"},Zt={class:"form-items",for:"new-password-field"},$t={class:"form-buttons"},Ht={class:"confirm",type:"submit"};var qt=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,i.BK)(t),r=(0,c.o)(),u=(0,i.qj)({email:"",password:"",new_password:""}),d=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),E=(0,i.iH)(!1),_=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,i.iH)(!1),p=(0,i.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function U(e){u.password=e}function R(e){u.new_password=e}function g(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),E.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function I(e){p.value=e}function N(e){r.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,a.bv)((()=>{t.user&&O(t.user)})),(0,a.Ah)((()=>{r.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,a.YP)((()=>S.value),(async e=>{e&&(U(""),R(""),O(n.value),T.value=!1)})),(0,a.YP)((()=>n.value.email),(async()=>{O(n.value)})),(e,t)=>{const r=(0,a.up)("Modal"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Gt,[p.value?((0,a.wg)(),(0,a.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>N((0,i.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Wt,[(0,i.SU)(_)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(_)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(S)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${E.value&&(0,i.SU)(m).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,s.iM)(g,["prevent"])},[(0,a._)("label",Bt,[(0,a.Uk)((0,o.zw)(e.$t("user.EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,i.SU)(d),required:!0,onInvalid:A},null,40,Kt),[[s.nr,u.email]])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(yt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:U,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",Zt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(yt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",$t,[(0,a._)("button",Ht,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1),(0,a._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,s.iM)((e=>I(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Yt)])])}}});const Vt=(0,P.Z)(qt,[["__scopeId","data-v-37b8c4c8"]]);var jt=Vt;const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},rn=["disabled"],an={class:"form-items",for:"last_name"},on={class:"form-items",for:"birth_date"},sn=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},dn={class:"form-buttons"},mn={class:"confirm",type:"submit"};var Sn=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,ke.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function S(e){r.first_name=e.first_name?e.first_name:"",r.last_name=e.last_name?e.last_name:"",r.birth_date=e.birth_date?(0,ke.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",r.location=e.location?e.location:"",r.bio=e.bio?e.bio:""}function E(e){r.bio=e}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&S(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage"),l=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Xt,[(0,a._)("div",Jt,[(0,i.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(_,["prevent"])},[(0,a._)("label",en,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,a._)("input",{id:"registrationDate",value:(0,i.SU)(u),disabled:""},null,8,tn)]),(0,a._)("label",nn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>r.first_name=e),disabled:(0,i.SU)(d)},null,8,rn),[[s.nr,r.first_name]])]),(0,a._)("label",an,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>r.last_name=e)},null,512),[[s.nr,r.last_name]])]),(0,a._)("label",on,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,a.wy)((0,a._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>r.birth_date=e),disabled:(0,i.SU)(d)},null,8,sn),[[s.nr,r.birth_date]])]),(0,a._)("label",ln,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,a.wy)((0,a._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>r.location=e),disabled:(0,i.SU)(d)},null,8,cn),[[s.nr,r.location]])]),(0,a._)("label",un,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,a.Wm)(l,{name:"bio",charLimit:200,input:r.bio,disabled:(0,i.SU)(d),onUpdateValue:E},null,8,["input","disabled"])]),(0,a._)("div",dn,[(0,a._)("button",mn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const En=(0,P.Z)(Sn,[["__scopeId","data-v-b6bacea0"]]);var _n=En;const Tn=e=>((0,a.dD)("data-v-687e9604"),e=e(),(0,a.Cn)(),e),pn={id:"user-picture-edition"},An={class:"user-picture-form"},On=["onSubmit"],Un={class:"picture-help"},Rn={class:"info-box"},gn=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),In={class:"picture-buttons"},Nn=["disabled"];var zn=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),S=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",E=(0,i.iH)(null);function _(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(E.value=e.target.files[0])}function p(){E.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:E.value})}return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",pn,[(0,a._)("div",An,[(0,i.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Me.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,s.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",Un,[(0,a._)("span",Rn,[gn,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,i.SU)(S)),1)])]),(0,a._)("div",In,[(0,a._)("button",{type:"submit",disabled:!E.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,i.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:_},(0,o.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,a.kq)("",!0),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,o.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,On)])])}}});const wn=(0,P.Z)(zn,[["__scopeId","data-v-687e9604"]]);var hn=wn;const fn=["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"],vn={id:"tz-dropdown"},Dn=["value","disabled","onKeydown"],Cn=["onClick","onMouseover","autofocus"];var kn=(0,a.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:r,disabled:l}=(0,i.BK)(n),c=(0,i.iH)(n.input),u=(0,i.iH)(!1),d=(0,i.iH)(null),m=(0,i.iH)(0);function S(e){return e.toLowerCase().match(c.value.toLowerCase())}function E(e){m.value=e}function _(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&_(d.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,a.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",vn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,i.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,s.D2)((e=>_((0,i.SU)(r))),["esc"])),(0,s.D2)(T,["enter"])],onInput:p},null,40,Dn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:d},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(fn).filter((e=>S(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===m.value}]),onClick:t=>_(e),onMouseover:e=>E(t),autofocus:t===m.value},(0,o.zw)(e),43,Cn)))),128))],512)):(0,a.kq)("",!0)]))}});const Pn=(0,P.Z)(kn,[["__scopeId","data-v-47ea2903"]]);var Ln=Pn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Wn=["disabled"],Fn=["value"],Yn={class:"form-items"},Bn={class:"form-items"},Kn=["disabled"],xn=["value"],Zn={class:"form-items"},$n=["disabled"],Hn=["value"],qn={class:"form-buttons"},Vn={class:"confirm",type:"submit"};var jn=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({imperial_units:!1,language:"",timezone:"Europe/Paris",weekm:!1}),u=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],d=[{label:"IMPERIAL",value:!0},{label:"METRIC",value:!1}],m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function E(e){r.imperial_units=!!e.imperial_units&&e.imperial_units,r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.weekm=!!e.weekm&&e.weekm}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function T(e){r.timezone=e}return(0,a.bv)((()=>{t.user&&E(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Mn,[(0,a._)("div",bn,[(0,i.SU)(S)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(_,["prevent"])},[(0,a._)("label",Gn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,a.wy)((0,a._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>r.language=e),disabled:(0,i.SU)(m)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(ht.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Fn)))),128))],8,Wn),[[s.bM,r.language]])]),(0,a._)("label",Yn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,i.SU)(m),onUpdateTimezone:T},null,8,["input","disabled"])]),(0,a._)("label",Bn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),(0,a.wy)((0,a._)("select",{id:"weekm","onUpdate:modelValue":t[1]||(t[1]=e=>r.weekm=e),disabled:(0,i.SU)(m)},[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("option",{value:t.value,key:t.value},(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),9,xn))),64))],8,Kn),[[s.bM,r.weekm]])]),(0,a._)("label",Zn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL"))+" ",1),(0,a.wy)((0,a._)("select",{id:"imperial_units","onUpdate:modelValue":t[2]||(t[2]=e=>r.imperial_units=e),disabled:(0,i.SU)(m)},[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("option",{value:t.value,key:t.value},(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),9,Hn))),64))],8,$n),[[s.bM,r.imperial_units]])]),(0,a._)("div",qn,[(0,a._)("button",Vn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const Xn=jn;var Jn=Xn;const Qn={id:"user-sport-preferences"},er={key:0,class:"responsive-table"},tr={class:"mobile-display"},nr={key:0,class:"profile-buttons mobile-display"},rr={key:1,class:"profile-buttons"},ar={class:"text-left"},or={key:0},sr={class:"cell-heading"},ir=["value"],lr={class:"cell-heading"},cr={key:0,class:"disabled-message"},ur={key:1,class:"fa fa-refresh fa-spin fa-fw"},dr={class:"cell-heading"},mr={class:"cell-heading"},Sr=["checked"],Er={class:"cell-heading"},_r=["value"],Tr={key:1},pr={key:0,class:"action-buttons"},Ar={class:"cell-heading"},Or=["onClick"],Ur={key:1,class:"edition-buttons"},Rr=["disabled"],gr=["disabled","onClick"],Ir=["disabled"],Nr={key:0,class:"profile-buttons"},zr={key:1,class:"profile-buttons"};var wr=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,ie.QT)(),{isEdition:u,user:d}=(0,i.BK)(t),m=(0,a.f3)("sportColors"),S=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),E=(0,a.Fl)((()=>(0,le.xH)(S.value,r,"is_active",d.value.sports_list))),_=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),T=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),p=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function A(e){null!==e?(p.sport_id=e.id,p.color=e.color?e.color:m[e.label],p.is_active=e.is_active_for_user,p.stopped_speed_threshold=e.stopped_speed_threshold):I()}function O(e){return p.sport_id===e}function U(e){p.color=e.target.value}function R(e){p.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){p.is_active=e.target.checked}function I(){p.sport_id=0,p.color=null,p.is_active=!0,p.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function N(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,p)}function z(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>_.value),(e=>{e||T.value||I()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Qn,[(0,i.SU)(S).length>0?((0,a.wg)(),(0,a.iD)("div",er,[(0,a._)("div",tr,[(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",nr,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",rr,[(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,a._)("th",ar,(0,o.zw)(e.$t("workouts.SPORT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("th",or,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,a.kq)("",!0)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(E),(s=>((0,a.wg)(),(0,a.iD)("tr",{key:s.id},[(0,a._)("td",null,[(0,a._)("span",sr,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),O(s.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:p.color,onInput:U},null,40,ir)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:s.translatedLabel,"sport-label":s.label,color:s.color?s.color:(0,i.SU)(m)[s.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!s.is_active}])},[(0,a._)("span",lr,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(s.translatedLabel)+" ",1),s.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",cr," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(_)&&O(s.id)?((0,a.wg)(),(0,a.iD)("i",ur)):(0,a.kq)("",!0),(0,i.SU)(T)&&p.sport_id===s.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,i.SU)(T)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",dr,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,i.SU)(d).sports_list.includes(s.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",mr,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),O(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:s.is_active_for_user,onChange:g},null,40,Sr)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(s.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",Er,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),O(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:p.stopped_speed_threshold,onInput:R},null,40,_r)):((0,a.wg)(),(0,a.iD)("span",Tr,(0,o.zw)(s.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("td",pr,[(0,a._)("span",Ar,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===p.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>A(s)},(0,o.zw)(e.$t("buttons.EDIT")),9,Or)):(0,a.kq)("",!0),O(s.id)?((0,a.wg)(),(0,a.iD)("div",Ur,[(0,a._)("button",{disabled:(0,i.SU)(_),onClick:N},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Rr),(0,a._)("button",{disabled:(0,i.SU)(_),onClick:e=>z(e,s.id)},(0,o.zw)(e.$t("buttons.RESET")),9,gr),(0,a._)("button",{disabled:(0,i.SU)(_),onClick:t[3]||(t[3]=e=>A(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,Ir)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Nr,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",zr,[(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))])):(0,a.kq)("",!0)])}}});const hr=(0,P.Z)(wr,[["__scopeId","data-v-4775544a"]]);var fr=hr,vr=n(12);const Dr=e=>((0,a.dD)("data-v-74257266"),e=e(),(0,a.Cn)(),e),Cr={class:"about-text"},kr=["innerHTML"],Pr=Dr((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),Lr={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},Mr=Dr((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),br={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},yr=Dr((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),Gr=Dr((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),Wr={key:0},Fr=Dr((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),Yr=["href"];var Br=(0,a.aZ)({__name:"About",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG]));return(e,t)=>{const r=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",Cr,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,kr),(0,a._)("p",null,[Pr,(0,a._)("a",Lr,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[Mr,(0,a._)("a",br,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[yr,(0,a.Wm)(r,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[Gr])),_:1})]),(0,i.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",Wr,[Fr,(0,a._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,Yr)])):(0,a.kq)("",!0)])])}}});const Kr=(0,P.Z)(Br,[["__scopeId","data-v-74257266"]]);var xr=Kr;const Zr={id:"bike"},$r=["src"];function Hr(e,t){return(0,a.wg)(),(0,a.iD)("div",Zr,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,$r)])}const qr={},Vr=(0,P.Z)(qr,[["render",Hr],["__scopeId","data-v-795f7f5f"]]);var jr=Vr;const Xr={id:"about",class:"view"},Jr={class:"container"},Qr={class:"container-sub"},ea={class:"container-sub about-details"};var ta=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Xr,[(0,a._)("div",Jr,[(0,a._)("div",Qr,[(0,a.Wm)(jr)]),(0,a._)("div",ea,[(0,a.Wm)(xr)])])]))}});const na=(0,P.Z)(ta,[["__scopeId","data-v-bffb50d0"]]);var ra=na,aa=n(1818),oa=n(2056);const sa=e=>((0,a.dD)("data-v-c9d1f10c"),e=e(),(0,a.Cn)(),e),ia={class:"timeline-workout"},la={class:"box"},ca={class:"workout-user-date"},ua={class:"workout-user"},da=["title"],ma={key:0},Sa={key:1,class:"no-map"},Ea={class:"img"},_a={class:"data"},Ta=sa((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),pa={key:0},Aa={class:"data"},Oa=sa((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Ua={key:0,class:"data elevation"},Ra=["alt"],ga={class:"data-values"},Ia=(0,a.Uk)("/ "),Na={key:1,class:"data altitude"},za=sa((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),wa={class:"data-values"},ha=(0,a.Uk)(" +"),fa=(0,a.Uk)("/- ");var va=(0,a.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:r,workout:s,sport:u,useImperialUnits:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));return(e,t)=>{const n=(0,a.up)("router-link"),l=(0,a.up)("SportImage"),c=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",ia,[(0,a._)("div",la,[(0,a._)("div",ca,[(0,a._)("div",ua,[(0,a.Wm)(Me.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,i.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,i.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,i.SU)(s).workout_date&&(0,i.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,i.SU)(ke.Z)((0,i.SU)(Ke.eB)((0,i.SU)(s).workout_date,(0,i.SU)(r).timezone),"dd/MM/yyyy HH:mm")},(0,o.zw)((0,i.SU)(aa.Z)(new Date((0,i.SU)(s).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,da)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,i.SU)(s)}]),onClick:t[0]||(t[0]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("div",ma,[(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.j4)(oa.Z,{key:0,workout:(0,i.SU)(s)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",Sa,(0,o.zw)(e.$t("workouts.NO_MAP")),1))])):(0,a.kq)("",!0)],2),(0,a._)("div",{class:(0,o.C_)(["workout-data",{"without-gpx":(0,i.SU)(s)&&!(0,i.SU)(s).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,a._)("div",Ea,[(0,i.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,i.SU)(u).label,color:(0,i.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",_a,[Ta,(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("span",pa,(0,o.zw)((0,i.SU)(s).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Aa,[Oa,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).distance,digits:3,unitFrom:"km",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Ra),(0,a._)("div",ga,[(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),Ia,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).max_alt,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",Na,[za,(0,a._)("div",wa,[ha,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),fa,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const Da=(0,P.Z)(va,[["__scopeId","data-v-c9d1f10c"]]);var Ca=Da,ka=n(5630),Pa=n(3768);const La={id:"timeline"},Ma={class:"section-title"},ba={key:0},ya={key:1},Ga={key:1,class:"more-workouts"};var Wa=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:s}=(0,i.BK)(t),u=(0,i.iH)(1),d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,a.wF)((()=>_()));const S=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),E=(0,a.Fl)((()=>S.value.length>0&&null!==S.value[S.value.length-1].previous_workout));function _(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pa.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pa.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",La,[(0,a._)("div",Ma,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(s).nb_workouts>0&&0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.iD)("div",ba,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,i.SU)(m)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Ca,{user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",ya,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(e=>((0,a.wg)(),(0,a.j4)(Ca,{workout:e,sport:(0,i.SU)(S).length>0?(0,i.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.j4)(ka.Z,{key:0})):(0,a.kq)("",!0),(0,i.SU)(E)?((0,a.wg)(),(0,a.iD)("div",Ga,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const Fa=(0,P.Z)(Wa,[["__scopeId","data-v-35567bf2"]]);var Ya=Fa,Ba=n(1640),Ka=n(4559),xa=n(7349),Za=n(1743),$a=n(9160),Ha=n(1085);const qa=["title"];var Va=(0,a.aZ)({__name:"CalendarWorkout",props:{workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{workout:n,sportLabel:r,sportColor:o}=(0,i.BK)(t);return(e,t)=>{const s=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(n).id}}))},[(0,a.Wm)(s,{"sport-label":(0,i.SU)(r),title:(0,i.SU)(n).title,color:(0,i.SU)(o)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,i.SU)(n).records.length>0?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,i.SU)(n).records.map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,qa)):(0,a.kq)("",!0)])])}}});const ja=Va;var Xa=ja;const Ja={class:"donut-chart"},Qa={height:"34",width:"34",viewBox:"0 0 34 34"},eo=["stroke","stroke-dashoffset","transform"];var to=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,i.BK)(t);let o=-90;const s=16,l=16,c=14,u=2*Math.PI*c;function d(e,t){return t-e*t}function m(e,t){const n=`rotate(${o}, ${s}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ja,[((0,a.wg)(),(0,a.iD)("svg",Qa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,i.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:s,cy:l,r:c,fill:"transparent",stroke:(0,i.SU)(n)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:m(t,e[1].percentage)},null,8,eo)])))),128))]))]))}});const no=to;var ro=no;const ao={class:"calendar-workouts-chart"},oo={class:"workouts-count"},so={key:0,class:"workouts-pane"},io={class:"more-workouts"};var lo=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:s,workouts:l}=(0,i.BK)(t),c=(0,i.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const d=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",ao,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",oo,(0,o.zw)((0,i.SU)(l).length),1),(0,a.Wm)(ro,{datasets:(0,i.SU)(r),colors:(0,i.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",so,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",io,[(0,a._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(Xa,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(s)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(s))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const co=(0,P.Z)(lo,[["__scopeId","data-v-52d4310a"]]);var uo=co;const mo={class:"calendar-workouts"},So={class:"desktop-display"},Eo={key:0,class:"workouts-display"},_o={key:1,class:"donut-display"},To={class:"mobile-display"},po={key:0,class:"donut-display"};var Ao=(0,a.aZ)({__name:"CalendarWorkouts",props:{workouts:null,sports:null},setup(e){const t=e,{workouts:n,sports:r}=(0,i.BK)(t),o=(0,a.Fl)((()=>(0,Pa.BN)(t.workouts))),s=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),l=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",mo,[(0,a._)("div",So,[(0,i.SU)(n).length<=l?((0,a.wg)(),(0,a.iD)("div",Eo,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(n).slice(0,l),((e,t)=>((0,a.wg)(),(0,a.j4)(Xa,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(r)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(r))},null,8,["workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",_o,[(0,a.Wm)(uo,{workouts:(0,i.SU)(n),sports:(0,i.SU)(r),datasets:(0,i.SU)(o),colors:(0,i.SU)(s)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",To,[(0,i.SU)(n).length>0?((0,a.wg)(),(0,a.iD)("div",po,[(0,a.Wm)(uo,{workouts:(0,i.SU)(n),sports:(0,i.SU)(r),datasets:(0,i.SU)(o),colors:(0,i.SU)(s)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Oo=Ao;var Uo=Oo;const Ro={class:"calendar-cells"},go={class:"calendar-cell-day"};var Io=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,endDate:r,sports:s,startDate:l,timezone:c,weekStartingMonday:u,workouts:d}=(0,i.BK)(t),m=(0,i.iH)([]);function S(){m.value=[];let e=l.value;while(e<=r.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,xa.Z)(e,1);m.value.push(t)}}function E(e){return u.value?[5,6].includes(e):[0,6].includes(e)}function _(e,t){return t?t.filter((t=>(0,Za.Z)((0,Ke.eB)(t.workout_date,c.value),e))).reverse():[]}return(0,a.bv)((()=>S())),(0,a.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ro,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(m.value,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"calendar-row",key:t},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(["calendar-cell",{"disabled-cell":!(0,i.SU)($a.Z)(e,(0,i.SU)(n)),"week-end":E(t),today:(0,i.SU)(Ha.Z)(e)}]),key:t},[(0,a.Wm)(Uo,{workouts:_(e,(0,i.SU)(d)),sports:(0,i.SU)(s)},null,8,["workouts","sports"]),(0,a._)("div",go,(0,o.zw)((0,i.SU)(ke.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const No=Io;var zo=No;const wo={class:"calendar-days"};var ho=(0,a.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let r=0;r<7;r++)n.push((0,xa.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",wo,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(n,((t,n)=>(0,a._)("div",{class:"calendar-day",key:n},(0,o.zw)((0,i.SU)(ke.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const fo=ho;var vo=fo;const Do={class:"calendar-header"},Co=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),ko=[Co],Po={class:"calendar-month"},Lo=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Mo=[Lo];var bo=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:s}=(0,i.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",Do,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},ko),(0,a._)("div",Po,[(0,a._)("span",null,(0,o.zw)((0,i.SU)(ke.Z)((0,i.SU)(r),"MMM yyyy",{locale:(0,i.SU)(s)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},Mo)]))}});const yo=bo;var Go=yo;const Wo={id:"user-calendar"},Fo={class:"calendar-card box"};var Yo=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,i.BK)(t),s="yyyy-MM-dd",u=(0,i.iH)(new Date),d=(0,i.iH)((0,Ke.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(){d.value=(0,Ke.yx)(u.value,t.user.weekm);const e={from:(0,ke.Z)(d.value.start,s),to:(0,ke.Z)(d.value.end,s),page:1,per_page:100,...Pa.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function _(){u.value=(0,Ba.Z)(u.value,1),E()}function T(){u.value=(0,Ka.Z)(u.value,1),E()}return(0,a.wF)((()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Wo,[(0,a._)("div",Fo,[(0,a.Wm)(Go,{day:u.value,"locale-options":(0,i.SU)(S),onDisplayNextMonth:_,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(vo,{"start-date":d.value.start,"locale-options":(0,i.SU)(S)},null,8,["start-date","locale-options"]),(0,a.Wm)(zo,{currentDay:u.value,"end-date":d.value.end,sports:(0,i.SU)(r),"start-date":d.value.start,timezone:(0,i.SU)(o).timezone,workouts:(0,i.SU)(m),weekStartingMonday:(0,i.SU)(o).weekm},null,8,["currentDay","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const Bo=Yo;var Ko=Bo,xo=n(3703),Zo=n(4135),$o=n(9996);const Ho={class:"user-month-stats"};var qo=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,i.BK)(t),s=new Date,l={duration:"week",start:(0,xo.Z)(s),end:(0,Zo.Z)(s)},c=t.sports.map((e=>e.id));return(e,t)=>{const s=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ho,[(0,a.Wm)(s,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)($o.Z,{sports:(0,i.SU)(n),user:(0,i.SU)(r),"chart-params":l,"displayed-sport-ids":(0,i.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Vo=(0,P.Z)(qo,[["__scopeId","data-v-1bcddc12"]]);var jo=Vo,Xo=(n(1703),n(3649));const Jo=(e,t,n)=>{const r="km",a=n?Xo.Dl[r].defaultTarget:r;let o;switch(e.record_type){case"AS":case"MS":o=`${(0,Xo.sC)(+e.value,r,a,2)} ${a}/h`;break;case"FD":o=`${(0,Xo.sC)(+e.value,r,a,3)} ${a}`;break;case"LD":o=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ke.Jo)((0,Ke.eB)(e.workout_date,t)).workout_date,workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:o}},Qo=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:ne.reduce(((e,a)=>{const o=t.find((e=>e.id===a.sport_id));return o&&o.label&&(void 0===e[o.translatedLabel]&&(e[o.translatedLabel]={label:o.label,color:o.color,records:[]}),e[o.translatedLabel].records.push(Jo(a,n,r))),e}),{}),ts={class:"records-card"},ns={class:"record-type"},rs={class:"record-value"},as={class:"record-date"};var os=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,i.BK)(t),{t:s}=(0,ie.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:s(`workouts.RECORD_${e.record_type}`)})})),t.sort(Qo)}return(e,t)=>{const s=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ts,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(s,{"sport-label":(0,i.SU)(n).label,color:(0,i.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,i.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",ns,(0,o.zw)(e.label),1),(0,a._)("span",rs,(0,o.zw)(e.value),1),(0,a._)("span",as,[(0,a.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const ss=(0,P.Z)(os,[["__scopeId","data-v-b5480ab0"]]);var is=ss;const ls=e=>((0,a.dD)("data-v-55c5cd2a"),e=e(),(0,a.Cn)(),e),cs={class:"user-records-section"},us={class:"section-title"},ds=ls((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),ms={class:"user-records"},Ss={key:0,class:"no-records"};var Es=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),r=(0,a.Fl)((()=>es(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",cs,[(0,a._)("div",us,[ds,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",ms,[0===Object.keys((0,i.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Ss,(0,o.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.keys((0,i.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(is,{sportTranslatedLabel:t,records:(0,i.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const _s=(0,P.Z)(Es,[["__scopeId","data-v-55c5cd2a"]]);var Ts=_s;const ps={id:"user-stats"};var As=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),{user:r}=(0,i.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),s=(0,a.Fl)((()=>d(o))),l="km",c=r.value.imperial_units?Xo.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,Xo.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2))));function d(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ps,[(0,a.Wm)(x,{icon:"calendar",value:(0,i.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,a.Wm)(x,{icon:"clock-o",value:(0,i.SU)(s).days,text:(0,i.SU)(s).duration},null,8,["value","text"]),(0,a.Wm)(x,{icon:"tags",value:(0,i.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,i.SU)(r).nb_sports)},null,8,["value","text"])]))}});const Os=As;var Us=Os;const Rs=e=>((0,a.dD)("data-v-20e19721"),e=e(),(0,a.Cn)(),e),gs={key:0,id:"dashboard",class:"view"},Is={class:"container mobile-menu"},Ns={class:"box"},zs=Rs((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),ws=[zs],hs=Rs((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),fs=[hs],vs=Rs((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Ds=[vs],Cs=Rs((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),ks=[Cs],Ps={class:"container"},Ls={class:"container dashboard-container"},Ms={class:"left-container dashboard-sub-container"},bs={class:"right-container dashboard-sub-container"},ys=Rs((()=>(0,a._)("div",{id:"bottom"},null,-1))),Gs={key:1,class:"app-loading"};var Ws=(0,a.aZ)({__name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),r=(0,a.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),s=(0,i.iH)("calendar");function u(e){s.value=e}return(e,t)=>{const l=(0,a.up)("Loader");return(0,i.SU)(n).username&&(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",gs,[(0,a._)("div",Is,[(0,a._)("div",Ns,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===s.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},ws,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===s.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},fs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===s.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Ds,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===s.value}]),onClick:t[3]||(t[3]=e=>u("records"))},ks,2)])]),(0,a._)("div",Ps,[(0,a.Wm)(Us,{user:(0,i.SU)(n)},null,8,["user"])]),(0,a._)("div",Ls,[(0,a._)("div",Ms,[(0,a.Wm)(jo,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(Ts,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===s.value)})},null,8,["sports","user","class"])]),(0,a._)("div",bs,[(0,a.Wm)(Ko,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(Ya,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===s.value)})},null,8,["sports","user","class"])])]),ys])):((0,a.wg)(),(0,a.iD)("div",Gs,[(0,a.Wm)(l)]))}}});const Fs=(0,P.Z)(Ws,[["__scopeId","data-v-20e19721"]]);var Ys=Fs,Bs=n(8273);const Ks={class:"not-found view"};var xs=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ks,[(0,a.Wm)(Bs.Z)]))}});const Zs=xs;var $s=Zs,Hs=n(6735);const qs={id:"loginOrRegister",class:"view"},Vs={class:"container"},js={class:"container-sub"},Xs={class:"container-sub"};var Js=(0,a.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",qs,[(0,a._)("div",Vs,[(0,a._)("div",js,[(0,a.Wm)(jr)]),(0,a._)("div",Xs,[(0,a.Wm)(Hs.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Qs=(0,P.Z)(Js,[["__scopeId","data-v-6a38125b"]]);var ei=Qs;const ti=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},ni=[{path:"/",name:"Dashboard",component:Ys},{path:"/login",name:"Login",component:ei,props:{action:"login"}},{path:"/register",name:"Register",component:ei,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8160))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,6266)),children:[{path:"",name:"UserProfile",component:zt,props:e=>({tab:ti(e.path)}),children:[{path:"",name:"UserInfos",component:wt.Z},{path:"preferences",name:"UserPreferences",component:kt},{path:"sports",name:"UserSportPreferences",component:fr,props:{isEdition:!1}}]},{path:"edit",name:"UserProfileEdition",component:bt,props:e=>({tab:ti(e.path)}),children:[{path:"",name:"UserInfosEdition",component:_n},{path:"account",name:"UserAccountEdition",component:jt},{path:"picture",name:"UserPictureEdition",component:hn},{path:"preferences",name:"UserPreferencesEdition",component:Jn},{path:"sports",name:"UserSportPreferencesEdition",component:fr,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,9161))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,7017))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,2525)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,2525)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:se},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:Ce},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:St}]},{path:"/about",name:"About",component:ra},{path:"/:pathMatch(.*)*",name:"not-found",component:$s}],ri=(0,r.p7)({history:(0,r.PO)("/"),routes:ni}),ai=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],oi=["/email-update","/about"];ri.beforeEach(((e,t,n)=>{vr.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(oi.includes(e.path))return n();if(vr.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&ai.includes(e.path))return n("/");if(vr.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||ai.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var si=ri},8602:function(e,t,n){"use strict";var r,a,o,s,i,l,c,u,d,m,S,E,_,T,p;n.d(t,{YN:function(){return g},SY:function(){return O},O8:function(){return U},gu:function(){return R},RT:function(){return I},aX:function(){return N}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(a||(a={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(s||(s={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(i||(i={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(l||(l={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(c||(c={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(d||(d={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(m||(m={})),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"}(E||(E={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(_||(_={})),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"}(T||(T={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(p||(p={}));var A=n(52);const O={ACTIONS:s,GETTERS:i,MUTATIONS:l},U={ACTIONS:c,GETTERS:u,MUTATIONS:d},R={ACTIONS:m,GETTERS:S,MUTATIONS:E},g={ACTIONS:r,GETTERS:a,MUTATIONS:o},I={ACTIONS:_,GETTERS:T,MUTATIONS:p},N={ACTIONS:A.tW,GETTERS:A.JP,MUTATIONS:A.CW}},12:function(e,t,n){"use strict";n.d(t,{Z:function(){return ae}});var r=n(3907),a=(n(1703),n(5167)),o=n(9669),s=n.n(o),i=n(2024);const l=s().create({baseURL:(0,i.k)()});var c=l,u=n(4809),d=n(8602);const m=(e,t)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?u.Z.push("/admin/users"):e.dispatch(d.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},S={[d.RT.ACTIONS.EMPTY_USER](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USER,{})},[d.RT.ACTIONS.EMPTY_USERS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[d.RT.ACTIONS.GET_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(d.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.GET_USERS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.UPDATE_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),a.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){m(e,{username:t.username,fromAdmin:!0})}},E=e=>{localStorage.removeItem("authToken"),e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},_={[d.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[d.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE))},[d.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(d.O8.ACTIONS.GET_SPORTS)):((0,i.S)(e,null),E(e))})).catch((t=>{(0,i.S)(e,t),E(e)}))},[d.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.LOGOUT](e){E(e)},[d.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),a.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.DELETE_ACCOUNT](e,t){m(e,t)},[d.YN.ACTIONS.DELETE_PICTURE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?u.Z.push("/account-confirmation/email-sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/password-updated"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},T={[d.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[d.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[d.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[d.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[d.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[d.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[d.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[d.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[d.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[d.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:_,getters:T,mutations:p};var U=O,R=n(2540);const{locale:g}=R.Z.global,I={[d.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[d.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(d.SY.MUTATIONS.UPDATE_LANG,t),g.value=t}},N={[d.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[d.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[d.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[d.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[d.SY.GETTERS.LANGUAGE]:e=>e.language,[d.SY.GETTERS.LOCALE]:e=>e.locale};var z=n(6287);const w={[d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[d.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[d.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=z.v1[t]}};var h=n(5826);const f={root:!0,language:"en",locale:h.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},v={[d.O8.ACTIONS.GET_SPORTS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(d.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},D={[d.O8.GETTERS.SPORTS]:e=>e.sports},C={[d.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},k={sports:[]},P={state:k,actions:v,getters:D,mutations:C};var L=P;const M={[d.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(d.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},b={[d.gu.GETTERS.USER_STATS]:e=>e.statistics},y={[d.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[d.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},G={statistics:{}},W={state:G,actions:M,getters:b,mutations:y};var F=W;const Y={[d.RT.GETTERS.USER]:e=>e.user,[d.RT.GETTERS.USERS]:e=>e.users,[d.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[d.RT.GETTERS.USERS_LOADING]:e=>e.loading,[d.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},B={[d.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[d.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[d.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[d.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[d.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[d.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},K={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},x={state:K,actions:S,getters:Y,mutations:B};var Z=x,$=n(52);const H=(e,t,n)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.aX.MUTATIONS[n],t.data.data.workouts),n===$.CW.SET_USER_WORKOUTS&&e.commit(d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},q={[d.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),H(e,t,$.CW.SET_CALENDAR_WORKOUTS)},[d.aX.ACTIONS.GET_USER_WORKOUTS](e,t){H(e,t,$.CW.SET_USER_WORKOUTS)},[d.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){H(e,t,$.CW.SET_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){H(e,t,$.CW.ADD_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";a.Z.get(`workouts/${t.workoutId}`).then((r=>{const o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(d.aX.MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(a.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),a.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,null)})).catch((t=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(d.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=new FormData;n.append("file",t.file),n.append("data",`{"sport_id": ${t.sport_id}, "notes": "${t.notes}"}`),a.Z.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},V={[d.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[d.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[d.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[d.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[d.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},j={[d.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[d.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[d.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[d.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[d.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[d.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[d.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},X={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},J={state:X,actions:q,getters:V,mutations:j};var Q=J;const ee={authUserModule:U,sportsModule:L,statsModule:F,usersModule:Z,workoutsModule:Q},te={state:f,actions:I,getters:N,mutations:w,modules:ee};var ne=te;const re=(0,r.MT)(ne);var ae=re},52:function(e,t,n){"use strict";var r,a,o;n.d(t,{CW:function(){return o},JP:function(){return a},tW:function(){return r}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(a||(a={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(3907);function a(){return(0,r.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Ne:function(){return c},fS:function(){return r},lM:function(){return d},pm:function(){return l}});n(6699);const r=["asc","desc"],a=1,o=10,s=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,i=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",d={};return d.page=s(e.page,a),d.per_page=s(e.per_page,o),d.order=i(e.order,r,u),d.order_by=i(e.order_by,t,n),"string"===typeof e.q?d.q=e.q:delete d.q,d},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),d=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,r.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,a.Z)(t);case"month":return(0,o.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},E=(e,t)=>{switch(e){case"week":return(0,s.Z)(t,7);case"year":return(0,i.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},_=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),T=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),s=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:s}),end:(0,u.Z)(a,{weekStartsOn:s})}},p=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t),workout_time:(0,d.Z)(e,n)})},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},j:function(){return o}});const r=["bytes","KB","MB","GB","TB"],a=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const a=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?`${a}${o}`:{size:a,suffix:o}},o=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return o},k:function(){return a}});n(6699);var r=n(8602);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{const a=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(r.SY.MUTATIONS.SET_ERROR_MESSAGES,a.includes("\n")?a.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${a}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return u},v1:function(){return i},zK:function(){return l}});var r=n(879),a=n(5826),o=n(5830),s=n(2540);const i={de:r.Z,en:a.Z,fr:o.Z},l={de:"Deutsch",en:"English",fr:"Français"},{availableLocales:c}=s.Z.global,u=c.map((e=>({label:l[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return i},Yx:function(){return a},Zo:function(){return r},xH:function(){return s}});n(6699);const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},a=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:r[e.label])),t},o=(e,t)=>{const n=e.translatedLabel.toLowerCase(),r=t.translatedLabel.toLowerCase();return n>r?1:ne.filter((e=>"all"===n||(r.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(o),i=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return h},aZ:function(){return w},v1:function(){return z}});n(6699);var r=n(4850),a=n(8148),o=n(9319),s=n(584),i=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),S=n(7982),E=n(3500),_=n(1640),T=n(6558),p=n(631),A=n(3649);const O={week:{api:"yyyy-MM-dd",chart:"dd/MM/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},U=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],R=(e,t)=>{const n=[];for(let r=(0,T.Nh)(e.duration,e.start,t);r<=e.end;r=(0,T.xA)(e.duration,r))n.push(r);return n},g=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},I=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:p.Zo[e.label];t.average_speed.push(g(e.label,n,!0)),t.nb_workouts.push(g(e.label,n)),t.total_distance.push(g(e.label,n)),t.total_duration.push(g(e.label,n)),t.total_ascent.push(g(e.label,n)),t.total_descent.push(g(e.label,n))})),t},N=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,A.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},z=(e,t,n,a,o,s)=>{const i=R(e,t),l=O[e.duration],c=n.filter((e=>a.includes(e.id))),u=[],d=I(c),m={};return c.map((e=>m[e.label]=e.id)),i.map((e=>{const t=(0,r.Z)(e,l.api),n=(0,r.Z)(e,l.chart);u.push(n),U.map((e=>{d[e].map((n=>{n.data.push(o!=={}&&t in o&&m[n.label]in o[t]?N(e,o[t][m[n.label]][e],s):"average_speed"===e?null:0)}))}))})),{labels:u,datasets:d}},w=(e,t,n)=>{const r=n?1:0,m="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,s.Z)((0,i.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,i.Z)(e,11)),S="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:S,start:m}},h=(e,t,n)=>{const{duration:r,start:T,end:p}=e,A=n?1:0;return{duration:r,end:"year"===r?(0,c.Z)(t?(0,o.Z)(p,1):(0,m.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,S.Z)(p,1):(0,E.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(p,1):(0,_.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,m.Z)(T,1)):"week"===r?(0,s.Z)(t?(0,S.Z)(T,1):(0,E.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(T,1):(0,_.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},f3:function(){return s},sC:function(){return o}});const r={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},a={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},o=(e,t,n,o=3)=>{const s=r[t],i=r[n],l=e*s.multiplier*a[s.system][i.system]/i.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},s=(e,t,n)=>{const a=n?r[e].defaultTarget:e;return n?o(t,e,a,2):t}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return o},EX:function(){return a},eR:function(){return s}});var r=n(3649);const a=(e,t,n)=>{const a={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},o=[],s=[],i=[];return e.map((e=>{o.push(e.distance),s.push(e.duration),a.speed.data.push((0,r.f3)("km",e.speed,n)),a.elevation.data.push((0,r.f3)("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:s,datasets:a,coordinates:i}},o=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},s={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={class:"card"},o={class:"card-title"},s={class:"card-content"};function i(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",s,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",i]]);var d=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262);const s={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var S=(0,r.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:S,query:E,sort:_,message:T}=(0,o.BK)(n),p=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,r._)("select",{name:"order_by",id:"order_by",value:(0,o.SU)(E).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(S),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`${(0,o.SU)(T)}.${t.toUpperCase()}`)),9,l)))),128))],40,i)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,r._)("select",{name:"order",id:"order",value:(0,o.SU)(E).order,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(_),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,r._)("select",{name:"per_page",id:"per_page",value:(0,o.SU)(E).per_page,onChange:A},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(p,(e=>(0,r._)("option",{value:e,key:e},(0,a.zw)(e),9,m))),64))],40,d)])]))}}),E=n(3744);const _=(0,E.Z)(S,[["__scopeId","data-v-72463173"]]);var T=_},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),s=[o];function i(e,t,n,o,i,l){return(0,r.wg)(),(0,r.iD)("svg",a,s)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",i]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=n(3577);const s={id:"error"},i={class:"error-content"};var l=(0,r.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",i,[(0,r._)("h1",null,(0,o.zw)((0,a.SU)(l)),1),(0,r._)("p",null,(0,o.zw)((0,a.SU)(c)),1),(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,a.SU)(u))),class:"upper"},(0,o.zw)((0,a.SU)(n)),1)):(0,r.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var d=u,m=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.j4)(d,{title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"]))}});const S=m;var E=S},6514:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262),s=n(2766);const i=e=>((0,r.dD)("data-v-f38ea1b8"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=i((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=i((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var S=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:S}=(0,o.BK)(t);function E(e,t){const n=Object.assign({},S.value);return n.page=t?e+t:e,n}return(e,t)=>{const S=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("nav",l,[(0,r._)("ul",c,[(0,r._)("li",{class:(0,a.C_)(["page-prev",{disabled:!(0,o.SU)(n).has_prev}])},[(0,r.Wm)(S,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,-1)},disabled:!(0,o.SU)(n).has_prev},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(s.lM)((0,o.SU)(n).pages,(0,o.SU)(n).page),(e=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,a.C_)(["page",{active:e===(0,o.SU)(n).page}])},["..."===e?((0,r.wg)(),(0,r.iD)("span",d," ... ")):((0,r.wg)(),(0,r.j4)(S,{key:1,class:"page-link",to:{path:(0,o.SU)(i),query:E(+e)}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,r._)("li",{class:(0,a.C_)(["page-next",{disabled:!(0,o.SU)(n).has_next}])},[(0,r.Wm)(S,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,1)},disabled:!(0,o.SU)(n).has_next},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),m]))])),_:3},8,["to","disabled"])],2)])])}}}),E=n(3744);const _=(0,E.Z)(S,[["__scopeId","data-v-f38ea1b8"]]);var T=_},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(2262),o=n(9963),s=n(3577),i=n(3257),l=n(8602),c=n(9917);const u=async e=>{const t=await n.e(881).then(n.bind(n,410)),r=await n.e(881).then(n.bind(n,8288)),a=await n.e(881).then(n.bind(n,6947)),o={en:r,fr:a},s=o[e],l={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...s.default.dictionary}};i.Mu.setOptions(l)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},S=["value"],E={key:0,class:"password-strength-details"},_={class:"password-strength-value"},T={key:0,class:"info-box"},p={class:"password-feedback"};var A=(0,r.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,a.BK)(t),o=(0,c.o)(),A=(0,r.Fl)((()=>o.getters[l.SY.GETTERS.LANGUAGE])),O=(0,r.Fl)((()=>o.getters[l.YN.GETTERS.IS_SUCCESS])),U=(0,a.iH)(0),R=(0,a.iH)(""),g=(0,a.iH)([]),I=(0,a.iH)("0% 100%");function N(e){const t=(0,i.tu)(e);U.value=t.score,R.value=d(U.value),g.value=t.feedback.suggestions,I.value=100*U.value/4+"% 100%"}return(0,r.wF)((async()=>await u(A.value))),(0,r.YP)((()=>A.value),(async e=>{await u(e)})),(0,r.YP)((()=>n.value),(async e=>{O.value?R.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,s.C_)(["password-slider",`strength-${U.value}`]),style:(0,s.j5)({backgroundSize:I.value}),type:"range",value:U.value,min:"0",max:"4",step:"1"},null,14,S),R.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("span",_,(0,s.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.${R.value}`)),1),g.value.length>0?((0,r.wg)(),(0,r.iD)("div",T,[(0,r._)("ul",p,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(g.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),O=n(3744);const U=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var R=U;const g=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),I={class:"password-input"},N=["id","disabled","placeholder","required","type"],z={key:0,class:"form-info"},w=g((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var h=(0,r.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:i,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,a.BK)(n),S=(0,a.iH)(!1),E=(0,a.iH)("");function _(){S.value=!S.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(E.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",I,[(0,r.wy)((0,r._)("input",{id:(0,a.SU)(c),disabled:(0,a.SU)(l),placeholder:(0,a.SU)(d),required:(0,a.SU)(m),type:S.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>E.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,N),[[o.YZ,E.value]]),(0,r._)("div",{class:"show-password",onClick:_},[(0,r.Uk)((0,s.zw)(e.$t(`user.${S.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,s.C_)(["fa","fa-eye"+(S.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(i)?((0,r.wg)(),(0,r.iD)("div",z,[w,(0,r.Uk)(" "+(0,s.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(i)?((0,r.wg)(),(0,r.j4)(R,{key:1,password:E.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const f=(0,O.Z)(h,[["__scopeId","data-v-5a126514"]]);var v=f},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),s=n(2024);const i=(0,r._)("div",{class:"map-attribution"},[(0,r._)("span",{class:"map-attribution-text"},"©"),(0,r._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,r.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,o.BK)(t),l=`${(0,s.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,a.C_)(["static-map",{"display-hover":(0,o.SU)(n)}])},[(0,o.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,src:l,alt:""})):((0,r.wg)(),(0,r.iD)("div",{key:1,class:"bg-map-image",style:(0,a.j5)({backgroundImage:`url(${l})`})},null,4)),i],2))}});const c=l;var u=c},9996:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(6252),a=n(3577);const o={class:"start-chart"},s={key:0},i={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},S=["checked"],E={key:1},_=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,U){const R=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",s,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("div",l,[(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DISTANCE")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DURATION")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,d),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",m,[(0,r._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,S),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",E,[(0,r._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,_),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.ASCENT")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",T,[(0,r._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,p),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DESCENT")),1)])):(0,r.kq)("",!0)]),e.labels.length>0?((0,r.wg)(),(0,r.j4)(R,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(4850),U=n(2262);const R={class:"chart"};function g(e,t,n,a,o,s){const i=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(i,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var I=n(6518),N=n(3324);const z=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const a=String(Math.floor(e/60)).padStart(2,"0"),o=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===r?"":`${r}h `}${a}m ${o}s`:`${"00"===r?"":`${r}:`}${a}:${o}`};var w=n(3649);const h=(e,t,n,r=!0)=>{const a="km",o=n?w.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return z(t,r);case"total_distance":return`${t.toFixed(2)} ${o}`;case"total_ascent":case"total_descent":return`${(t/1e3).toFixed(2)} ${o}`;default:return t.toString()}};var f=(0,r.aZ)({name:"Chart",components:{BarChart:I.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,N.QT)();function n(e){return isNaN(e)?0:+e}function a(e,t){return n(e)+n(t)}const o=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(0,r.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return h(e.displayedData,+t,e.useImperialUnits,!1)}},afterFit:function(t){t.width=e.fullStats?75:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return h(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>a(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?h(e.displayedData,t,e.useImperialUnits,!1):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=h(e.displayedData,n.parsed.y,e.useImperialUnits)),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+h(e.displayedData,r,e.useImperialUnits)}}}}}))),{barChartProps:i}=(0,I.xZ)({chartData:o,options:s});return{barChartProps:i}}}),v=n(3744);const D=(0,v.Z)(f,[["render",g]]);var C=D,k=n(8602),P=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:C},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)(),n=(0,U.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[k.gu.GETTERS.USER_STATS])),o=(0,r.Fl)((()=>(0,L.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,a.value,e.user.imperial_units)));function s(n){t.dispatch(k.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function l(e,t){return{from:(0,O.Z)(e.start,"yyyy-MM-dd"),to:(0,O.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,r.wF)((()=>s(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{s(l(t,e.user))})),{datasets:(0,r.Fl)((()=>o.value.datasets[n.value])),labels:(0,r.Fl)((()=>o.value.labels)),emptyStats:(0,r.Fl)((()=>0===Object.keys(a.value).length)),displayedData:n,updateDisplayData:i}}});const b=(0,v.Z)(M,[["render",A],["__scopeId","data-v-58e4e79d"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(6252),a=n(2262),o=n(3577),s=n(6595),i=n(8602),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},S={class:"user-stat"},E={class:"stat-number"},_={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},U={class:"stat-label"};var R=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),R=(0,l.o)(),g=(0,r.Fl)((()=>R.getters[i.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const i=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(s.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",d,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",m,[(0,r._)("div",S,[(0,r._)("span",E,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",_,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(i,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(g).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(g).imperial_units?"miles":"km"),1)]),(0,r._)("div",A,[(0,r._)("span",O,(0,o.zw)((0,a.SU)(n).nb_sports),1),(0,r._)("span",U,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),g=n(3744);const I=(0,g.Z)(R,[["__scopeId","data-v-20291951"]]);var N=I},7408:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var r=n(6252),a=n(2262),o=n(3577),s=n(9963),i=n(4850),l=n(8602),c=n(9917);const u={id:"user-infos",class:"description-list"},d={key:1,class:"info-box success-message"},m={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},E={class:"form-items",for:"email"},_={class:"form-buttons"},T={class:"confirm",type:"submit"},p=["onClick"],A={key:5},O={class:"user-bio"},U={key:0,class:"profile-buttons"},R=["onClick"],g={key:1,class:"profile-buttons"};var I=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:I,fromAdmin:N}=(0,a.BK)(t),z=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),w=(0,r.Fl)((()=>t.user.created_at?(0,i.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),h=(0,r.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),"dd/MM/yyyy"):"")),f=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),v=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),D=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),C=(0,a.iH)(""),k=(0,a.iH)(!1),P=(0,a.iH)(!1),L=(0,a.iH)(""),M=(0,a.iH)("");function b(e){C.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function y(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function G(e){M.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function W(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function F(){K(),L.value=I.value.email_to_confirm?I.value.email_to_confirm:"",P.value=!0,M.value="email-update"}function Y(){L.value="",P.value=!1}function B(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:L.value})}function K(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),M.value=""}return(0,r.Ah)((()=>K())),(0,r.YP)((()=>f.value),(e=>{e&&(b(""),Y())})),(e,t)=>{const n=(0,r.up)("Modal"),i=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",u,[C.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===C.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(I).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===C.value?y((0,a.SU)(I).username):G((0,a.SU)(I).username)),onCancelAction:t[1]||(t[1]=e=>b(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(f)?((0,r.wg)(),(0,r.iD)("div",d,(0,o.zw)(e.$t(`admin.${"password-reset"===M.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(I).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(i,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(v)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(v)},null,8,["message"])):(0,r.kq)("",!0),P.value?((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("form",{class:(0,o.C_)({errors:k.value}),onSubmit:t[4]||(t[4]=(0,s.iM)((e=>B((0,a.SU)(I).username)),["prevent"]))},[(0,r._)("label",S,[(0,r.Uk)((0,o.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,r.wy)((0,r._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,a.SU)(I).email=e),disabled:""},null,512),[[s.nr,(0,a.SU)(I).email]])]),(0,r._)("label",E,[(0,r.Uk)((0,o.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>L.value=e)},null,512),[[s.nr,L.value]])]),(0,r._)("div",_,[(0,r._)("button",T,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,s.iM)(Y,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,p)])],34)])):((0,r.wg)(),(0,r.iD)("div",A,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(w)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(I).first_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(I).last_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(I).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",O,(0,o.zw)((0,a.SU)(I).bio),1)]),(0,a.SU)(N)?((0,r.wg)(),(0,r.iD)("div",U,[(0,a.SU)(z).username!==(0,a.SU)(I).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,s.iM)((e=>b("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(I).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,s.iM)((e=>W((0,a.SU)(I).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(z).username!==(0,a.SU)(I).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,s.iM)(F,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,R)):(0,r.kq)("",!0),(0,a.SU)(z).username!==(0,a.SU)(I).username&&(0,a.SU)(D).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,s.iM)((e=>b("reset")),["prevent"]))},(0,o.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",g,[(0,r._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,o.zw)(e.$t("user.PROFILE.EDIT")),1),(0,r._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]))])}}}),N=n(3744);const z=(0,N.Z)(I,[["__scopeId","data-v-794e58e7"]]);var w=z},6735:function(e,t,n){"use strict";n.d(t,{Z:function(){return D}});n(6699);var r=n(6252),a=n(3577),o=n(2262),s=n(9963),i=n(2119),l=n(8403),c=n(8602),u=n(9917);const d=e=>((0,r.dD)("data-v-bf09a420"),e=e(),(0,r.Cn)(),e),m={id:"user-form"},S={key:2,class:"info-box success-message"},E={class:"form-items"},_=["disabled","placeholder"],T={key:1,class:"form-info"},p=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},U=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R=["disabled"],g={key:3},I={key:0},N={key:4},z={class:"account"},w={key:5};var h=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:h}=(0,o.BK)(t),f=(0,o.qj)({username:"",email:"",password:""}),v=(0,r.Fl)((()=>G(t.action))),D=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),C=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),k=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_SUCCESS])),P=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!P.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!P.value.is_email_sending_enabled)),y=(0,o.iH)(!1);function G(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function W(){y.value=!0}function F(e){f.password=e}function Y(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:f.password,token:t.token}):d.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return d.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:f.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:f.email});default:f["language"]=L.value,d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:f,redirectUrl:n.query.from})}}function B(){f.username="",f.email="",f.password=""}return(0,r.YP)((()=>n.path),(async()=>{d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),d.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),d.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,B()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),i=(0,r.up)("router-link"),c=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",{id:"user-auth-form",class:(0,a.C_)(`${["reset","reset-request"].includes((0,o.SU)(h))?(0,o.SU)(h):"user-form"}`)},[(0,r._)("div",m,[(0,r._)("div",{class:(0,a.C_)(["form-box",{disabled:(0,o.SU)(M)}])},[(0,o.SU)(M)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(b)?((0,r.wg)(),(0,r.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(k)||(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",S,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(C)?"REGISTRATION"+((0,o.SU)(P).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,a.C_)({errors:y.value}),onSubmit:t[2]||(t[2]=(0,s.iM)((e=>Y((0,o.SU)(h))),["prevent"]))},[(0,r._)("div",E,["register"===(0,o.SU)(h)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"username",disabled:(0,o.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:W,"onUpdate:modelValue":t[0]||(t[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,_)),[[s.nr,f.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(h)?((0,r.wg)(),(0,r.iD)("div",T,[p,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,r.kq)("",!0),"reset"!==(0,o.SU)(h)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:2,id:"email",disabled:(0,o.SU)(M)||(0,o.SU)(b),required:"",onInvalid:W,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>f.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[s.nr,f.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(h))?((0,r.wg)(),(0,r.iD)("div",O,[U,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,r.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,o.SU)(h))?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(l.Z,{key:4,disabled:(0,o.SU)(M),required:!0,placeholder:"reset"===(0,o.SU)(h)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,o.SU)(h)),onUpdatePassword:F,onPasswordError:W},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,r._)("button",{type:"submit",disabled:(0,o.SU)(M)||(0,o.SU)(b)},(0,a.zw)(e.$t((0,o.SU)(v))),9,R)],34),"login"===(0,o.SU)(h)?((0,r.wg)(),(0,r.iD)("div",g,[(0,r.Wm)(i,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",I,"-")):(0,r.kq)("",!0),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(i,{key:1,class:"links",to:"/password-reset/request"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"register"===(0,o.SU)(h)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",z,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(i,{class:"links",to:"/login"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,r.kq)("",!0),["login","register"].includes((0,o.SU)(h))&&(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",w,[(0,r.Wm)(i,{class:"links",to:"/account-confirmation/resend"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,r.kq)("",!0),(0,o.SU)(D)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(D)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),f=n(3744);const v=(0,f.Z)(h,[["__scopeId","data-v-bf09a420"]]);var D=v},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(6252),a=n(2262),o=n(2024);const s={class:"user-picture"},i=["alt","src"],l={key:1,class:"no-picture"},c=(0,r._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var d=(0,r.aZ)({__name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.picture?`${(0,o.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[""!==(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,a.SU)(n)},null,8,i)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const m=d;var S=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577);const o={class:"no-workouts box"};function s(e,t){const n=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r._)("div",null,[(0,r.Uk)((0,a.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,r.Wm)(n,{to:"/workouts/add"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var i=n(3744);const l={},c=(0,i.Z)(l,[["render",s],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var r={"./de/de.ts":27,"./en/en.ts":9350,"./fr/fr.ts":1079};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4612}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var s=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(i=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var s={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){s[e]=function(){return r[e]}}));return s["default"]=function(){return r},n.d(o,s),o}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile",881:"password"}[e]||e)+"."+{24:"0550e664",93:"8adb4a90",193:"145d19e3",243:"b773e58b",328:"d8f63f79",401:"f325b0e6",431:"8c82cbac",633:"69dd3969",845:"cc6add96",858:"6dd1c30f",881:"332510b4"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"d0356685",328:"73df498d",401:"fa95a9cb",845:"203e78e2"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(r,a,o,s){if(e[r])e[r].push(a);else{var i,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u {\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default authApi\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: LocaleMessages = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz\"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellkode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])},\n \"USERS\": {\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 \"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 }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\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 on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration.\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"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([\"Lösche meinen Account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editieren\"])},\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([\"Einloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])}\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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\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}","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 \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\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ätigungsemail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest Du Dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\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_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\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 \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])},\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 }\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 \"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 \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\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_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regirierungsdatum\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"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 \"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 \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sende Email zur Kontobestätigung erneut\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])},\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}","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 \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\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 \"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 \"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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\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_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([\"remaining characters\"])},\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 \"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 \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\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 },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .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 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 sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"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 }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"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 \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems 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}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\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_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])},\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 }\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 \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"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_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"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 \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\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}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_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 \"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 \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import 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 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 sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\n \"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([\"Nombre max. de fichiers dans une archive zip \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])},\n \"USERS\": {\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 \"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 }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"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 \"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 \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"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 \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"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 \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
                                                                Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"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 votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email 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 de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se dé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_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe \"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\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 \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])},\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 }\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 \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"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 email 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_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances \"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email.\"])},\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 email fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau l'email de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"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}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_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 \"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 \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import 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 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 sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n }\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import 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=95c1cc02&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-95c1cc02\"]])\n\nexport default __exports__","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 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 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 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=7fb0a1e7&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-7fb0a1e7\"]])\n\nexport default __exports__","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 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=2d3b4eac&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-2d3b4eac\"]])\n\nexport default __exports__","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import 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 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 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 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 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 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=4735c10f&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-4735c10f\"]])\n\nexport default __exports__","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=40025245&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=e26535e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e26535e0\"]])\n\nexport default __exports__","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 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 script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import 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=b6bacea0&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-b6bacea0\"]])\n\nexport default __exports__","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 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 script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=4775544a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4775544a\"]])\n\nexport default __exports__","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=74257266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74257266\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import 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 script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=c9d1f10c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c9d1f10c\"]])\n\nexport default __exports__","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 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=7de0052b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","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 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 script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=4663dbac&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=73426002&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import 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 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 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=20115a7c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","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 { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean\n): Record => {\n const unitFrom: TUnit = 'km'\n const unitTo: TUnit = useImperialUnits\n ? units[unitFrom].defaultTarget\n : unitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n unitFrom,\n unitTo,\n 2\n )} ${unitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(+record.value, unitFrom, unitTo, 3)} ${unitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatWorkoutDate(getDateWithTZ(record.workout_date, tz))\n .workout_date,\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const 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): IRecordsBySports =>\n records.reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits)\n )\n }\n return sportList\n }, {})\n","import 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=b5480ab0&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-b5480ab0\"]])\n\nexport default __exports__","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=55c5cd2a&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-55c5cd2a\"]])\n\nexport default __exports__","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=6c24b4fa&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","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=20e19721&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-20e19721\"]])\n\nexport default __exports__","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 script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=6a38125b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a38125b\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport 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 UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n 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 },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeAuthUserData(context)\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context\n .dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n .then(() => router.push('/profile/preferences'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE](\n context: ActionContext,\n language: string\n ): void {\n document.querySelector('html')?.setAttribute('lang', language)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, language)\n locale.value = language\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat),\n workout_time: format(dateTime, timeFormat),\n }\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { de, enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate } from '@/utils/dates'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'dd/MM/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(key, dateFormat.chart)\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n apiStats !== {} &&\n date in apiStats &&\n sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=f38ea1b8&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-f38ea1b8\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnEnPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-en'\n )\n const zxcvbnFrPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-fr'\n )\n const zxcvbnLangPackages: Record = {\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n }\n const zxcvbnPackage = zxcvbnLangPackages[language]\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnPackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=74e71df5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e71df5\"]])\n\nexport default __exports__","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58e4e79d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true\n): string => {\n const unitFrom = 'km'\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n return `${value.toFixed(2)} ${unitTo}`\n case 'total_ascent':\n case 'total_descent':\n return `${(value / 1000).toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","import { render } from \"./Chart.vue?vue&type=template&id=301b01ca&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=58e4e79d&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=58e4e79d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-58e4e79d\"]])\n\nexport default __exports__","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=794e58e7&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-794e58e7\"]])\n\nexport default __exports__","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=bf09a420&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-bf09a420\"]])\n\nexport default __exports__","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./de/de.ts\": 27,\n\t\"./en/en.ts\": 9350,\n\t\"./fr/fr.ts\": 1079\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\",\"881\":\"password\"}[chunkId] || chunkId) + \".\" + {\"24\":\"0550e664\",\"93\":\"8adb4a90\",\"193\":\"145d19e3\",\"243\":\"b773e58b\",\"328\":\"d8f63f79\",\"401\":\"f325b0e6\",\"431\":\"8c82cbac\",\"633\":\"69dd3969\",\"845\":\"cc6add96\",\"858\":\"6dd1c30f\",\"881\":\"332510b4\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"d0356685\",\"328\":\"73df498d\",\"401\":\"fa95a9cb\",\"845\":\"203e78e2\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(9370); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","__name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","dispatch","toString","logout","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","initLanguage","navigatorLanguage","navigator","split","localeFromLanguage","e","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","message","name","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","_hoisted_20","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","Hiking","MountainBiking","MountainBikingElectric","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","commit","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","includes","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","useI18n","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","format","getDateWithTZ","created_at","timezone","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","languageLabels","fistDayOfWeek","weekm","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","weekStart","imperialUnits","updateTZ","lang","_vModelSelect","TimezoneDropdown","start","unit","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","isEdition","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","onChange","src","alt","BikePic","About","workout","_component_Distance","params","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","ascent","descent","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","data","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","dateFormat","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","Error","formatWorkoutDate","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","defaultUnitFrom","totalDistance","total_distance","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","status","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","state","authUserProfile","isRegistrationSuccess","mutations","authUserState","setAttribute","application","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPage","defaultPerPage","getNumberQueryValue","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","dateTime","timeFormat","workout_time","suffixes","fileSize","asText","floor","pow","msg","response","m","de","en","fr","availableLocales","l","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_ascent","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","async","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnLangPackages","zxcvbnPackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","JSON","parse","stringify","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","indexOf","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","url","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","onLinkComplete","errorType","realHref","err","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.bf1d4e1c.js b/fittrackee/dist/static/js/app.bf1d4e1c.js new file mode 100644 index 00000000..89712444 --- /dev/null +++ b/fittrackee/dist/static/js/app.bf1d4e1c.js @@ -0,0 +1,2 @@ +(function(){var e={5167:function(e,t,n){"use strict";var r=n(9669),a=n.n(r),o=n(12),s=n(8602),i=n(2024);const l=a().create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=o.Z.getters[s.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))),t["Z"]=l},2540:function(e,t,n){"use strict";var r=n(3324);function a(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1){const a=r[1];t[a]=e(n).default}})),t}t["Z"]=(0,r.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:a()})},27:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["unter ",n(r(0))," Lizenz"])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Quellkode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt-E-Mail des Administrators"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Neue E-Mail"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Das wasswort wurde zurückgesetzt."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainings existieren"])},IMAGE:e=>{const{normalize:t}=e;return t(["Bild"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:t}=e;return t(["Nutzer"])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte entfernen"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["Adminstatus"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Accountstatus"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["Trainingsanzahl"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Abrufen der Konfiguration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Aktualisieren der Konfiguration."])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Die Datei ist größer als erlaubt."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden."])},"no file part":e=>{const{normalize:t}=e;return t(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:t}=e;return t(["Keine Datei ausgewählt."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Gebe ein gültiges Authentifizierungstoken an."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sportart existiert nicht."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Du hast keine Berechtigung."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["Vorhergehende"])},NEXT:e=>{const{normalize:t}=e;return t(["Nächste"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Bestätigungs-E-Mail erneut senden"])},BACK:e=>{const{normalize:t}=e;return t(["Zurück"])},CANCEL:e=>{const{normalize:t}=e;return t(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Lösche meinen Account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Editieren"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aktivieren"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Einloggen"])},NO:e=>{const{normalize:t}=e;return t(["Nein"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESET:e=>{const{normalize:t}=e;return t(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Speichern"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["Über"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bestätigung"])},CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["Tag"]),t(["Tage"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])},ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["pro Seite"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Dieser Monat"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
                                                                Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Etwas lief schief"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (elektrisch)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rudern"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["Woche"])},month:e=>{const{normalize:t}=e;return t(["Monat"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Eine neue Bestätigungsemail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Möchtest Du Dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:t}=e;return t(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Gebe ein Passwort ein"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte fordere ein neues Passworts an."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["schwach"])},AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},capitalization:e=>{const{normalize:t}=e;return t(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:t}=e;return t(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])},noNeed:e=>{const{normalize:t}=e;return t(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:t}=e;return t(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Dein Passwort wurde aktualisiert. Klicke ",n(r(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Kontoausgabe"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Zurück zum Profil"])},BIO:e=>{const{normalize:t}=e;return t(["Biographie"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geburtsdatum"])},EDIT:e=>{const{normalize:t}=e;return t(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen für Sportarten ändern"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Bitte ",n(r(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nachname"])},LOCATION:e=>{const{normalize:t}=e;return t(["Ort"])},MONDAY:e=>{const{normalize:t}=e;return t(["Montag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Bildausgabe"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Einstellungsausgabe"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Regirierungsdatum"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["Konto"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen"])},PROFILE:e=>{const{normalize:t}=e;return t(["Profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["Sportarten"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},COLOR:e=>{const{normalize:t}=e;return t(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["aktiv"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Geschwindigkeitsschwellenwert für Stopp"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Sende Email zur Kontobestätigung erneut"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Dieser Account ist inaktiv."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich "_" sind erlaubt.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["Analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["Aufstieg"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["zurück zum Training"])},DATE:e=>{const{normalize:t}=e;return t(["Datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["zeige Filter"])},DISTANCE:e=>{const{normalize:t}=e;return t(["Entfernung"])},DURATION:e=>{const{normalize:t}=e;return t(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:t}=e;return t(["Höhe"])},END:e=>{const{normalize:t}=e;return t(["Ende"])},FROM:e=>{const{normalize:t}=e;return t(["Von"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberge Filter"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nächstes Training"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Keine Trainings."])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},PAUSES:e=>{const{normalize:t}=e;return t(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorheriges Training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["Aufzeichnung"]),t(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Weiteste Entfernung"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["Segment"]),t(["Segmente"])])},SPEED:e=>{const{normalize:t}=e;return t(["Geschwindigkeit"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["Sportart"]),t(["Sportarten"])])},START:e=>{const{normalize:t}=e;return t(["Start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:t}=e;return t(["Titel"])},TO:e=>{const{normalize:t}=e;return t(["bis"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Füge erstes Training hinzu!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["Temperatur"])},WIND:e=>{const{normalize:t}=e;return t(["Wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},E:e=>{const{normalize:t}=e;return t(["O"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["klarer Tag"])},"clear-night":e=>{const{normalize:t}=e;return t(["klare Nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["wolkig"])},fog:e=>{const{normalize:t}=e;return t(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:t}=e;return t(["Regen"])},sleet:e=>{const{normalize:t}=e;return t(["Schneeregen"])},snow:e=>{const{normalize:t}=e;return t(["Schnee"])},wind:e=>{const{normalize:t}=e;return t(["Wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .gpx Datei"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["Training"]),t(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["oder .zip Datei mit .gpx Dateien"])}},E={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},9350:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["under ",n(r(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to reset ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
                                                                Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["weak"])},AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Please ",n(r(0))," to change your email address again or contact the administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},E={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},1079:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["sous licence ",n(r(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(r(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(r(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Renvoyer le message de confirmation"])},BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois-ci"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
                                                                Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Électrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisir une adresse email valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["faible"])},AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe "])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Veuillez vous ",n(r(0))," pour changer de nouveau votre adresse email ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances "])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse email fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau l'email de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère "_" sont autorisés.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},E={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},9370:function(e,t,n){"use strict";var r=n(3328),a=n(8278),o=n(9963),s=n(2343),i=n(5205);(0,i.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},S={class:"footer-items"},E={class:"footer-item"},_=d((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},O={key:1,class:"footer-item"},U=["href"],R=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),g={class:"footer-item"},I={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:r}=(0,c.BK)(t);return(e,t)=>{const a=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",m,[(0,l._)("div",S,[(0,l._)("div",E,[_,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(r)),1)]),T,(0,l._)("div",p,[(0,l.Wm)(a,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",O,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,U)])):(0,l.kq)("",!0),R,(0,l._)("div",g,[(0,l._)("a",I,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),z=n(3744);const w=(0,z.Z)(N,[["__scopeId","data-v-2c73279e"]]);var h=w,f=n(6595),v=n(8602),D=n(9917),C=n(6287);const k=e=>((0,l.dD)("data-v-95c1cc02"),e=e(),(0,l.Cn)(),e),P={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=k((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},W=k((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),F={class:"nav-items-user-menu"},Y={key:0,class:"nav-items-group"},x={class:"nav-item nav-profile-img"},B={key:1,class:"nav-items-group"},K=k((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var Z=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,D.o)(),r=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.LANGUAGE])),s=(0,c.iH)(!1);function i(){s.value=!0,t("menuInteraction",!0)}function d(){s.value=!1,t("menuInteraction",!1)}function m(e){n.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function S(){n.dispatch(v.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),E=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",P,[(0,l._)("div",L,[(0,l._)("div",M,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":s.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>i())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":s.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!s.value}]),onClick:t[2]||(t[2]=e=>d())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>d())},[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",G,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(a)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),W])):(0,l.kq)("",!0)]),(0,l._)("div",F,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",Y,[(0,l._)("div",x,[(0,l.Wm)(f.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:S},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",B,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(C.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(E,{key:2,class:"nav-item",options:(0,c.SU)(C.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[K])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const $=(0,z.Z)(Z,[["__scopeId","data-v-95c1cc02"]]);var H=$,q=n(7167);const V={id:"no-config"},j={class:"error-page"},X={class:"error-img"},J=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",V,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(q.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,z.Z)(Q,[["__scopeId","data-v-47759238"]]);var te=ee;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},ae={class:"app-loading"},oe={class:"container scroll"},se=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),ie=[se];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,D.o)(),n=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function s(e){a.value=e}function i(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&i(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function S(){let e="en";try{const t=navigator.language.split("-")[0];t in C.v1&&(e=t)}catch(n){e="en"}t.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{S(),t.dispatch(v.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>d())),(e,t)=>{const i=(0,l.up)("Loader"),d=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)(H,{onMenuInteraction:s}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(i)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":a.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(d,{key:0})):((0,l.wg)(),(0,l.j4)(te,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":o.value}]),onClick:m},ie,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(h,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ce=le;var ue=ce,de=n(2540),me=n(4809),Se=n(12);const Ee={class:"alert-message"},_e=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,_e)]))}});const pe=(0,z.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Ue={class:"custom-textarea"},Re=["id","name","maxLenght","disabled"],ge={class:"remaining-chars"};var Ie=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,r=(0,c.iH)("");function a(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{r.value=e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Ue,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e),onInput:a},null,40,Re),[[o.nr,r.value]]),(0,l._)("div",ge,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,z.Z)(Ie,[["__scopeId","data-v-7fb0a1e7"]]);var ze=Ne,we=n(3649);const he=(0,l.Uk)(" "+(0,u.zw)(" ")+" ");var fe=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:r,distance:a,speed:o,strong:s,unitFrom:i,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?we.Dl[i.value].defaultTarget:i.value)),S=(0,l.Fl)((()=>d.value?(0,we.sC)(a.value,i.value,m.value,n.value):parseFloat(a.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(S)),3),he,(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const ve=(0,z.Z)(fe,[["__scopeId","data-v-f46ff1d6"]]);var De=ve,Ce=n(2201);const ke={class:"dropdown-wrapper"},Pe={key:0,class:"dropdown-list"},Le=["onClick"];var Me=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,r=(0,Ce.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function s(){a.value=!a.value}function i(e){t("selected",e),a.value=!1}return(0,l.YP)((()=>r.path),(()=>a.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",ke,[(0,l._)("div",{class:"dropdown-selected",onClick:s},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",Pe,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(o),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>i(t)},(0,u.zw)(t.label),11,Le)))),128))])):(0,l.kq)("",!0)]))}});const be=(0,z.Z)(Me,[["__scopeId","data-v-2d3b4eac"]]);var ye=be;const Ge={class:"error-message"},We={key:0},Fe={key:1};var Ye=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ge,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",We,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Fe,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const xe=(0,z.Z)(Ye,[["__scopeId","data-v-2659a79a"]]);var Be=xe;const Ke={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"},Ze=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),$e=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),He=[Ze,$e];function qe(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Ke,He)}var Ve={name:"CyclingSport"};const je=(0,z.Z)(Ve,[["render",qe]]);var Xe=je;const Je={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"},Qe=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),et=(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),tt=[Qe,et];function nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Je,tt)}var rt={name:"CyclingTransport"};const at=(0,z.Z)(rt,[["render",nt]]);var ot=at;const st={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 463.507 463.507",style:{"enable-background":"new 0 0 463.507 463.507"},"xml:space":"preserve"},it=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),lt=(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),ct=[it,lt];function ut(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",st,ct)}var dt={name:"Hiking"};const mt=(0,z.Z)(dt,[["render",ut]]);var St=mt;const Et={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"},_t=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Tt=(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),pt=[_t,Tt];function At(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Et,pt)}var Ot={name:"MountainBiking"};const Ut=(0,z.Z)(Ot,[["render",At]]);var Rt=Ut;const gt={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"},It=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),Nt=[It];function zt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",gt,Nt)}var wt={name:"MountainBikingElectric"};const ht=(0,z.Z)(wt,[["render",zt]]);var ft=ht;const vt={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"},Dt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),Ct=(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),kt=[Dt,Ct];function Pt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vt,kt)}var Lt={name:"Rowing"};const Mt=(0,z.Z)(Lt,[["render",Pt]]);var bt=Mt;const yt={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"},Gt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Wt=(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),Ft=[Gt,Wt];function Yt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",yt,Ft)}var xt={name:"Running"};const Bt=(0,z.Z)(xt,[["render",Yt]]);var Kt=Bt;const Zt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},$t=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Ht=(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),qt=[$t,Ht];function Vt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Zt,qt)}var jt={name:"SkiingAlpine"};const Xt=(0,z.Z)(jt,[["render",Vt]]);var Jt=Xt;const Qt={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"},en=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),tn=(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),nn=[en,tn];function rn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Qt,nn)}var an={name:"SkiingCrossCountry"};const on=(0,z.Z)(an,[["render",rn]]);var sn=on;const ln={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"},cn=(0,l.uE)('silhouette of a person with snowshoes',6),un=[cn];function dn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ln,un)}var mn={name:"Snowshoes"};const Sn=(0,z.Z)(mn,[["render",dn]]);var En=Sn;const _n={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"},Tn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),pn=(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),An=[Tn,pn];function On(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",_n,An)}var Un={name:"Trail"};const Rn=(0,z.Z)(Un,[["render",On]]);var gn=Rn;const In={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Nn=(0,l.uE)('silhouette of a walking person',3),zn=[Nn];function wn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,zn)}var hn={name:"Walking"};const fn=(0,z.Z)(hn,[["render",wn]]);var vn=fn;const Dn=["title"];var Cn=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:r,title:a}=(0,c.BK)(t),o=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(o)[(0,c.SU)(r)]}),title:(0,c.SU)(a)?(0,c.SU)(a):e.$t(`sports.${(0,c.SU)(r)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Xe,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(ot,{key:1})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(St,{key:2})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Rt,{key:3})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(ft,{key:4})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(bt,{key:5})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Kt,{key:6})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Jt,{key:7})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(sn,{key:8})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(En,{key:9})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(gn,{key:10})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(vn,{key:11})):(0,l.kq)("",!0)],12,Dn))}});const kn=Cn;var Pn=kn;const Ln={class:"loader"};function Mn(e,t){return(0,l.wg)(),(0,l.iD)("div",Ln)}const bn={},yn=(0,z.Z)(bn,[["render",Mn],["__scopeId","data-v-4c9921ee"]]);var Gn=yn;const Wn={id:"modal"},Fn={class:"custom-modal"},Yn={key:0,class:"modal-message"},xn={key:1,class:"modal-message"},Bn={class:"modal-buttons"};var Kn=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,r=(0,D.o)(),{title:a,message:o,strongMessage:s}=(0,c.BK)(n),i=(0,l.Fl)((()=>r.getters[v.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(v.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),d=(0,l.up)("ErrorMessage"),m=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Wn,[(0,l._)("div",Fn,[(0,l.Wm)(m,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",Yn,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(s)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",xn,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(i)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(i)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",Bn,[(0,c.SU)(i)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(i)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const Zn=(0,z.Z)(Kn,[["__scopeId","data-v-e8fcfaba"]]);var $n=Zn;const Hn=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:ze,name:"CustomTextArea"},{target:De,name:"Distance"},{target:ye,name:"Dropdown"},{target:Be,name:"ErrorMessage"},{target:Gn,name:"Loader"},{target:$n,name:"Modal"},{target:Pn,name:"SportImage"}],qn={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var Vn=n(631);r.kL.register(r.ZL,r.jn,r.od,r.De,r.Dx,r.u,r.Gu,r.vn,r.uw,r.ST,r.f$,a.Z);const jn=(0,o.ri)(ue).provide("sportColors",Vn.Zo).use(de.Z).use(Se.Z).use(me.Z).use(s.ZP,{name:"VFullscreen"}).directive("click-outside",qn);Hn.forEach((e=>{jn.component(e.name,e.target)})),jn.mount("#app")},4809:function(e,t,n){"use strict";n.d(t,{Z:function(){return si}});n(6699);var r=n(2201),a=n(6252),o=n(3577),s=n(9963),i=n(2262),l=n(8602),c=n(9917),u=n(8966);const d=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),m={id:"admin-app",class:"admin-card"},S=["onSubmit"],E={for:"admin_contact"},_=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},U={class:"info-box"},R=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),g={for:"max_single_file_size"},I=["disabled"],N={for:"max_zip_file_size"},z=["disabled"],w={for:"gpx_limit_import"},h=["disabled"],f={key:1,class:"form-buttons"},v={class:"confirm",type:"submit"},D=["onClick"],C={key:2,class:"form-buttons"};var k=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,i.BK)(t),d=(0,c.o)(),k=(0,r.tv)(),P=(0,i.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>d.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(P).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?P[t]=(0,u.j)(e[t]):P[t]=e[t]}))}function b(){M(t.appConfig),d.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),k.push("/admin/application")}function y(){const e=Object.assign({},P);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,d.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,a.wF)((()=>{t.appConfig&&M(t.appConfig)})),(e,t)=>{const r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("form",{class:"admin-form",onSubmit:(0,s.iM)(y,["prevent"])},[(0,a._)("label",E,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,i.SU)(n)||P.admin_contact?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>P.admin_contact=e),disabled:!(0,i.SU)(n)},null,8,T)),[[s.nr,P.admin_contact]]):((0,a.wg)(),(0,a.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,_))]),(0,a._)("label",p,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>P.max_users=e),disabled:!(0,i.SU)(n)},null,8,A),[[s.nr,P.max_users]])]),(0,a._)("div",O,[(0,a._)("span",U,[R,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",g,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>P.max_single_file_size=e),disabled:!(0,i.SU)(n)},null,8,I),[[s.nr,P.max_single_file_size]])]),(0,a._)("label",N,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>P.max_zip_file_size=e),disabled:!(0,i.SU)(n)},null,8,z),[[s.nr,P.max_zip_file_size]])]),(0,a._)("label",w,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>P.gpx_limit_import=e),disabled:!(0,i.SU)(n)},null,8,h),[[s.nr,P.gpx_limit_import]])]),(0,i.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,i.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(n)?((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",v,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,s.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,D)])):((0,a.wg)(),(0,a.iD)("div",C,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,s.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,o.zw)(e.$t("buttons.EDIT")),1),(0,a._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,S)])),_:1})])}}}),P=n(3744);const L=(0,P.Z)(k,[["__scopeId","data-v-24ec93e2"]]);var M=L;const b={class:"stat-card"},y={class:"stat-content box"},G={class:"stat-icon"},W={class:"stat-details"},F={class:"stat-huge"},Y={class:"stat"};var x=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:s}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",b,[(0,a._)("div",y,[(0,a._)("div",G,[(0,a._)("i",{class:(0,o.C_)(["fa",`fa-${(0,i.SU)(n)}`])},null,2)]),(0,a._)("div",W,[(0,a._)("div",F,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("div",Y,(0,o.zw)((0,i.SU)(r)),1)])])]))}});const B=x;var K=B;const Z={id:"user-stats"};var $=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,i.BK)(t),r=(0,a.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Z,[(0,a.Wm)(K,{icon:"users",value:(0,i.SU)(n).users,text:e.$t("admin.USER",(0,i.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(K,{icon:"tags",value:(0,i.SU)(n).sports,text:e.$t("workouts.SPORT",(0,i.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(K,{icon:"calendar",value:(0,i.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(K,{icon:"folder-open",value:(0,i.SU)(r).size,text:(0,i.SU)(r).suffix},null,8,["value","text"])]))}});const H=$;var q=H,V=n(2531);const j=e=>((0,a.dD)("data-v-0dd66f89"),e=e(),(0,a.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=j((()=>(0,a._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},re=j((()=>(0,a._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var ae=(0,a.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:r}=(0,i.BK)(t);return(e,t)=>{const s=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(V.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(q,{appStatistics:(0,i.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/application"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,a._)("dd",Q,[(0,a.Uk)((0,o.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,a._)("span",te,(0,o.zw)(e.$t("admin.REGISTRATION_"+((0,i.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,i.SU)(n).is_email_sending_enabled?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",ne,[re,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/sports"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/users"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const oe=(0,P.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var se=oe,ie=n(3324),le=n(631);const ce=e=>((0,a.dD)("data-v-6d62af67"),e=e(),(0,a.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},de={class:"responsive-table"},me=ce((()=>(0,a._)("th",null,"#",-1))),Se={class:"text-left"},Ee={class:"text-left sport-action"},_e=ce((()=>(0,a._)("th",null,null,-1))),Te={class:"text-center"},pe=ce((()=>(0,a._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Oe={class:"sport-label"},Ue={class:"cell-heading"},Re={class:"text-center"},ge={class:"cell-heading"},Ie={class:"sport-action"},Ne={class:"cell-heading"},ze={class:"action-button"},we=["onClick"],he={key:0,class:"has-workouts"},fe=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var ve=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,ie.QT)(),n=(0,c.o)(),r=(0,a.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,a.up)("SportImage"),l=(0,a.up)("ErrorMessage"),c=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ue,[(0,a.Wm)(c,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",de,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[me,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",Se,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("th",Ee,(0,o.zw)(e.$t("admin.ACTION")),1),_e])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.id},[(0,a._)("td",Te,[pe,(0,a.Uk)(" "+(0,o.zw)(t.id),1)]),(0,a._)("td",null,[(0,a._)("span",Ae,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,a._)("td",Oe,[(0,a._)("span",Ue,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Re,[(0,a._)("span",ge,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,a._)("td",Ie,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",ze,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>d(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,we),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",he,[fe,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const De=(0,P.Z)(ve,[["__scopeId","data-v-6d62af67"]]);var Ce=De,ke=n(4850),Pe=n(8626),Le=n(6514),Me=n(6595);const be={class:"users-filters"},ye={class:"search-username"},Ge=["onKeyup","placeholder"];var We=(0,a.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,r.yj)(),l=(0,i.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",be,[(0,a._)("div",ye,[(0,a.wy)((0,a._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,s.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,Ge),[[s.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,a.kq)("",!0)]),(0,a._)("i",{class:(0,o.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Fe=(0,P.Z)(We,[["__scopeId","data-v-627a8e91"]]);var Ye=Fe,xe=n(2766),Be=n(6558);const Ke=e=>((0,a.dD)("data-v-4735c10f"),e=e(),(0,a.Cn)(),e),Ze={id:"admin-users",class:"admin-card"},$e={key:0,class:"no-users"},He={key:1,class:"responsive-table"},qe=Ke((()=>(0,a._)("th",null,"#",-1))),Ve={class:"left-text"},je={class:"left-text"},Xe={class:"left-text"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"cell-heading"},nt={class:"text-center"},rt={class:"cell-heading"},at={class:"text-center"},ot={class:"cell-heading"},st={class:"text-center"},it={class:"cell-heading"},lt={class:"text-center"},ct={class:"cell-heading"},ut=["disabled","onClick"];var dt=(0,a.aZ)({__name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,r.yj)(),u=(0,r.tv)(),d=["is_active","admin","created_at","username","workouts_count"],m="created_at";let S=(0,i.qj)((0,xe.pm)(n.query,d,m));const E=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),_=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),T=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),p=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function O(e){R("q",e.value)}function U(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function R(e,t){S[e]=t,"per_page"===e&&(S.page=1),u.push({path:"/admin/users",query:S})}return(0,a.wF)((()=>A(S))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{S=(0,xe.pm)(e,d,m,{query:S}),A(S)})),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ze,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a.Wm)(Ye,{onFilterOnUsername:O}),(0,a.Wm)(Pe.Z,{sort:(0,i.SU)(xe.fS),order_by:d,query:(0,i.SU)(S),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:R},null,8,["sort","query"]),0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",$e,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",He,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[qe,(0,a._)("th",Ve,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",je,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",Xe,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a._)("th",null,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTION")),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(_),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Je,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Me.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Qe,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.username),1)])),_:2},1032,["to"])]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",tt,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(ke.Z)((0,i.SU)(Be.eB)(t.created_at,(0,i.SU)(E).timezone),"dd/MM/yyyy HH:mm")),1)]),(0,a._)("td",nt,[(0,a._)("span",rt,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a.Uk)(" "+(0,o.zw)(t.nb_workouts),1)]),(0,a._)("td",at,[(0,a._)("span",ot,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",st,[(0,a._)("span",it,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",lt,[(0,a._)("span",ct,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("button",{class:(0,o.C_)({danger:t.admin}),disabled:t.username===(0,i.SU)(E).username,onClick:e=>U(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ut)])])))),128))])]),(0,i.SU)(T).page?((0,a.wg)(),(0,a.j4)(Le.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(T),query:(0,i.SU)(S)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,i.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,i.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,P.Z)(dt,[["__scopeId","data-v-4735c10f"]]);var St=mt,Et=n(2179);const _t={class:"profile-tabs custom-checkboxes-group"},Tt={class:"profile-tabs-checkboxes custom-checkboxes"},pt=["id","name","checked","disabled","onInput"];var At=(0,a.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:r,disabled:s}=(0,i.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",_t,[(0,a._)("div",Tt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(n),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:t,name:t,checked:(0,i.SU)(r)===t,disabled:(0,i.SU)(s),onInput:n=>e.$router.push(l(t))},null,40,pt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const Ot=At;var Ut=Ot;const Rt={id:"user-profile"},gt={class:"box"};var It=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,i.BK)(t),o=["PROFILE","PREFERENCES","SPORTS"];return(e,t)=>{const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",Rt,[(0,a.Wm)(Et.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,a._)("div",gt,[(0,a.Wm)(Ut,{tabs:o,selectedTab:(0,i.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(s,{user:(0,i.SU)(n)},null,8,["user"])])])}}});const Nt=(0,P.Z)(It,[["__scopeId","data-v-e26535e0"]]);var zt=Nt,wt=n(7408),ht=n(6287);const ft={id:"user-preferences",class:"description-list"},vt={class:"profile-buttons"};var Dt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.zK.en)),r=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),s=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris"));return(t,l)=>((0,a.wg)(),(0,a.iD)("div",ft,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(n)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`user.PROFILE.${(0,i.SU)(r)}`)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1)]),(0,a._)("div",vt,[(0,a._)("button",{onClick:l[0]||(l[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:l[1]||(l[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const Ct=Dt;var kt=Ct;const Pt={id:"user-profile-edition",class:"center-card"};var Lt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:s}=(0,i.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,a.up)("router-view"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Pt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,i.SU)(s)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ut,{tabs:u,selectedTab:(0,i.SU)(s),edition:!0,disabled:(0,i.SU)(d)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,i.SU)(r)},null,8,["user"])])),_:1})])}}});const Mt=Lt;var bt=Mt,yt=n(8403);const Gt={id:"user-infos-edition"},Wt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Yt=["onSubmit"],xt={class:"form-items",for:"email"},Bt=["disabled"],Kt={class:"form-items",for:"password-field"},Zt={class:"form-items",for:"new-password-field"},$t={class:"form-buttons"},Ht={class:"confirm",type:"submit"};var qt=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,i.BK)(t),r=(0,c.o)(),u=(0,i.qj)({email:"",password:"",new_password:""}),d=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),S=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),E=(0,i.iH)(!1),_=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,i.iH)(!1),p=(0,i.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function U(e){u.password=e}function R(e){u.new_password=e}function g(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),E.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function I(e){p.value=e}function N(e){r.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,a.bv)((()=>{t.user&&O(t.user)})),(0,a.Ah)((()=>{r.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,a.YP)((()=>S.value),(async e=>{e&&(U(""),R(""),O(n.value),T.value=!1)})),(0,a.YP)((()=>n.value.email),(async()=>{O(n.value)})),(e,t)=>{const r=(0,a.up)("Modal"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Gt,[p.value?((0,a.wg)(),(0,a.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>N((0,i.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Wt,[(0,i.SU)(_)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(_)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(S)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${E.value&&(0,i.SU)(m).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,s.iM)(g,["prevent"])},[(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,i.SU)(d),required:!0,onInvalid:A},null,40,Bt),[[s.nr,u.email]])]),(0,a._)("label",Kt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(yt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:U,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",Zt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(yt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",$t,[(0,a._)("button",Ht,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1),(0,a._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,s.iM)((e=>I(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Yt)])])}}});const Vt=(0,P.Z)(qt,[["__scopeId","data-v-37b8c4c8"]]);var jt=Vt;const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},rn=["disabled"],an={class:"form-items",for:"last_name"},on={class:"form-items",for:"birth_date"},sn=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},dn={class:"form-buttons"},mn={class:"confirm",type:"submit"};var Sn=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,ke.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function S(e){r.first_name=e.first_name?e.first_name:"",r.last_name=e.last_name?e.last_name:"",r.birth_date=e.birth_date?(0,ke.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",r.location=e.location?e.location:"",r.bio=e.bio?e.bio:""}function E(e){r.bio=e}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&S(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage"),l=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Xt,[(0,a._)("div",Jt,[(0,i.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(_,["prevent"])},[(0,a._)("label",en,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,a._)("input",{id:"registrationDate",value:(0,i.SU)(u),disabled:""},null,8,tn)]),(0,a._)("label",nn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>r.first_name=e),disabled:(0,i.SU)(d)},null,8,rn),[[s.nr,r.first_name]])]),(0,a._)("label",an,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>r.last_name=e)},null,512),[[s.nr,r.last_name]])]),(0,a._)("label",on,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,a.wy)((0,a._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>r.birth_date=e),disabled:(0,i.SU)(d)},null,8,sn),[[s.nr,r.birth_date]])]),(0,a._)("label",ln,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,a.wy)((0,a._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>r.location=e),disabled:(0,i.SU)(d)},null,8,cn),[[s.nr,r.location]])]),(0,a._)("label",un,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,a.Wm)(l,{name:"bio",charLimit:200,input:r.bio,disabled:(0,i.SU)(d),onUpdateValue:E},null,8,["input","disabled"])]),(0,a._)("div",dn,[(0,a._)("button",mn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const En=(0,P.Z)(Sn,[["__scopeId","data-v-b6bacea0"]]);var _n=En;const Tn=e=>((0,a.dD)("data-v-687e9604"),e=e(),(0,a.Cn)(),e),pn={id:"user-picture-edition"},An={class:"user-picture-form"},On=["onSubmit"],Un={class:"picture-help"},Rn={class:"info-box"},gn=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),In={class:"picture-buttons"},Nn=["disabled"];var zn=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),S=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",E=(0,i.iH)(null);function _(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(E.value=e.target.files[0])}function p(){E.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:E.value})}return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",pn,[(0,a._)("div",An,[(0,i.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Me.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,s.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",Un,[(0,a._)("span",Rn,[gn,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,i.SU)(S)),1)])]),(0,a._)("div",In,[(0,a._)("button",{type:"submit",disabled:!E.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,i.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:_},(0,o.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,a.kq)("",!0),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,o.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,On)])])}}});const wn=(0,P.Z)(zn,[["__scopeId","data-v-687e9604"]]);var hn=wn;const fn=["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"],vn={id:"tz-dropdown"},Dn=["value","disabled","onKeydown"],Cn=["onClick","onMouseover","autofocus"];var kn=(0,a.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:r,disabled:l}=(0,i.BK)(n),c=(0,i.iH)(n.input),u=(0,i.iH)(!1),d=(0,i.iH)(null),m=(0,i.iH)(0);function S(e){return e.toLowerCase().match(c.value.toLowerCase())}function E(e){m.value=e}function _(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&_(d.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,a.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",vn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,i.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,s.D2)((e=>_((0,i.SU)(r))),["esc"])),(0,s.D2)(T,["enter"])],onInput:p},null,40,Dn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:d},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(fn).filter((e=>S(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===m.value}]),onClick:t=>_(e),onMouseover:e=>E(t),autofocus:t===m.value},(0,o.zw)(e),43,Cn)))),128))],512)):(0,a.kq)("",!0)]))}});const Pn=(0,P.Z)(kn,[["__scopeId","data-v-47ea2903"]]);var Ln=Pn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Wn=["disabled"],Fn=["value"],Yn={class:"form-items"},xn={class:"form-items"},Bn=["disabled"],Kn=["value"],Zn={class:"form-items"},$n=["disabled"],Hn=["value"],qn={class:"form-buttons"},Vn={class:"confirm",type:"submit"};var jn=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({imperial_units:!1,language:"",timezone:"Europe/Paris",weekm:!1}),u=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],d=[{label:"IMPERIAL",value:!0},{label:"METRIC",value:!1}],m=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function E(e){r.imperial_units=!!e.imperial_units&&e.imperial_units,r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.weekm=!!e.weekm&&e.weekm}function _(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function T(e){r.timezone=e}return(0,a.bv)((()=>{t.user&&E(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Mn,[(0,a._)("div",bn,[(0,i.SU)(S)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(_,["prevent"])},[(0,a._)("label",Gn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,a.wy)((0,a._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>r.language=e),disabled:(0,i.SU)(m)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(ht.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Fn)))),128))],8,Wn),[[s.bM,r.language]])]),(0,a._)("label",Yn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,i.SU)(m),onUpdateTimezone:T},null,8,["input","disabled"])]),(0,a._)("label",xn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),(0,a.wy)((0,a._)("select",{id:"weekm","onUpdate:modelValue":t[1]||(t[1]=e=>r.weekm=e),disabled:(0,i.SU)(m)},[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("option",{value:t.value,key:t.value},(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),9,Kn))),64))],8,Bn),[[s.bM,r.weekm]])]),(0,a._)("label",Zn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL"))+" ",1),(0,a.wy)((0,a._)("select",{id:"imperial_units","onUpdate:modelValue":t[2]||(t[2]=e=>r.imperial_units=e),disabled:(0,i.SU)(m)},[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("option",{value:t.value,key:t.value},(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),9,Hn))),64))],8,$n),[[s.bM,r.imperial_units]])]),(0,a._)("div",qn,[(0,a._)("button",Vn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const Xn=jn;var Jn=Xn;const Qn={id:"user-sport-preferences"},er={key:0,class:"responsive-table"},tr={class:"mobile-display"},nr={key:0,class:"profile-buttons mobile-display"},rr={key:1,class:"profile-buttons"},ar={class:"text-left"},or={key:0},sr={class:"cell-heading"},ir=["value"],lr={class:"cell-heading"},cr={key:0,class:"disabled-message"},ur={key:1,class:"fa fa-refresh fa-spin fa-fw"},dr={class:"cell-heading"},mr={class:"cell-heading"},Sr=["checked"],Er={class:"cell-heading"},_r=["value"],Tr={key:1},pr={key:0,class:"action-buttons"},Ar={class:"cell-heading"},Or=["onClick"],Ur={key:1,class:"edition-buttons"},Rr=["disabled"],gr=["disabled","onClick"],Ir=["disabled"],Nr={key:0,class:"profile-buttons"},zr={key:1,class:"profile-buttons"};var wr=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,ie.QT)(),{isEdition:u,user:d}=(0,i.BK)(t),m=(0,a.f3)("sportColors"),S=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),E=(0,a.Fl)((()=>(0,le.xH)(S.value,r,"is_active",d.value.sports_list))),_=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),T=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),p=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function A(e){null!==e?(p.sport_id=e.id,p.color=e.color?e.color:m[e.label],p.is_active=e.is_active_for_user,p.stopped_speed_threshold=e.stopped_speed_threshold):I()}function O(e){return p.sport_id===e}function U(e){p.color=e.target.value}function R(e){p.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){p.is_active=e.target.checked}function I(){p.sport_id=0,p.color=null,p.is_active=!0,p.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function N(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,p)}function z(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>_.value),(e=>{e||T.value||I()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Qn,[(0,i.SU)(S).length>0?((0,a.wg)(),(0,a.iD)("div",er,[(0,a._)("div",tr,[(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",nr,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",rr,[(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,a._)("th",ar,(0,o.zw)(e.$t("workouts.SPORT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("th",or,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,a.kq)("",!0)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(E),(s=>((0,a.wg)(),(0,a.iD)("tr",{key:s.id},[(0,a._)("td",null,[(0,a._)("span",sr,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),O(s.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:p.color,onInput:U},null,40,ir)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:s.translatedLabel,"sport-label":s.label,color:s.color?s.color:(0,i.SU)(m)[s.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!s.is_active}])},[(0,a._)("span",lr,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(s.translatedLabel)+" ",1),s.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",cr," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(_)&&O(s.id)?((0,a.wg)(),(0,a.iD)("i",ur)):(0,a.kq)("",!0),(0,i.SU)(T)&&p.sport_id===s.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,i.SU)(T)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",dr,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,i.SU)(d).sports_list.includes(s.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",mr,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),O(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:s.is_active_for_user,onChange:g},null,40,Sr)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(s.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",Er,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),O(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:p.stopped_speed_threshold,onInput:R},null,40,_r)):((0,a.wg)(),(0,a.iD)("span",Tr,(0,o.zw)(s.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("td",pr,[(0,a._)("span",Ar,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===p.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>A(s)},(0,o.zw)(e.$t("buttons.EDIT")),9,Or)):(0,a.kq)("",!0),O(s.id)?((0,a.wg)(),(0,a.iD)("div",Ur,[(0,a._)("button",{disabled:(0,i.SU)(_),onClick:N},(0,o.zw)(e.$t("buttons.SUBMIT")),9,Rr),(0,a._)("button",{disabled:(0,i.SU)(_),onClick:e=>z(e,s.id)},(0,o.zw)(e.$t("buttons.RESET")),9,gr),(0,a._)("button",{disabled:(0,i.SU)(_),onClick:t[3]||(t[3]=e=>A(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,Ir)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Nr,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",zr,[(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))])):(0,a.kq)("",!0)])}}});const hr=(0,P.Z)(wr,[["__scopeId","data-v-4775544a"]]);var fr=hr,vr=n(12);const Dr=e=>((0,a.dD)("data-v-74257266"),e=e(),(0,a.Cn)(),e),Cr={class:"about-text"},kr=["innerHTML"],Pr=Dr((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),Lr={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},Mr=Dr((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),br={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},yr=Dr((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),Gr=Dr((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),Wr={key:0},Fr=Dr((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),Yr=["href"];var xr=(0,a.aZ)({__name:"About",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG]));return(e,t)=>{const r=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",Cr,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,kr),(0,a._)("p",null,[Pr,(0,a._)("a",Lr,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[Mr,(0,a._)("a",br,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[yr,(0,a.Wm)(r,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[Gr])),_:1})]),(0,i.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",Wr,[Fr,(0,a._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,Yr)])):(0,a.kq)("",!0)])])}}});const Br=(0,P.Z)(xr,[["__scopeId","data-v-74257266"]]);var Kr=Br;const Zr={id:"bike"},$r=["src"];function Hr(e,t){return(0,a.wg)(),(0,a.iD)("div",Zr,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,$r)])}const qr={},Vr=(0,P.Z)(qr,[["render",Hr],["__scopeId","data-v-795f7f5f"]]);var jr=Vr;const Xr={id:"about",class:"view"},Jr={class:"container"},Qr={class:"container-sub"},ea={class:"container-sub about-details"};var ta=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Xr,[(0,a._)("div",Jr,[(0,a._)("div",Qr,[(0,a.Wm)(jr)]),(0,a._)("div",ea,[(0,a.Wm)(Kr)])])]))}});const na=(0,P.Z)(ta,[["__scopeId","data-v-bffb50d0"]]);var ra=na,aa=n(1818),oa=n(2056);const sa=e=>((0,a.dD)("data-v-c9d1f10c"),e=e(),(0,a.Cn)(),e),ia={class:"timeline-workout"},la={class:"box"},ca={class:"workout-user-date"},ua={class:"workout-user"},da=["title"],ma={key:0},Sa={key:1,class:"no-map"},Ea={class:"img"},_a={class:"data"},Ta=sa((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),pa={key:0},Aa={class:"data"},Oa=sa((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Ua={key:0,class:"data elevation"},Ra=["alt"],ga={class:"data-values"},Ia=(0,a.Uk)("/ "),Na={key:1,class:"data altitude"},za=sa((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),wa={class:"data-values"},ha=(0,a.Uk)(" +"),fa=(0,a.Uk)("/- ");var va=(0,a.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:r,workout:s,sport:u,useImperialUnits:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));return(e,t)=>{const n=(0,a.up)("router-link"),l=(0,a.up)("SportImage"),c=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",ia,[(0,a._)("div",la,[(0,a._)("div",ca,[(0,a._)("div",ua,[(0,a.Wm)(Me.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,i.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,i.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,i.SU)(s).workout_date&&(0,i.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,i.SU)(ke.Z)((0,i.SU)(Be.eB)((0,i.SU)(s).workout_date,(0,i.SU)(r).timezone),"dd/MM/yyyy HH:mm")},(0,o.zw)((0,i.SU)(aa.Z)(new Date((0,i.SU)(s).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,da)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,i.SU)(s)}]),onClick:t[0]||(t[0]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("div",ma,[(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.j4)(oa.Z,{key:0,workout:(0,i.SU)(s)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",Sa,(0,o.zw)(e.$t("workouts.NO_MAP")),1))])):(0,a.kq)("",!0)],2),(0,a._)("div",{class:(0,o.C_)(["workout-data",{"without-gpx":(0,i.SU)(s)&&!(0,i.SU)(s).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,a._)("div",Ea,[(0,i.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,i.SU)(u).label,color:(0,i.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",_a,[Ta,(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("span",pa,(0,o.zw)((0,i.SU)(s).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Aa,[Oa,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).distance,digits:3,unitFrom:"km",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Ra),(0,a._)("div",ga,[(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),Ia,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).max_alt,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",Na,[za,(0,a._)("div",wa,[ha,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),fa,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const Da=(0,P.Z)(va,[["__scopeId","data-v-c9d1f10c"]]);var Ca=Da,ka=n(5630),Pa=n(3768);const La={id:"timeline"},Ma={class:"section-title"},ba={key:0},ya={key:1},Ga={key:1,class:"more-workouts"};var Wa=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:s}=(0,i.BK)(t),u=(0,i.iH)(1),d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,a.wF)((()=>_()));const S=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),E=(0,a.Fl)((()=>S.value.length>0&&null!==S.value[S.value.length-1].previous_workout));function _(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pa.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pa.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",La,[(0,a._)("div",Ma,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(s).nb_workouts>0&&0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.iD)("div",ba,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,i.SU)(m)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Ca,{user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",ya,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(e=>((0,a.wg)(),(0,a.j4)(Ca,{workout:e,sport:(0,i.SU)(S).length>0?(0,i.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.j4)(ka.Z,{key:0})):(0,a.kq)("",!0),(0,i.SU)(E)?((0,a.wg)(),(0,a.iD)("div",Ga,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const Fa=(0,P.Z)(Wa,[["__scopeId","data-v-35567bf2"]]);var Ya=Fa,xa=n(1640),Ba=n(4559),Ka=n(7349),Za=n(1743),$a=n(9160),Ha=n(1085);const qa=["title"];var Va=(0,a.aZ)({__name:"CalendarWorkout",props:{workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{workout:n,sportLabel:r,sportColor:o}=(0,i.BK)(t);return(e,t)=>{const s=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(n).id}}))},[(0,a.Wm)(s,{"sport-label":(0,i.SU)(r),title:(0,i.SU)(n).title,color:(0,i.SU)(o)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,i.SU)(n).records.length>0?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,i.SU)(n).records.map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,qa)):(0,a.kq)("",!0)])])}}});const ja=Va;var Xa=ja;const Ja={class:"donut-chart"},Qa={height:"34",width:"34",viewBox:"0 0 34 34"},eo=["stroke","stroke-dashoffset","transform"];var to=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,i.BK)(t);let o=-90;const s=16,l=16,c=14,u=2*Math.PI*c;function d(e,t){return t-e*t}function m(e,t){const n=`rotate(${o}, ${s}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ja,[((0,a.wg)(),(0,a.iD)("svg",Qa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,i.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:s,cy:l,r:c,fill:"transparent",stroke:(0,i.SU)(n)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:m(t,e[1].percentage)},null,8,eo)])))),128))]))]))}});const no=to;var ro=no;const ao={class:"calendar-workouts-chart"},oo={class:"workouts-count"},so={key:0,class:"workouts-pane"},io={class:"more-workouts"};var lo=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:s,workouts:l}=(0,i.BK)(t),c=(0,i.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const d=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",ao,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",oo,(0,o.zw)((0,i.SU)(l).length),1),(0,a.Wm)(ro,{datasets:(0,i.SU)(r),colors:(0,i.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",so,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",io,[(0,a._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(Xa,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(s)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(s))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const co=(0,P.Z)(lo,[["__scopeId","data-v-52d4310a"]]);var uo=co;const mo={class:"calendar-workouts"},So={class:"desktop-display"},Eo={key:0,class:"workouts-display"},_o={key:1,class:"donut-display"},To={class:"mobile-display"},po={key:0,class:"donut-display"};var Ao=(0,a.aZ)({__name:"CalendarWorkouts",props:{workouts:null,sports:null},setup(e){const t=e,{workouts:n,sports:r}=(0,i.BK)(t),o=(0,a.Fl)((()=>(0,Pa.BN)(t.workouts))),s=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),l=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",mo,[(0,a._)("div",So,[(0,i.SU)(n).length<=l?((0,a.wg)(),(0,a.iD)("div",Eo,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(n).slice(0,l),((e,t)=>((0,a.wg)(),(0,a.j4)(Xa,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(r)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(r))},null,8,["workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",_o,[(0,a.Wm)(uo,{workouts:(0,i.SU)(n),sports:(0,i.SU)(r),datasets:(0,i.SU)(o),colors:(0,i.SU)(s)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",To,[(0,i.SU)(n).length>0?((0,a.wg)(),(0,a.iD)("div",po,[(0,a.Wm)(uo,{workouts:(0,i.SU)(n),sports:(0,i.SU)(r),datasets:(0,i.SU)(o),colors:(0,i.SU)(s)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Oo=Ao;var Uo=Oo;const Ro={class:"calendar-cells"},go={class:"calendar-cell-day"};var Io=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,endDate:r,sports:s,startDate:l,timezone:c,weekStartingMonday:u,workouts:d}=(0,i.BK)(t),m=(0,i.iH)([]);function S(){m.value=[];let e=l.value;while(e<=r.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,Ka.Z)(e,1);m.value.push(t)}}function E(e){return u.value?[5,6].includes(e):[0,6].includes(e)}function _(e,t){return t?t.filter((t=>(0,Za.Z)((0,Be.eB)(t.workout_date,c.value),e))).reverse():[]}return(0,a.bv)((()=>S())),(0,a.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ro,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(m.value,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"calendar-row",key:t},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(["calendar-cell",{"disabled-cell":!(0,i.SU)($a.Z)(e,(0,i.SU)(n)),"week-end":E(t),today:(0,i.SU)(Ha.Z)(e)}]),key:t},[(0,a.Wm)(Uo,{workouts:_(e,(0,i.SU)(d)),sports:(0,i.SU)(s)},null,8,["workouts","sports"]),(0,a._)("div",go,(0,o.zw)((0,i.SU)(ke.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const No=Io;var zo=No;const wo={class:"calendar-days"};var ho=(0,a.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let r=0;r<7;r++)n.push((0,Ka.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",wo,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(n,((t,n)=>(0,a._)("div",{class:"calendar-day",key:n},(0,o.zw)((0,i.SU)(ke.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const fo=ho;var vo=fo;const Do={class:"calendar-header"},Co=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),ko=[Co],Po={class:"calendar-month"},Lo=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Mo=[Lo];var bo=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:s}=(0,i.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",Do,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},ko),(0,a._)("div",Po,[(0,a._)("span",null,(0,o.zw)((0,i.SU)(ke.Z)((0,i.SU)(r),"MMM yyyy",{locale:(0,i.SU)(s)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},Mo)]))}});const yo=bo;var Go=yo;const Wo={id:"user-calendar"},Fo={class:"calendar-card box"};var Yo=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,i.BK)(t),s="yyyy-MM-dd",u=(0,i.iH)(new Date),d=(0,i.iH)((0,Be.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),S=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(){d.value=(0,Be.yx)(u.value,t.user.weekm);const e={from:(0,ke.Z)(d.value.start,s),to:(0,ke.Z)(d.value.end,s),page:1,per_page:100,...Pa.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function _(){u.value=(0,xa.Z)(u.value,1),E()}function T(){u.value=(0,Ba.Z)(u.value,1),E()}return(0,a.wF)((()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Wo,[(0,a._)("div",Fo,[(0,a.Wm)(Go,{day:u.value,"locale-options":(0,i.SU)(S),onDisplayNextMonth:_,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(vo,{"start-date":d.value.start,"locale-options":(0,i.SU)(S)},null,8,["start-date","locale-options"]),(0,a.Wm)(zo,{currentDay:u.value,"end-date":d.value.end,sports:(0,i.SU)(r),"start-date":d.value.start,timezone:(0,i.SU)(o).timezone,workouts:(0,i.SU)(m),weekStartingMonday:(0,i.SU)(o).weekm},null,8,["currentDay","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const xo=Yo;var Bo=xo,Ko=n(3703),Zo=n(4135),$o=n(9996);const Ho={class:"user-month-stats"};var qo=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,i.BK)(t),s=new Date,l={duration:"week",start:(0,Ko.Z)(s),end:(0,Zo.Z)(s)},c=t.sports.map((e=>e.id));return(e,t)=>{const s=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ho,[(0,a.Wm)(s,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)($o.Z,{sports:(0,i.SU)(n),user:(0,i.SU)(r),"chart-params":l,"displayed-sport-ids":(0,i.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Vo=(0,P.Z)(qo,[["__scopeId","data-v-1bcddc12"]]);var jo=Vo,Xo=(n(1703),n(3649));const Jo=(e,t,n)=>{const r="km",a=n?Xo.Dl[r].defaultTarget:r;let o;switch(e.record_type){case"AS":case"MS":o=`${(0,Xo.sC)(+e.value,r,a,2)} ${a}/h`;break;case"FD":o=`${(0,Xo.sC)(+e.value,r,a,3)} ${a}`;break;case"LD":o=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Be.Jo)((0,Be.eB)(e.workout_date,t)).workout_date,workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:o}},Qo=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:ne.reduce(((e,a)=>{const o=t.find((e=>e.id===a.sport_id));return o&&o.label&&(void 0===e[o.translatedLabel]&&(e[o.translatedLabel]={label:o.label,color:o.color,records:[]}),e[o.translatedLabel].records.push(Jo(a,n,r))),e}),{}),ts={class:"records-card"},ns={class:"record-type"},rs={class:"record-value"},as={class:"record-date"};var os=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,i.BK)(t),{t:s}=(0,ie.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:s(`workouts.RECORD_${e.record_type}`)})})),t.sort(Qo)}return(e,t)=>{const s=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ts,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(s,{"sport-label":(0,i.SU)(n).label,color:(0,i.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,i.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",ns,(0,o.zw)(e.label),1),(0,a._)("span",rs,(0,o.zw)(e.value),1),(0,a._)("span",as,[(0,a.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const ss=(0,P.Z)(os,[["__scopeId","data-v-b5480ab0"]]);var is=ss;const ls=e=>((0,a.dD)("data-v-55c5cd2a"),e=e(),(0,a.Cn)(),e),cs={class:"user-records-section"},us={class:"section-title"},ds=ls((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),ms={class:"user-records"},Ss={key:0,class:"no-records"};var Es=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),r=(0,a.Fl)((()=>es(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",cs,[(0,a._)("div",us,[ds,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",ms,[0===Object.keys((0,i.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Ss,(0,o.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.keys((0,i.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(is,{sportTranslatedLabel:t,records:(0,i.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const _s=(0,P.Z)(Es,[["__scopeId","data-v-55c5cd2a"]]);var Ts=_s;const ps={id:"user-stats"};var As=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),{user:r}=(0,i.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),s=(0,a.Fl)((()=>d(o))),l="km",c=r.value.imperial_units?Xo.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,Xo.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2))));function d(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ps,[(0,a.Wm)(K,{icon:"calendar",value:(0,i.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(K,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,a.Wm)(K,{icon:"clock-o",value:(0,i.SU)(s).days,text:(0,i.SU)(s).duration},null,8,["value","text"]),(0,a.Wm)(K,{icon:"tags",value:(0,i.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,i.SU)(r).nb_sports)},null,8,["value","text"])]))}});const Os=As;var Us=Os;const Rs=e=>((0,a.dD)("data-v-20e19721"),e=e(),(0,a.Cn)(),e),gs={key:0,id:"dashboard",class:"view"},Is={class:"container mobile-menu"},Ns={class:"box"},zs=Rs((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),ws=[zs],hs=Rs((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),fs=[hs],vs=Rs((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Ds=[vs],Cs=Rs((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),ks=[Cs],Ps={class:"container"},Ls={class:"container dashboard-container"},Ms={class:"left-container dashboard-sub-container"},bs={class:"right-container dashboard-sub-container"},ys=Rs((()=>(0,a._)("div",{id:"bottom"},null,-1))),Gs={key:1,class:"app-loading"};var Ws=(0,a.aZ)({__name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),r=(0,a.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),s=(0,i.iH)("calendar");function u(e){s.value=e}return(e,t)=>{const l=(0,a.up)("Loader");return(0,i.SU)(n).username&&(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",gs,[(0,a._)("div",Is,[(0,a._)("div",Ns,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===s.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},ws,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===s.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},fs,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===s.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Ds,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===s.value}]),onClick:t[3]||(t[3]=e=>u("records"))},ks,2)])]),(0,a._)("div",Ps,[(0,a.Wm)(Us,{user:(0,i.SU)(n)},null,8,["user"])]),(0,a._)("div",Ls,[(0,a._)("div",Ms,[(0,a.Wm)(jo,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(Ts,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===s.value)})},null,8,["sports","user","class"])]),(0,a._)("div",bs,[(0,a.Wm)(Bo,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(Ya,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===s.value)})},null,8,["sports","user","class"])])]),ys])):((0,a.wg)(),(0,a.iD)("div",Gs,[(0,a.Wm)(l)]))}}});const Fs=(0,P.Z)(Ws,[["__scopeId","data-v-20e19721"]]);var Ys=Fs,xs=n(8273);const Bs={class:"not-found view"};var Ks=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Bs,[(0,a.Wm)(xs.Z)]))}});const Zs=Ks;var $s=Zs,Hs=n(6735);const qs={id:"loginOrRegister",class:"view"},Vs={class:"container"},js={class:"container-sub"},Xs={class:"container-sub"};var Js=(0,a.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",qs,[(0,a._)("div",Vs,[(0,a._)("div",js,[(0,a.Wm)(jr)]),(0,a._)("div",Xs,[(0,a.Wm)(Hs.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Qs=(0,P.Z)(Js,[["__scopeId","data-v-6a38125b"]]);var ei=Qs;const ti=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},ni=[{path:"/",name:"Dashboard",component:Ys},{path:"/login",name:"Login",component:ei,props:{action:"login"}},{path:"/register",name:"Register",component:ei,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8160))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,6266)),children:[{path:"",name:"UserProfile",component:zt,props:e=>({tab:ti(e.path)}),children:[{path:"",name:"UserInfos",component:wt.Z},{path:"preferences",name:"UserPreferences",component:kt},{path:"sports",name:"UserSportPreferences",component:fr,props:{isEdition:!1}}]},{path:"edit",name:"UserProfileEdition",component:bt,props:e=>({tab:ti(e.path)}),children:[{path:"",name:"UserInfosEdition",component:_n},{path:"account",name:"UserAccountEdition",component:jt},{path:"picture",name:"UserPictureEdition",component:hn},{path:"preferences",name:"UserPreferencesEdition",component:Jn},{path:"sports",name:"UserSportPreferencesEdition",component:fr,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,9161))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,7017))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,2525)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,2525)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:se},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:Ce},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:St}]},{path:"/about",name:"About",component:ra},{path:"/:pathMatch(.*)*",name:"not-found",component:$s}],ri=(0,r.p7)({history:(0,r.PO)("/"),routes:ni}),ai=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],oi=["/email-update","/about"];ri.beforeEach(((e,t,n)=>{vr.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(oi.includes(e.path))return n();if(vr.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&ai.includes(e.path))return n("/");if(vr.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||ai.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var si=ri},8602:function(e,t,n){"use strict";var r,a,o,s,i,l,c,u,d,m,S,E,_,T,p;n.d(t,{YN:function(){return g},SY:function(){return O},O8:function(){return U},gu:function(){return R},RT:function(){return I},aX:function(){return N}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(a||(a={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(s||(s={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(i||(i={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(l||(l={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(c||(c={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(d||(d={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(m||(m={})),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"}(E||(E={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(_||(_={})),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"}(T||(T={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(p||(p={}));var A=n(52);const O={ACTIONS:s,GETTERS:i,MUTATIONS:l},U={ACTIONS:c,GETTERS:u,MUTATIONS:d},R={ACTIONS:m,GETTERS:S,MUTATIONS:E},g={ACTIONS:r,GETTERS:a,MUTATIONS:o},I={ACTIONS:_,GETTERS:T,MUTATIONS:p},N={ACTIONS:A.tW,GETTERS:A.JP,MUTATIONS:A.CW}},12:function(e,t,n){"use strict";n.d(t,{Z:function(){return ae}});var r=n(3907),a=(n(1703),n(5167)),o=n(9669),s=n.n(o),i=n(2024);const l=s().create({baseURL:(0,i.k)()});var c=l,u=n(4809),d=n(8602);const m=(e,t)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?u.Z.push("/admin/users"):e.dispatch(d.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},S={[d.RT.ACTIONS.EMPTY_USER](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USER,{})},[d.RT.ACTIONS.EMPTY_USERS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[d.RT.ACTIONS.GET_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(d.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.GET_USERS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.UPDATE_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),a.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){m(e,{username:t.username,fromAdmin:!0})}},E=e=>{localStorage.removeItem("authToken"),e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},_={[d.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[d.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE))},[d.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(d.O8.ACTIONS.GET_SPORTS)):((0,i.S)(e,null),E(e))})).catch((t=>{(0,i.S)(e,t),E(e)}))},[d.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.LOGOUT](e){E(e)},[d.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),a.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.DELETE_ACCOUNT](e,t){m(e,t)},[d.YN.ACTIONS.DELETE_PICTURE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?u.Z.push("/account-confirmation/email-sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/password-updated"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},T={[d.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[d.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[d.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[d.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[d.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[d.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[d.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[d.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[d.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[d.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:_,getters:T,mutations:p};var U=O,R=n(2540);const{locale:g}=R.Z.global,I={[d.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[d.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(d.SY.MUTATIONS.UPDATE_LANG,t),g.value=t}},N={[d.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[d.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[d.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[d.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[d.SY.GETTERS.LANGUAGE]:e=>e.language,[d.SY.GETTERS.LOCALE]:e=>e.locale};var z=n(6287);const w={[d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[d.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[d.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=z.v1[t]}};var h=n(5826);const f={root:!0,language:"en",locale:h.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},v={[d.O8.ACTIONS.GET_SPORTS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(d.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},D={[d.O8.GETTERS.SPORTS]:e=>e.sports},C={[d.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},k={sports:[]},P={state:k,actions:v,getters:D,mutations:C};var L=P;const M={[d.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(d.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},b={[d.gu.GETTERS.USER_STATS]:e=>e.statistics},y={[d.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[d.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},G={statistics:{}},W={state:G,actions:M,getters:b,mutations:y};var F=W;const Y={[d.RT.GETTERS.USER]:e=>e.user,[d.RT.GETTERS.USERS]:e=>e.users,[d.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[d.RT.GETTERS.USERS_LOADING]:e=>e.loading,[d.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},x={[d.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[d.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[d.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[d.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[d.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[d.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},B={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},K={state:B,actions:S,getters:Y,mutations:x};var Z=K,$=n(52);const H=(e,t,n)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.aX.MUTATIONS[n],t.data.data.workouts),n===$.CW.SET_USER_WORKOUTS&&e.commit(d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},q={[d.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),H(e,t,$.CW.SET_CALENDAR_WORKOUTS)},[d.aX.ACTIONS.GET_USER_WORKOUTS](e,t){H(e,t,$.CW.SET_USER_WORKOUTS)},[d.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){H(e,t,$.CW.SET_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){H(e,t,$.CW.ADD_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";a.Z.get(`workouts/${t.workoutId}`).then((r=>{const o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(d.aX.MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(a.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),a.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,null)})).catch((t=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(d.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=new FormData;n.append("file",t.file),n.append("data",`{"sport_id": ${t.sport_id}, "notes": "${t.notes}"}`),a.Z.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},V={[d.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[d.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[d.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[d.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[d.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},j={[d.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[d.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[d.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[d.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[d.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[d.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[d.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},X={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},J={state:X,actions:q,getters:V,mutations:j};var Q=J;const ee={authUserModule:U,sportsModule:L,statsModule:F,usersModule:Z,workoutsModule:Q},te={state:f,actions:I,getters:N,mutations:w,modules:ee};var ne=te;const re=(0,r.MT)(ne);var ae=re},52:function(e,t,n){"use strict";var r,a,o;n.d(t,{CW:function(){return o},JP:function(){return a},tW:function(){return r}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(a||(a={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(3907);function a(){return(0,r.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Ne:function(){return c},fS:function(){return r},lM:function(){return d},pm:function(){return l}});n(6699);const r=["asc","desc"],a=1,o=10,s=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,i=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",d={};return d.page=s(e.page,a),d.per_page=s(e.per_page,o),d.order=i(e.order,r,u),d.order_by=i(e.order_by,t,n),"string"===typeof e.q?d.q=e.q:delete d.q,d},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),d=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,r.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,a.Z)(t);case"month":return(0,o.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},E=(e,t)=>{switch(e){case"week":return(0,s.Z)(t,7);case"year":return(0,i.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},_=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),T=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),s=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:s}),end:(0,u.Z)(a,{weekStartsOn:s})}},p=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t),workout_time:(0,d.Z)(e,n)})},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},j:function(){return o}});const r=["bytes","KB","MB","GB","TB"],a=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const a=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?`${a}${o}`:{size:a,suffix:o}},o=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return o},k:function(){return a}});n(6699);var r=n(8602);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{const a=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(r.SY.MUTATIONS.SET_ERROR_MESSAGES,a.includes("\n")?a.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${a}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return u},v1:function(){return i},zK:function(){return l}});var r=n(879),a=n(5826),o=n(5830),s=n(2540);const i={de:r.Z,en:a.Z,fr:o.Z},l={de:"Deutsch",en:"English",fr:"Français"},{availableLocales:c}=s.Z.global,u=c.map((e=>({label:l[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return i},Yx:function(){return a},Zo:function(){return r},xH:function(){return s}});n(6699);const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},a=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:r[e.label])),t},o=(e,t)=>{const n=e.translatedLabel.toLowerCase(),r=t.translatedLabel.toLowerCase();return n>r?1:ne.filter((e=>"all"===n||(r.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(o),i=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return h},aZ:function(){return w},v1:function(){return z}});n(6699);var r=n(4850),a=n(8148),o=n(9319),s=n(584),i=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),S=n(7982),E=n(3500),_=n(1640),T=n(6558),p=n(631),A=n(3649);const O={week:{api:"yyyy-MM-dd",chart:"dd/MM/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},U=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],R=(e,t)=>{const n=[];for(let r=(0,T.Nh)(e.duration,e.start,t);r<=e.end;r=(0,T.xA)(e.duration,r))n.push(r);return n},g=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},I=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:p.Zo[e.label];t.average_speed.push(g(e.label,n,!0)),t.nb_workouts.push(g(e.label,n)),t.total_distance.push(g(e.label,n)),t.total_duration.push(g(e.label,n)),t.total_ascent.push(g(e.label,n)),t.total_descent.push(g(e.label,n))})),t},N=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,A.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},z=(e,t,n,a,o,s)=>{const i=R(e,t),l=O[e.duration],c=n.filter((e=>a.includes(e.id))),u=[],d=I(c),m={};return c.map((e=>m[e.label]=e.id)),i.map((e=>{const t=(0,r.Z)(e,l.api),n=(0,r.Z)(e,l.chart);u.push(n),U.map((e=>{d[e].map((n=>{n.data.push(o!=={}&&t in o&&m[n.label]in o[t]?N(e,o[t][m[n.label]][e],s):"average_speed"===e?null:0)}))}))})),{labels:u,datasets:d}},w=(e,t,n)=>{const r=n?1:0,m="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,s.Z)((0,i.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,i.Z)(e,11)),S="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:S,start:m}},h=(e,t,n)=>{const{duration:r,start:T,end:p}=e,A=n?1:0;return{duration:r,end:"year"===r?(0,c.Z)(t?(0,o.Z)(p,1):(0,m.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,S.Z)(p,1):(0,E.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(p,1):(0,_.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,m.Z)(T,1)):"week"===r?(0,s.Z)(t?(0,S.Z)(T,1):(0,E.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(T,1):(0,_.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},f3:function(){return s},sC:function(){return o}});const r={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},a={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},o=(e,t,n,o=3)=>{const s=r[t],i=r[n],l=e*s.multiplier*a[s.system][i.system]/i.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},s=(e,t,n)=>{const a=n?r[e].defaultTarget:e;return n?o(t,e,a,2):t}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return o},EX:function(){return a},eR:function(){return s}});var r=n(3649);const a=(e,t,n)=>{const a={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},o=[],s=[],i=[];return e.map((e=>{o.push(e.distance),s.push(e.duration),a.speed.data.push((0,r.f3)("km",e.speed,n)),a.elevation.data.push((0,r.f3)("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:s,datasets:a,coordinates:i}},o=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},s={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={class:"card"},o={class:"card-title"},s={class:"card-content"};function i(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",s,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",i]]);var d=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262);const s={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var S=(0,r.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:S,query:E,sort:_,message:T}=(0,o.BK)(n),p=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,r._)("select",{name:"order_by",id:"order_by",value:(0,o.SU)(E).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(S),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`${(0,o.SU)(T)}.${t.toUpperCase()}`)),9,l)))),128))],40,i)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,r._)("select",{name:"order",id:"order",value:(0,o.SU)(E).order,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(_),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,r._)("select",{name:"per_page",id:"per_page",value:(0,o.SU)(E).per_page,onChange:A},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(p,(e=>(0,r._)("option",{value:e,key:e},(0,a.zw)(e),9,m))),64))],40,d)])]))}}),E=n(3744);const _=(0,E.Z)(S,[["__scopeId","data-v-72463173"]]);var T=_},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),s=[o];function i(e,t,n,o,i,l){return(0,r.wg)(),(0,r.iD)("svg",a,s)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",i]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=n(3577);const s={id:"error"},i={class:"error-content"};var l=(0,r.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",i,[(0,r._)("h1",null,(0,o.zw)((0,a.SU)(l)),1),(0,r._)("p",null,(0,o.zw)((0,a.SU)(c)),1),(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,a.SU)(u))),class:"upper"},(0,o.zw)((0,a.SU)(n)),1)):(0,r.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var d=u,m=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.j4)(d,{title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"]))}});const S=m;var E=S},6514:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262),s=n(2766);const i=e=>((0,r.dD)("data-v-f38ea1b8"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=i((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=i((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var S=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:S}=(0,o.BK)(t);function E(e,t){const n=Object.assign({},S.value);return n.page=t?e+t:e,n}return(e,t)=>{const S=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("nav",l,[(0,r._)("ul",c,[(0,r._)("li",{class:(0,a.C_)(["page-prev",{disabled:!(0,o.SU)(n).has_prev}])},[(0,r.Wm)(S,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,-1)},disabled:!(0,o.SU)(n).has_prev},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(s.lM)((0,o.SU)(n).pages,(0,o.SU)(n).page),(e=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,a.C_)(["page",{active:e===(0,o.SU)(n).page}])},["..."===e?((0,r.wg)(),(0,r.iD)("span",d," ... ")):((0,r.wg)(),(0,r.j4)(S,{key:1,class:"page-link",to:{path:(0,o.SU)(i),query:E(+e)}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,r._)("li",{class:(0,a.C_)(["page-next",{disabled:!(0,o.SU)(n).has_next}])},[(0,r.Wm)(S,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,1)},disabled:!(0,o.SU)(n).has_next},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),m]))])),_:3},8,["to","disabled"])],2)])])}}}),E=n(3744);const _=(0,E.Z)(S,[["__scopeId","data-v-f38ea1b8"]]);var T=_},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(2262),o=n(9963),s=n(3577),i=n(3257),l=n(8602),c=n(9917);const u=async e=>{const t=await n.e(881).then(n.bind(n,410)),r=await n.e(881).then(n.bind(n,8288)),a=await n.e(881).then(n.bind(n,6947)),o={en:r,fr:a},s=o[e],l={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...s.default.dictionary}};i.Mu.setOptions(l)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},S=["value"],E={key:0,class:"password-strength-details"},_={class:"password-strength-value"},T={key:0,class:"info-box"},p={class:"password-feedback"};var A=(0,r.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,a.BK)(t),o=(0,c.o)(),A=(0,r.Fl)((()=>o.getters[l.SY.GETTERS.LANGUAGE])),O=(0,r.Fl)((()=>o.getters[l.YN.GETTERS.IS_SUCCESS])),U=(0,a.iH)(0),R=(0,a.iH)(""),g=(0,a.iH)([]),I=(0,a.iH)("0% 100%");function N(e){const t=(0,i.tu)(e);U.value=t.score,R.value=d(U.value),g.value=t.feedback.suggestions,I.value=100*U.value/4+"% 100%"}return(0,r.wF)((async()=>await u(A.value))),(0,r.YP)((()=>A.value),(async e=>{await u(e)})),(0,r.YP)((()=>n.value),(async e=>{O.value?R.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,s.C_)(["password-slider",`strength-${U.value}`]),style:(0,s.j5)({backgroundSize:I.value}),type:"range",value:U.value,min:"0",max:"4",step:"1"},null,14,S),R.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("span",_,(0,s.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.${R.value}`)),1),g.value.length>0?((0,r.wg)(),(0,r.iD)("div",T,[(0,r._)("ul",p,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(g.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),O=n(3744);const U=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var R=U;const g=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),I={class:"password-input"},N=["id","disabled","placeholder","required","type"],z={key:0,class:"form-info"},w=g((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var h=(0,r.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:i,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,a.BK)(n),S=(0,a.iH)(!1),E=(0,a.iH)("");function _(){S.value=!S.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(E.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",I,[(0,r.wy)((0,r._)("input",{id:(0,a.SU)(c),disabled:(0,a.SU)(l),placeholder:(0,a.SU)(d),required:(0,a.SU)(m),type:S.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>E.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,N),[[o.YZ,E.value]]),(0,r._)("div",{class:"show-password",onClick:_},[(0,r.Uk)((0,s.zw)(e.$t(`user.${S.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,s.C_)(["fa","fa-eye"+(S.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(i)?((0,r.wg)(),(0,r.iD)("div",z,[w,(0,r.Uk)(" "+(0,s.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(i)?((0,r.wg)(),(0,r.j4)(R,{key:1,password:E.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const f=(0,O.Z)(h,[["__scopeId","data-v-5a126514"]]);var v=f},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),s=n(2024);const i=(0,r._)("div",{class:"map-attribution"},[(0,r._)("span",{class:"map-attribution-text"},"©"),(0,r._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,r.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,o.BK)(t),l=`${(0,s.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,a.C_)(["static-map",{"display-hover":(0,o.SU)(n)}])},[(0,o.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,src:l,alt:""})):((0,r.wg)(),(0,r.iD)("div",{key:1,class:"bg-map-image",style:(0,a.j5)({backgroundImage:`url(${l})`})},null,4)),i],2))}});const c=l;var u=c},9996:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(6252),a=n(3577);const o={class:"start-chart"},s={key:0},i={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},S=["checked"],E={key:1},_=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,U){const R=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",s,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("div",l,[(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DISTANCE")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DURATION")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,d),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",m,[(0,r._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,S),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",E,[(0,r._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,_),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.ASCENT")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",T,[(0,r._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,p),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DESCENT")),1)])):(0,r.kq)("",!0)]),e.labels.length>0?((0,r.wg)(),(0,r.j4)(R,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(4850),U=n(2262);const R={class:"chart"};function g(e,t,n,a,o,s){const i=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(i,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var I=n(6518),N=n(3324);const z=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const a=String(Math.floor(e/60)).padStart(2,"0"),o=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===r?"":`${r}h `}${a}m ${o}s`:`${"00"===r?"":`${r}:`}${a}:${o}`};var w=n(3649);const h=(e,t,n,r=!0)=>{const a="km",o=n?w.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return z(t,r);case"total_distance":return`${t.toFixed(2)} ${o}`;case"total_ascent":case"total_descent":return`${(t/1e3).toFixed(2)} ${o}`;default:return t.toString()}};var f=(0,r.aZ)({name:"Chart",components:{BarChart:I.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,N.QT)();function n(e){return isNaN(e)?0:+e}function a(e,t){return n(e)+n(t)}const o=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),s=(0,r.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return h(e.displayedData,+t,e.useImperialUnits,!1)}},afterFit:function(t){t.width=e.fullStats?75:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return h(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>a(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?h(e.displayedData,t,e.useImperialUnits,!1):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=h(e.displayedData,n.parsed.y,e.useImperialUnits)),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+h(e.displayedData,r,e.useImperialUnits)}}}}}))),{barChartProps:i}=(0,I.xZ)({chartData:o,options:s});return{barChartProps:i}}}),v=n(3744);const D=(0,v.Z)(f,[["render",g]]);var C=D,k=n(8602),P=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:C},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)(),n=(0,U.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[k.gu.GETTERS.USER_STATS])),o=(0,r.Fl)((()=>(0,L.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,a.value,e.user.imperial_units)));function s(n){t.dispatch(k.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function l(e,t){return{from:(0,O.Z)(e.start,"yyyy-MM-dd"),to:(0,O.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,r.wF)((()=>s(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{s(l(t,e.user))})),{datasets:(0,r.Fl)((()=>o.value.datasets[n.value])),labels:(0,r.Fl)((()=>o.value.labels)),emptyStats:(0,r.Fl)((()=>0===Object.keys(a.value).length)),displayedData:n,updateDisplayData:i}}});const b=(0,v.Z)(M,[["render",A],["__scopeId","data-v-58e4e79d"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(6252),a=n(2262),o=n(3577),s=n(6595),i=n(8602),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},S={class:"user-stat"},E={class:"stat-number"},_={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},U={class:"stat-label"};var R=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),R=(0,l.o)(),g=(0,r.Fl)((()=>R.getters[i.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const i=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(s.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",d,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",m,[(0,r._)("div",S,[(0,r._)("span",E,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",_,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(i,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(g).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(g).imperial_units?"miles":"km"),1)]),(0,r._)("div",A,[(0,r._)("span",O,(0,o.zw)((0,a.SU)(n).nb_sports),1),(0,r._)("span",U,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),g=n(3744);const I=(0,g.Z)(R,[["__scopeId","data-v-20291951"]]);var N=I},7408:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var r=n(6252),a=n(2262),o=n(3577),s=n(9963),i=n(4850),l=n(8602),c=n(9917);const u={id:"user-infos",class:"description-list"},d={key:1,class:"info-box success-message"},m={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},E={class:"form-items",for:"email"},_={class:"form-buttons"},T={class:"confirm",type:"submit"},p=["onClick"],A={key:5},O={class:"user-bio"},U={key:0,class:"profile-buttons"},R=["onClick"],g={key:1,class:"profile-buttons"};var I=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:I,fromAdmin:N}=(0,a.BK)(t),z=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),w=(0,r.Fl)((()=>t.user.created_at?(0,i.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),h=(0,r.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),"dd/MM/yyyy"):"")),f=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),v=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),D=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),C=(0,a.iH)(""),k=(0,a.iH)(!1),P=(0,a.iH)(!1),L=(0,a.iH)(""),M=(0,a.iH)("");function b(e){C.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function y(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function G(e){M.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function W(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function F(){B(),L.value=I.value.email_to_confirm?I.value.email_to_confirm:"",P.value=!0,M.value="email-update"}function Y(){L.value="",P.value=!1}function x(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:L.value})}function B(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),M.value=""}return(0,r.Ah)((()=>B())),(0,r.YP)((()=>f.value),(e=>{e&&(b(""),Y())})),(e,t)=>{const n=(0,r.up)("Modal"),i=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",u,[C.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===C.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(I).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===C.value?y((0,a.SU)(I).username):G((0,a.SU)(I).username)),onCancelAction:t[1]||(t[1]=e=>b(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(f)?((0,r.wg)(),(0,r.iD)("div",d,(0,o.zw)(e.$t(`admin.${"password-reset"===M.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(I).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(i,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(v)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(v)},null,8,["message"])):(0,r.kq)("",!0),P.value?((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("form",{class:(0,o.C_)({errors:k.value}),onSubmit:t[4]||(t[4]=(0,s.iM)((e=>x((0,a.SU)(I).username)),["prevent"]))},[(0,r._)("label",S,[(0,r.Uk)((0,o.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,r.wy)((0,r._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,a.SU)(I).email=e),disabled:""},null,512),[[s.nr,(0,a.SU)(I).email]])]),(0,r._)("label",E,[(0,r.Uk)((0,o.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>L.value=e)},null,512),[[s.nr,L.value]])]),(0,r._)("div",_,[(0,r._)("button",T,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,s.iM)(Y,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,p)])],34)])):((0,r.wg)(),(0,r.iD)("div",A,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(w)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(I).first_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(I).last_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(I).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",O,(0,o.zw)((0,a.SU)(I).bio),1)]),(0,a.SU)(N)?((0,r.wg)(),(0,r.iD)("div",U,[(0,a.SU)(z).username!==(0,a.SU)(I).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,s.iM)((e=>b("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(I).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,s.iM)((e=>W((0,a.SU)(I).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(z).username!==(0,a.SU)(I).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,s.iM)(F,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,R)):(0,r.kq)("",!0),(0,a.SU)(z).username!==(0,a.SU)(I).username&&(0,a.SU)(D).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,s.iM)((e=>b("reset")),["prevent"]))},(0,o.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",g,[(0,r._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,o.zw)(e.$t("user.PROFILE.EDIT")),1),(0,r._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]))])}}}),N=n(3744);const z=(0,N.Z)(I,[["__scopeId","data-v-794e58e7"]]);var w=z},6735:function(e,t,n){"use strict";n.d(t,{Z:function(){return D}});n(6699);var r=n(6252),a=n(3577),o=n(2262),s=n(9963),i=n(2201),l=n(8403),c=n(8602),u=n(9917);const d=e=>((0,r.dD)("data-v-bf09a420"),e=e(),(0,r.Cn)(),e),m={id:"user-form"},S={key:2,class:"info-box success-message"},E={class:"form-items"},_=["disabled","placeholder"],T={key:1,class:"form-info"},p=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},U=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R=["disabled"],g={key:3},I={key:0},N={key:4},z={class:"account"},w={key:5};var h=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:h}=(0,o.BK)(t),f=(0,o.qj)({username:"",email:"",password:""}),v=(0,r.Fl)((()=>G(t.action))),D=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),C=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),k=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_SUCCESS])),P=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!P.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!P.value.is_email_sending_enabled)),y=(0,o.iH)(!1);function G(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function W(){y.value=!0}function F(e){f.password=e}function Y(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:f.password,token:t.token}):d.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return d.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:f.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:f.email});default:f["language"]=L.value,d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:f,redirectUrl:n.query.from})}}function x(){f.username="",f.email="",f.password=""}return(0,r.YP)((()=>n.path),(async()=>{d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),d.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),d.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,x()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),i=(0,r.up)("router-link"),c=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",{id:"user-auth-form",class:(0,a.C_)(`${["reset","reset-request"].includes((0,o.SU)(h))?(0,o.SU)(h):"user-form"}`)},[(0,r._)("div",m,[(0,r._)("div",{class:(0,a.C_)(["form-box",{disabled:(0,o.SU)(M)}])},[(0,o.SU)(M)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(b)?((0,r.wg)(),(0,r.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(k)||(0,o.SU)(C)?((0,r.wg)(),(0,r.iD)("div",S,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(C)?"REGISTRATION"+((0,o.SU)(P).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,a.C_)({errors:y.value}),onSubmit:t[2]||(t[2]=(0,s.iM)((e=>Y((0,o.SU)(h))),["prevent"]))},[(0,r._)("div",E,["register"===(0,o.SU)(h)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"username",disabled:(0,o.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:W,"onUpdate:modelValue":t[0]||(t[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,_)),[[s.nr,f.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(h)?((0,r.wg)(),(0,r.iD)("div",T,[p,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,r.kq)("",!0),"reset"!==(0,o.SU)(h)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:2,id:"email",disabled:(0,o.SU)(M)||(0,o.SU)(b),required:"",onInvalid:W,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>f.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[s.nr,f.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(h))?((0,r.wg)(),(0,r.iD)("div",O,[U,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,r.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,o.SU)(h))?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(l.Z,{key:4,disabled:(0,o.SU)(M),required:!0,placeholder:"reset"===(0,o.SU)(h)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,o.SU)(h)),onUpdatePassword:F,onPasswordError:W},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,r._)("button",{type:"submit",disabled:(0,o.SU)(M)||(0,o.SU)(b)},(0,a.zw)(e.$t((0,o.SU)(v))),9,R)],34),"login"===(0,o.SU)(h)?((0,r.wg)(),(0,r.iD)("div",g,[(0,r.Wm)(i,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",I,"-")):(0,r.kq)("",!0),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(i,{key:1,class:"links",to:"/password-reset/request"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"register"===(0,o.SU)(h)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",z,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(i,{class:"links",to:"/login"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,r.kq)("",!0),["login","register"].includes((0,o.SU)(h))&&(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",w,[(0,r.Wm)(i,{class:"links",to:"/account-confirmation/resend"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,r.kq)("",!0),(0,o.SU)(D)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(D)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),f=n(3744);const v=(0,f.Z)(h,[["__scopeId","data-v-bf09a420"]]);var D=v},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(6252),a=n(2262),o=n(2024);const s={class:"user-picture"},i=["alt","src"],l={key:1,class:"no-picture"},c=(0,r._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var d=(0,r.aZ)({__name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.picture?`${(0,o.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[""!==(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,a.SU)(n)},null,8,i)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const m=d;var S=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577);const o={class:"no-workouts box"};function s(e,t){const n=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r._)("div",null,[(0,r.Uk)((0,a.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,r.Wm)(n,{to:"/workouts/add"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var i=n(3744);const l={},c=(0,i.Z)(l,[["render",s],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var r={"./de/de.ts":27,"./en/en.ts":9350,"./fr/fr.ts":1079};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4612}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var s=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(i=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var s={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){s[e]=function(){return r[e]}}));return s["default"]=function(){return r},n.d(o,s),o}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile",881:"password"}[e]||e)+"."+{24:"90b2d965",93:"8adb4a90",193:"1ad194e3",243:"b773e58b",328:"b19d15cc",401:"22600b70",431:"8c82cbac",633:"69dd3969",845:"12bdb140",858:"6dd1c30f",881:"332510b4"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"d0356685",328:"73df498d",401:"fa95a9cb",845:"203e78e2"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(r,a,o,s){if(e[r])e[r].push(a);else{var i,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u {\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default authApi\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: LocaleMessages = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz\"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellkode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])},\n \"USERS\": {\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 \"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 }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\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 on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration.\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"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([\"Lösche meinen Account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Editieren\"])},\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([\"Einloggen\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])}\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 \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\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}","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 \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\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ätigungsemail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest Du Dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\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_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\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 \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])},\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 }\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 \"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 \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\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_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regirierungsdatum\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"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 \"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 \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sende Email zur Kontobestätigung erneut\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])},\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}","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 \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\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 \"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 \"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 \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\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_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([\"remaining characters\"])},\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 \"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 \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\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 },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .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 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 sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"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 }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"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 \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"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 \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems 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}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\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_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])},\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 }\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 \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"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_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"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 \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"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 \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\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}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_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 \"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 \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import 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 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 sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\n \"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([\"Nombre max. de fichiers dans une archive zip \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])},\n \"USERS\": {\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 \"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 }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"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 \"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 \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"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 \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"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 \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
                                                                Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"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 votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email 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 de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se dé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_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe \"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\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 \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\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 \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])},\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 }\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 \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"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 email 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_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances \"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email.\"])},\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 email fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau l'email de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"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}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_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 \"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 \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import 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 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 sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n }\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-95c1cc02\"),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=95c1cc02&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-95c1cc02\"]])\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-7fb0a1e7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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 }\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\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((text).value = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, text.value]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(text.value.length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=7fb0a1e7&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-7fb0a1e7\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f46ff1d6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/_createTextVNode(\" \" + /*#__PURE__*/_toDisplayString(' ') + \" \")\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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 _hoisted_1,\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/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-2d3b4eac\"),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=2d3b4eac&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-2d3b4eac\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2659a79a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n }\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 11 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e8fcfaba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Modal',\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null }\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24ec93e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"admin_contact\" }\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = { for: \"max_users\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = { class: \"user-limit-help\" }\nconst _hoisted_9 = { class: \"info-box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { for: \"max_single_file_size\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { for: \"max_zip_file_size\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { for: \"gpx_limit_import\" }\nconst _hoisted_16 = [\"disabled\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_18 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n toRefs,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminApplication',\n props: {\n appConfig: null,\n edition: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean }\n\n \n const { edition } = toRefs(props)\n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n admin_contact: '',\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ADMIN_CONTACT')) + \": \", 1),\n (!_unref(edition) && !appData.admin_contact)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"no-contact\",\n value: _ctx.$t('admin.APP_CONFIG.NO_CONTACT_EMAIL'),\n disabled: \"\"\n }, null, 8, _hoisted_4))\n : _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"admin_contact\",\n name: \"admin_contact\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appData.admin_contact) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_5)), [\n [_vModelText, appData.admin_contact]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appData.max_users) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_7), [\n [_vModelText, appData.max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appData.max_single_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_12), [\n [_vModelText, appData.max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((appData.max_zip_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_14), [\n [_vModelText, appData.max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((appData.gpx_limit_import) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_16), [\n [_vModelText, appData.gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(edition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", _hoisted_18, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_19)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatCard',\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n }\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, toRefs } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppStatsCards',\n props: {\n appStatistics: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n appStatistics: IAppStatistics\n }\n\n \n\n const { appStatistics } = toRefs(props)\n const uploadDirSize = computed(() =>\n getReadableFileSize(appStatistics.value.uploads_dir_size, false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(appStatistics).users,\n text: _ctx.$t('admin.USER', _unref(appStatistics).users)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(appStatistics).sports,\n text: _ctx.$t('workouts.SPORT', _unref(appStatistics).sports)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(appStatistics).workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(appStatistics).workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0dd66f89\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = { class: \"application-config-details\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = { class: \"registration-status\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"email-sending-status\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-exclamation-triangle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminMenu',\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics }\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_4,\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1),\n (!_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.EMAIL_SENDING_DISABLED')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d62af67\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"text-center\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminSports',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"title\", \"sport-label\", \"color\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withKeys as _withKeys, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-627a8e91\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"users-filters\" }\nconst _hoisted_2 = { class: \"search-username\" }\nconst _hoisted_3 = [\"onKeyup\", \"placeholder\"]\n\nimport { ref } from 'vue'\n import { useRoute } from 'vue-router'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UsersNameFilter',\n emits: ['filterOnUsername'],\n setup(__props, { emit }) {\n\n const route = useRoute()\n const username = ref(route.query.q ? route.query.q : '')\n\n \n function searchUsers() {\n if (username.value !== '') {\n emit('filterOnUsername', username)\n }\n }\n function resetFilter() {\n username.value = ''\n emit('filterOnUsername', username.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"username\",\n name: \"username\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n onKeyup: _withKeys(searchUsers, [\"enter\"]),\n placeholder: _ctx.$t('user.FILTER_ON_USERNAME')\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n username.value,\n void 0,\n { trim: true }\n ]\n ]),\n (username.value !== '')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-times\",\n \"aria-hidden\": \"true\",\n onClick: resetFilter\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-search\", { 'fa-disabled': username.value === '' }]),\n \"aria-hidden\": \"true\",\n onClick: searchUsers\n }, null, 2)\n ]))\n}\n}\n\n})","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4735c10f\"),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 { format } from 'date-fns'\n import {\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 { getDateWithTZ } 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(format)(\n _unref(getDateWithTZ)(user.created_at, _unref(authUser).timezone),\n 'dd/MM/yyyy HH:mm'\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=4735c10f&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-4735c10f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean }\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab) === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=40025245&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e26535e0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=e26535e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e26535e0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const language = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(language)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n }\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'ACCOUNT', 'PICTURE', 'PREFERENCES', 'SPORTS']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37b8c4c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = {\n class: \"form-items\",\n for: \"password-field\"\n}\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"new-password-field\"\n}\nconst _hoisted_9 = { class: \"form-buttons\" }\nconst _hoisted_10 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n watch,\n onUnmounted,\n } from 'vue'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile, IUserAccountPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAccountEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n const userForm: IUserAccountPayload = reactive({\n email: '',\n password: '',\n new_password: '',\n })\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const emailUpdate = ref(false)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const formErrors = ref(false)\n const displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function invalidateForm() {\n formErrors.value = true\n }\n function updateUserForm(user: IUserProfile) {\n userForm.email = user.email\n }\n function updatePassword(password: string) {\n userForm.password = password\n }\n function updateNewPassword(new_password: string) {\n userForm.new_password = new_password\n }\n function updateProfile() {\n const payload: IUserAccountPayload = {\n email: userForm.email,\n password: userForm.password,\n }\n if (userForm.new_password) {\n payload.new_password = userForm.new_password\n }\n emailUpdate.value = userForm.email !== user.value.email\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT, payload)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n onUnmounted(() => {\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\n watch(\n () => isSuccess.value,\n async (isSuccessValue) => {\n if (isSuccessValue) {\n updatePassword('')\n updateNewPassword('')\n updateUserForm(user.value)\n formErrors.value = false\n }\n }\n )\n watch(\n () => user.value.email,\n async () => {\n updateUserForm(user.value)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n emailUpdate.value && _unref(appConfig).is_email_sending_enabled ? 'EMAIL_' : ''\n }UPDATE`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.email) = $event)),\n disabled: _unref(loading),\n required: true,\n onInvalid: invalidateForm\n }, null, 40, _hoisted_6), [\n [_vModelText, userForm.email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.CURRENT_PASSWORD')) + \"* \", 1),\n _createVNode(PasswordInput, {\n id: \"password-field\",\n disabled: _unref(loading),\n password: userForm.password,\n required: true,\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.NEW_PASSWORD')) + \" \", 1),\n _createVNode(PasswordInput, {\n id: \"new-password-field\",\n disabled: _unref(loading),\n checkStrength: true,\n password: userForm.new_password,\n isSuccess: false,\n onUpdatePassword: updateNewPassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", _hoisted_10, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 42, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b6bacea0\"),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 } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\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: IUserProfile\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 ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\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=b6bacea0&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-b6bacea0\"]])\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 } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, 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 { IUserProfile, IUserPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'MONDAY',\n value: true,\n },\n {\n label: 'SUNDAY',\n value: false,\n },\n ]\n const imperialUnits = [\n {\n label: 'IMPERIAL',\n value: true,\n },\n {\n label: 'METRIC',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n\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.FIRST_DAY_OF_WEEK')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"weekm\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.weekm) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"option\", {\n value: start.value,\n key: start.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 9, _hoisted_10)\n }), 64))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.weekm]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"imperial_units\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.imperial_units) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"option\", {\n value: unit.value,\n key: unit.value\n }, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 9, _hoisted_13)\n }), 64))\n ], 8, _hoisted_12), [\n [_vModelSelect, userForm.imperial_units]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4775544a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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 sportColors = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color ? sport.color : sportColors[sport.label]\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: 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=4775544a&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-4775544a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74257266\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about-text\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-book fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-github fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = {\n href: \"https://github.com/SamR1/FitTrackee\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-balance-scale fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://choosealicense.com/licenses/agpl-3.0/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \" AGPLv3 \", -1))\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-envelope-o fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\"href\"]\n\nimport { ComputedRef, computed, capitalize } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'About',\n setup(__props) {\n\n const store = useStore()\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('about.FITTRACKEE_DESCRIPTION')\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", null, [\n _hoisted_3,\n _createElementVNode(\"a\", _hoisted_4, _toDisplayString(capitalize(_ctx.$t('common.DOCUMENTATION'))), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_5,\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(_ctx.$t('about.SOURCE_CODE')), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_7,\n _createVNode(_component_i18n_t, { keypath: \"about.FITTRACKEE_LICENSE\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n (_unref(appConfig).admin_contact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(appConfig).admin_contact}`\n }, _toDisplayString(_ctx.$t('about.CONTACT_ADMIN')), 9, _hoisted_11)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=74257266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74257266\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bffb50d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"about\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub about-details\" }\n\nimport About from '@/components/About.vue'\n import BikePic from '@/components/BikePic.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AboutView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(About)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c9d1f10c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\"/ \")\nconst _hoisted_18 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_20 = { class: \"data-values\" }\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\" +\")\nconst _hoisted_22 = /*#__PURE__*/_createTextVNode(\"/- \")\n\nimport { Locale, format, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport }\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(format)(\n _unref(getDateWithTZ)(_unref(workout).workout_date, _unref(user).timezone),\n 'dd/MM/yyyy HH:mm'\n )\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_17,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, [\n _hoisted_19,\n _createElementVNode(\"div\", _hoisted_20, [\n _hoisted_21,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_22,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=c9d1f10c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c9d1f10c\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-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 workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n\n \n\n const { workout, sportLabel, 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.map(\n (record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`\n )\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=7de0052b&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 workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n workouts: IWorkout[]\n sports: ISport[]\n }\n\n \n\n const { workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=4663dbac&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n\n \n\n const {\n currentDay,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports)\n }, null, 8, [\"workouts\", \"sports\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=73426002&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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 \"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\", \"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=20115a7c&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 { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean\n): Record => {\n const unitFrom: TUnit = 'km'\n const unitTo: TUnit = useImperialUnits\n ? units[unitFrom].defaultTarget\n : unitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n unitFrom,\n unitTo,\n 2\n )} ${unitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(+record.value, unitFrom, unitTo, 3)} ${unitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatWorkoutDate(getDateWithTZ(record.workout_date, tz))\n .workout_date,\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const 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): IRecordsBySports =>\n records.reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits)\n )\n }\n return sportList\n }, {})\n","import { defineComponent as _defineComponent } from 'vue'\nimport { 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-b5480ab0\"),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=b5480ab0&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-b5480ab0\"]])\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-55c5cd2a\"),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 )\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=55c5cd2a&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-55c5cd2a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { 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 defaultUnitFrom: TUnit = 'km'\n const unitTo: TUnit = user.value.imperial_units\n ? units[defaultUnitFrom].defaultTarget\n : defaultUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, defaultUnitFrom, unitTo, 2)\n : parseFloat(user.value.total_distance.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(unitTo) === 'mi' ? 'miles' : _unref(unitTo)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6c24b4fa&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20e19721\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"dashboard\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container mobile-menu\" }\nconst _hoisted_3 = { class: \"box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-calendar\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-bar-chart\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = { class: \"container\" }\nconst _hoisted_13 = { class: \"container dashboard-container\" }\nconst _hoisted_14 = { class: \"left-container dashboard-sub-container\" }\nconst _hoisted_15 = { class: \"right-container dashboard-sub-container\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_17 = {\n key: 1,\n class: \"app-loading\"\n}\n\nimport { ComputedRef, Ref, computed, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { 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 function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(UserStatsCards, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(UserMonthStats, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'chart') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(UserRecords, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'records') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(UserCalendar, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'calendar') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(Timeline, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'timeline') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ])\n ]),\n _hoisted_16\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createVNode(_component_Loader)\n ]))\n}\n}\n\n})","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=20e19721&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-20e19721\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"not-found view\" }\n\nimport NotFound from '@/components/Common/NotFound.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFoundView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(NotFound)\n ]))\n}\n}\n\n})","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6a38125b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __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=6a38125b&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-6a38125b\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport 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 UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n 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 },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeAuthUserData(context)\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context\n .dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n .then(() => router.push('/profile/preferences'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE](\n context: ActionContext,\n language: string\n ): void {\n document.querySelector('html')?.setAttribute('lang', language)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, language)\n locale.value = language\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat),\n workout_time: format(dateTime, timeFormat),\n }\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { de, enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate } from '@/utils/dates'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'dd/MM/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(key, dateFormat.chart)\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n apiStats !== {} &&\n date in apiStats &&\n sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72463173\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'FilterSelects',\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b60bfa80\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"error\" }\nconst _hoisted_2 = { class: \"error-content\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n title: string\n message: string\n buttonText: string\n path?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Error',\n props: {\n title: null,\n message: null,\n buttonText: null,\n path: { default: '/' }\n },\n setup(__props: any) {\n\nconst props = __props as { title: string, message: string, buttonText: string, path: string }\n\n \n const { buttonText, title, message, path } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(message)), 1),\n (_unref(buttonText))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push(_unref(path)))),\n class: \"upper\"\n }, _toDisplayString(_unref(buttonText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { toRefs, withDefaults } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFound',\n props: {\n target: { default: 'PAGE' }\n },\n setup(__props: any) {\n\nconst props = __props as { target: string }\n\n \n const { target } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Error, {\n title: \"404\",\n message: _ctx.$t(`error.NOT_FOUND.${_unref(target)}`),\n \"button-text\": _ctx.$t('common.HOME')\n }, null, 8, [\"message\", \"button-text\"]))\n}\n}\n\n})","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f38ea1b8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Pagination',\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload\n }\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TWorkoutsPayload | TPaginationPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')) + \" \", 1),\n _hoisted_3\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=f38ea1b8&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-f38ea1b8\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnEnPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-en'\n )\n const zxcvbnFrPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-fr'\n )\n const zxcvbnLangPackages: Record = {\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n }\n const zxcvbnPackage = zxcvbnLangPackages[language]\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnPackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e71df5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-strength\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"password-strength-details\"\n}\nconst _hoisted_4 = { class: \"password-strength-value\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"info-box\"\n}\nconst _hoisted_6 = { class: \"password-feedback\" }\n\nimport { zxcvbn } from '@zxcvbn-ts/core'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n onBeforeMount,\n toRefs,\n watch,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n import { getPasswordStrength, setZxcvbnOptions } from '@/utils/password'\n\n interface Props {\n password: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordStength',\n props: {\n password: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n password: string\n }\n\n \n const { password } = toRefs(props)\n\n const store = useStore()\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const passwordScore: Ref = ref(0)\n const passwordStrength: Ref = ref('')\n const passwordSuggestions: Ref = ref([])\n const backgroundSize = ref('0% 100%')\n\n onBeforeMount(async () => await setZxcvbnOptions(language.value))\n\n function calculatePasswordStrength(password: string) {\n const zxcvbnResult = zxcvbn(password)\n passwordScore.value = zxcvbnResult.score\n passwordStrength.value = getPasswordStrength(passwordScore.value)\n passwordSuggestions.value = zxcvbnResult.feedback.suggestions\n backgroundSize.value = (passwordScore.value * 100) / 4 + '% 100%'\n }\n\n watch(\n () => language.value,\n async (newLanguageValue) => {\n await setZxcvbnOptions(newLanguageValue)\n }\n )\n watch(\n () => password.value,\n async (newPassword) => {\n if (isSuccess.value) {\n passwordStrength.value = ''\n } else {\n calculatePasswordStrength(newPassword)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: _normalizeClass([\"password-slider\", `strength-${passwordScore.value}`]),\n style: _normalizeStyle({ backgroundSize: backgroundSize.value }),\n type: \"range\",\n value: passwordScore.value,\n min: \"0\",\n max: \"4\",\n step: \"1\"\n }, null, 14, _hoisted_2),\n (passwordStrength.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.PASSWORD_STRENGTH.LABEL')) + \": \" + _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.${passwordStrength.value}`)), 1),\n (passwordSuggestions.value.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(passwordSuggestions.value, (suggestion) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: suggestion }, _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${suggestion}`)), 1))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=74e71df5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e71df5\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, vModelDynamic as _vModelDynamic, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5a126514\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-input\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"required\", \"type\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"form-info\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import PasswordStrength from '@/components/Common/PasswordStength.vue'\n\n interface Props {\n checkStrength?: boolean\n disabled?: boolean\n id?: string\n password?: string\n placeholder?: string\n required?: boolean\n }\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordInput',\n props: {\n checkStrength: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { default: 'password' },\n password: { default: '' },\n placeholder: null,\n required: { type: Boolean, default: false }\n },\n emits: ['updatePassword', 'passwordError'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { checkStrength: boolean, disabled: boolean, id: string, password: string, placeholder?: string, required: boolean }\n\n \n const { checkStrength, disabled, id, password, placeholder, required } =\n toRefs(props)\n\n const showPassword: Ref = ref(false)\n const passwordValue: Ref = ref('')\n\n \n\n function togglePassword() {\n showPassword.value = !showPassword.value\n }\n function updatePassword(event: Event & { target: HTMLInputElement }) {\n emit('updatePassword', event.target.value)\n }\n function invalidPassword() {\n emit('passwordError')\n }\n\n watch(\n () => password.value,\n (newPassword) => {\n if (newPassword === '') {\n passwordValue.value = ''\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n id: _unref(id),\n disabled: _unref(disabled),\n placeholder: _unref(placeholder),\n required: _unref(required),\n type: showPassword.value ? 'text' : 'password',\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((passwordValue).value = $event)),\n minlength: \"8\",\n onInput: updatePassword,\n onInvalid: invalidPassword\n }, null, 40, _hoisted_2), [\n [_vModelDynamic, passwordValue.value]\n ]),\n _createElementVNode(\"div\", {\n class: \"show-password\",\n onClick: togglePassword\n }, [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.${showPassword.value ? 'HIDE' : 'SHOW'}_PASSWORD`)) + \" \", 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-eye${showPassword.value ? '-slash' : ''}`]),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n (_unref(checkStrength))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PASSWORD_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(checkStrength))\n ? (_openBlock(), _createBlock(PasswordStrength, {\n key: 1,\n password: passwordValue.value\n }, null, 8, [\"password\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"map-attribution\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"map-attribution-text\" }, \"©\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"map-attribution-text\",\n href: \"https://www.openstreetmap.org/copyright\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \" OpenStreetMap \")\n], -1)\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workout: IWorkout\n displayHover?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StaticMap',\n props: {\n workout: null,\n displayHover: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { workout: IWorkout, displayHover: boolean }\n\n \n const { displayHover } = toRefs(props)\n const imageUrl = `${getApiUrl()}workouts/map/${props.workout.map}`\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"static-map\", { 'display-hover': _unref(displayHover) }])\n }, [\n (_unref(displayHover))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: imageUrl,\n alt: \"\"\n }))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"bg-map-image\",\n style: _normalizeStyle({\n backgroundImage: `url(${imageUrl})`,\n })\n }, null, 4)),\n _hoisted_1\n ], 2))\n}\n}\n\n})","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58e4e79d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","import { resolveComponent as _resolveComponent, mergeProps as _mergeProps, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"chart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BarChart = _resolveComponent(\"BarChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_BarChart, _mergeProps(_ctx.barChartProps, { class: \"bar-chart\" }), null, 16)\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true\n): string => {\n const unitFrom = 'km'\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n return `${value.toFixed(2)} ${unitTo}`\n case 'total_ascent':\n case 'total_descent':\n return `${(value / 1000).toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartData, ChartOptions, LayoutItem } from 'chart.js'\n import { ComputedRef, PropType, computed, defineComponent } from 'vue'\n import { BarChart, useBarChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IChartDataset } from '@/types/chart'\n import { TStatisticsDatasetKeys } from '@/types/statistics'\n import { formatTooltipValue } from '@/utils/tooltip'\n\n export default defineComponent({\n name: 'Chart',\n components: {\n BarChart,\n },\n props: {\n datasets: {\n type: Object as PropType,\n required: true,\n },\n labels: {\n type: Object as PropType,\n required: true,\n },\n displayedData: {\n type: String as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n required: true,\n },\n fullStats: {\n type: Boolean,\n required: true,\n },\n useImperialUnits: {\n type: Boolean,\n required: true,\n },\n },\n setup(props) {\n const { t } = useI18n()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getNumber(value: any): number {\n return isNaN(value) ? 0 : +value\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getSum(total: any, value: any): number {\n return getNumber(total) + getNumber(value)\n }\n const chartData: ComputedRef> = computed(() => ({\n labels: props.labels,\n // workaround to avoid dataset modification\n datasets: JSON.parse(JSON.stringify(props.datasets)),\n }))\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: props.fullStats ? 40 : 22,\n },\n },\n scales: {\n x: {\n stacked: true,\n grid: {\n drawOnChartArea: false,\n },\n },\n y: {\n stacked: props.displayedData !== 'average_speed',\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n maxTicksLimit: 6,\n callback: function (value) {\n return formatTooltipValue(\n props.displayedData,\n +value,\n props.useImperialUnits,\n false\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 75 : 60\n },\n },\n },\n plugins: {\n datalabels: {\n anchor: 'end',\n align: 'end',\n color: function (context) {\n return props.displayedData === 'average_speed' &&\n context.dataset.backgroundColor\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n context.dataset.backgroundColor[0]\n : '#666666'\n },\n rotation: function (context) {\n return props.fullStats && context.chart.chartArea.width < 580\n ? 310\n : 0\n },\n display: function (context) {\n return props.fullStats && context.chart.chartArea.width < 300\n ? false\n : props.displayedData === 'average_speed'\n ? props.displayedSportIds.length == 1\n ? 'auto'\n : false\n : true\n },\n formatter: function (value, context) {\n if (props.displayedData === 'average_speed') {\n return formatTooltipValue(\n props.displayedData,\n value,\n props.useImperialUnits,\n false\n )\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const total: number = context.chart.data.datasets\n .map((d) => d.data[context.dataIndex])\n .reduce((total, value) => getSum(total, value), 0)\n return context.datasetIndex ===\n props.displayedSportIds.length - 1 && total > 0\n ? formatTooltipValue(\n props.displayedData,\n total,\n props.useImperialUnits,\n false\n )\n : null\n }\n },\n },\n legend: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: true,\n mode: 'index',\n position:\n props.displayedData === 'average_speed' ? 'nearest' : 'average',\n },\n filter: function (tooltipItem) {\n return tooltipItem.formattedValue !== '0'\n },\n callbacks: {\n label: function (context) {\n let label = t(`sports.${context.dataset.label}.LABEL`) || ''\n if (label) {\n label += ': '\n }\n if (context.parsed.y !== null) {\n label += formatTooltipValue(\n props.displayedData,\n context.parsed.y,\n props.useImperialUnits\n )\n }\n return label\n },\n footer: function (tooltipItems) {\n if (props.displayedData === 'average_speed') {\n return ''\n }\n let sum = 0\n tooltipItems.map((tooltipItem) => {\n sum += tooltipItem.parsed.y\n })\n return (\n `${t('common.TOTAL')}: ` +\n formatTooltipValue(\n props.displayedData,\n sum,\n props.useImperialUnits\n )\n )\n },\n },\n },\n },\n }))\n const { barChartProps } = useBarChart({\n chartData,\n options,\n })\n return { barChartProps }\n },\n })\n","import { render } from \"./Chart.vue?vue&type=template&id=301b01ca&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n watch,\n onBeforeMount,\n } from 'vue'\n\n import Chart from '@/components/Common/StatsChart/Chart.vue'\n import { STATS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import {\n IStatisticsChartData,\n TStatisticsDatasetKeys,\n IStatisticsDateParams,\n TStatisticsFromApi,\n IStatisticsParams,\n } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatStats } from '@/utils/statistics'\n\n export default defineComponent({\n name: 'UserMonthStats',\n components: {\n Chart,\n },\n props: {\n sports: {\n type: Object as PropType,\n required: true,\n },\n user: {\n type: Object as PropType,\n required: true,\n },\n chartParams: {\n type: Object as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n default: () => [],\n },\n fullStats: {\n type: Boolean,\n default: false,\n },\n hideChartIfNoData: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n\n const displayedData: Ref = ref('total_distance')\n const statistics: ComputedRef = computed(\n () => store.getters[STATS_STORE.GETTERS.USER_STATS]\n )\n const formattedStats: ComputedRef = computed(() =>\n formatStats(\n props.chartParams,\n props.user.weekm,\n props.sports,\n props.displayedSportIds,\n statistics.value,\n props.user.imperial_units\n )\n )\n\n onBeforeMount(() =>\n getStatistics(getApiParams(props.chartParams, props.user))\n )\n\n function getStatistics(apiParams: IStatisticsParams) {\n store.dispatch(STATS_STORE.ACTIONS.GET_USER_STATS, {\n username: props.user.username,\n filterType: 'by_time',\n params: apiParams,\n })\n }\n function updateDisplayData(\n event: Event & {\n target: HTMLInputElement & { name: TStatisticsDatasetKeys }\n }\n ) {\n displayedData.value = event.target.name\n }\n function getApiParams(\n chartParams: IStatisticsDateParams,\n user: IAuthUserProfile\n ): IStatisticsParams {\n return {\n from: format(chartParams.start, 'yyyy-MM-dd'),\n to: format(chartParams.end, 'yyyy-MM-dd'),\n time:\n chartParams.duration === 'week'\n ? `week${user.weekm ? 'm' : ''}`\n : chartParams.duration,\n }\n }\n\n watch(\n () => props.chartParams,\n async (newParams) => {\n getStatistics(getApiParams(newParams, props.user))\n }\n )\n\n return {\n datasets: computed(\n () => formattedStats.value.datasets[displayedData.value]\n ),\n labels: computed(() => formattedStats.value.labels),\n emptyStats: computed(() => Object.keys(statistics.value).length === 0),\n displayedData,\n updateDisplayData,\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=58e4e79d&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=58e4e79d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-58e4e79d\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20291951\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-label\" }\nconst _hoisted_10 = { class: \"user-stat hide-small\" }\nconst _hoisted_11 = { class: \"stat-number\" }\nconst _hoisted_12 = { class: \"stat-label\" }\n\nimport { computed, ComputedRef, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserHeader',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const { user } = toRefs(props)\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_Distance, {\n distance: _unref(user).total_distance,\n unitFrom: \"km\",\n digits: 0,\n displayUnit: false,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(authUser).imperial_units ? 'miles' : 'km'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-794e58e7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = {\n key: 4,\n class: \"email-form form-box\"\n}\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = { class: \"form-buttons\" }\nconst _hoisted_7 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { key: 5 }\nconst _hoisted_10 = { class: \"user-bio\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n withDefaults,\n watch,\n onUnmounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfos',\n props: {\n user: null,\n fromAdmin: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean }\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? format(new Date(props.user.created_at), 'dd/MM/yyyy HH:mm')\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(new Date(props.user.birth_date), 'dd/MM/yyyy')\n : ''\n )\n const isSuccess = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_IS_SUCCESS]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const displayModal: Ref = ref('')\n const formErrors = ref(false)\n const displayUserEmailForm: Ref = ref(false)\n const newUserEmail: Ref = ref('')\n const currentAction: Ref = ref('')\n\n function updateDisplayModal(value: string) {\n displayModal.value = value\n if (value !== '') {\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n }\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n function resetUserPassword(username: string) {\n currentAction.value = 'password-reset'\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n resetPassword: true,\n })\n }\n function confirmUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n activate: true,\n })\n }\n function displayEmailForm() {\n resetErrorsAndSuccess()\n newUserEmail.value = user.value.email_to_confirm\n ? user.value.email_to_confirm\n : ''\n displayUserEmailForm.value = true\n currentAction.value = 'email-update'\n }\n function hideEmailForm() {\n newUserEmail.value = ''\n displayUserEmailForm.value = false\n }\n function updateUserEmail(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n new_email: newUserEmail.value,\n })\n }\n function resetErrorsAndSuccess() {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n currentAction.value = ''\n }\n\n onUnmounted(() => resetErrorsAndSuccess())\n\n watch(\n () => isSuccess.value,\n (newIsSuccess) => {\n if (newIsSuccess) {\n updateDisplayModal('')\n hideEmailForm()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \n displayModal.value === 'delete'\n ? 'admin.CONFIRM_USER_ACCOUNT_DELETION'\n : 'admin.CONFIRM_USER_PASSWORD_RESET'\n ,\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (\n displayModal.value === 'delete'\n ? deleteUserAccount(_unref(user).username)\n : resetUserPassword(_unref(user).username)\n )),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal('')))\n }, null, 8, [\"title\", \"message\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `admin.${\n currentAction.value === 'password-reset'\n ? 'PASSWORD_RESET'\n : 'USER_EMAIL_UPDATE'\n }_SUCCESSFUL`\n )), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 2,\n message: \"user.THIS_USER_ACCOUNT_IS_INACTIVE\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (displayUserEmailForm.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateUserEmail(_unref(user).username)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.CURRENT_EMAIL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(user).email) = $event)),\n disabled: \"\"\n }, null, 512), [\n [_vModelText, _unref(user).email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.NEW_EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"new-email\",\n type: \"email\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((newUserEmail).value = $event))\n }, null, 512), [\n [_vModelText, newUserEmail.value]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", _hoisted_7, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(hideEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_8)\n ])\n ], 34)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_10, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (updateDisplayModal('delete')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (confirmUserAccount(_unref(user).username)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.ACTIVATE_USER_ACCOUNT')), 1))\n : _createCommentVNode(\"\", true),\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _withModifiers(displayEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('admin.UPDATE_USER_EMAIL')), 9, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (\n _unref(authUser).username !== _unref(user).username &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n onClick: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (updateDisplayModal('reset')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.RESET_USER_PASSWORD')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=794e58e7&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-794e58e7\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bf09a420\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-form\" }\nconst _hoisted_2 = {\n key: 2,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"form-info\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = {\n key: 3,\n class: \"form-info\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { key: 3 }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { key: 4 }\nconst _hoisted_14 = { class: \"account\" }\nconst _hoisted_15 = { key: 5 }\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ILoginRegisterFormData } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAuthForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string }\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { action } = toRefs(props)\n const formData: ILoginRegisterFormData = reactive({\n username: '',\n email: '',\n password: '',\n })\n const buttonText: ComputedRef = computed(() =>\n getButtonText(props.action)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const isRegistrationSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_enabled\n )\n const sendingEmailDisabled: ComputedRef = computed(\n () =>\n ['reset-request', 'account-confirmation-resend'].includes(props.action) &&\n !appConfig.value.is_email_sending_enabled\n )\n const formErrors = ref(false)\n\n function getButtonText(action: string): string {\n switch (action) {\n case 'reset-request':\n case 'reset':\n return 'buttons.SUBMIT'\n default:\n return `buttons.${props.action.toUpperCase()}`\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n function updatePassword(password: string) {\n formData.password = password\n }\n function onSubmit(actionType: string) {\n switch (actionType) {\n case 'reset':\n if (!props.token) {\n return store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n 'user.INVALID_TOKEN'\n )\n }\n return store.dispatch(AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD, {\n password: formData.password,\n token: props.token,\n })\n case 'reset-request':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST,\n {\n email: formData.email,\n }\n )\n case 'account-confirmation-resend':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,\n {\n email: formData.email,\n }\n )\n default:\n formData['language'] = language.value\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER, {\n actionType,\n formData,\n redirectUrl: route.query.from,\n })\n }\n }\n function resetFormData() {\n formData.username = ''\n formData.email = ''\n formData.password = ''\n }\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n formErrors.value = false\n resetFormData()\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"user-auth-form\",\n class: _normalizeClass(`${\n ['reset', 'reset-request'].includes(_unref(action)) ? _unref(action) : 'user-form'\n }`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"form-box\", {\n disabled: _unref(registration_disabled),\n }])\n }, [\n (_unref(registration_disabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 0,\n message: \"user.REGISTER_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(sendingEmailDisabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 1,\n message: \"admin.EMAIL_SENDING_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess) || _unref(isRegistrationSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n _unref(isRegistrationSuccess)\n ? `REGISTRATION${\n _unref(appConfig).is_email_sending_enabled ? '_WITH_EMAIL' : ''\n }`\n : 'UPDATE'\n }`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (onSubmit(_unref(action))), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(action) === 'register')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: \"username\",\n disabled: _unref(registration_disabled),\n required: \"\",\n pattern: \"[a-zA-Z0-9_]+\",\n minlength: \"3\",\n maxlength: \"30\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((formData.username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, formData.username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.USERNAME_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"email\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((formData.email) = $event)),\n placeholder: _ctx.$t('user.EMAIL')\n }, null, 40, _hoisted_7)), [\n [_vModelText, formData.email]\n ])\n : _createCommentVNode(\"\", true),\n (\n [\n 'reset-request',\n 'register',\n 'account-confirmation-resend',\n ].includes(_unref(action))\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.EMAIL_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (\n !['account-confirmation-resend', 'reset-request'].includes(\n _unref(action)\n )\n )\n ? (_openBlock(), _createBlock(PasswordInput, {\n key: 4,\n disabled: _unref(registration_disabled),\n required: true,\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n ,\n password: formData.password,\n checkStrength: ['reset', 'register'].includes(_unref(action)),\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"placeholder\", \"password\", \"checkStrength\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_10)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/register\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n }),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"-\"))\n : _createCommentVNode(\"\", true),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"links\",\n to: \"/password-reset/request\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_FORGOTTEN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ALREADY_HAVE_ACCOUNT')), 1),\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/login\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (\n ['login', 'register'].includes(_unref(action)) &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/account-confirmation/resend\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_NOT_RECEIVED')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 6,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 2))\n}\n}\n\n})","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=bf09a420&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-bf09a420\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPicture',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture?${Date.now()}`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./de/de.ts\": 27,\n\t\"./en/en.ts\": 9350,\n\t\"./fr/fr.ts\": 1079\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\",\"881\":\"password\"}[chunkId] || chunkId) + \".\" + {\"24\":\"90b2d965\",\"93\":\"8adb4a90\",\"193\":\"1ad194e3\",\"243\":\"b773e58b\",\"328\":\"b19d15cc\",\"401\":\"22600b70\",\"431\":\"8c82cbac\",\"633\":\"69dd3969\",\"845\":\"12bdb140\",\"858\":\"6dd1c30f\",\"881\":\"332510b4\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"d0356685\",\"328\":\"73df498d\",\"401\":\"fa95a9cb\",\"845\":\"203e78e2\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(9370); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","__name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","dispatch","toString","logout","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","initLanguage","navigatorLanguage","navigator","split","localeFromLanguage","e","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","message","name","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","_hoisted_20","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","Hiking","MountainBiking","MountainBikingElectric","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","commit","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","includes","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","useI18n","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","format","getDateWithTZ","created_at","timezone","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","languageLabels","fistDayOfWeek","weekm","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","async","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","weekStart","imperialUnits","updateTZ","lang","_vModelSelect","TimezoneDropdown","start","unit","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","isEdition","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","onChange","src","alt","BikePic","About","workout","_component_Distance","params","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","ascent","descent","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","data","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","dateFormat","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","Error","formatWorkoutDate","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","defaultUnitFrom","totalDistance","total_distance","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","status","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","state","authUserProfile","isRegistrationSuccess","mutations","authUserState","setAttribute","application","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPage","defaultPerPage","getNumberQueryValue","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","dateTime","timeFormat","workout_time","suffixes","fileSize","asText","floor","pow","msg","response","m","de","en","fr","availableLocales","l","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_ascent","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnLangPackages","zxcvbnPackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","JSON","parse","stringify","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","indexOf","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","url","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","onLinkComplete","errorType","realHref","err","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/chunk-vendors.7123d468.js.map b/fittrackee/dist/static/js/chunk-vendors.7123d468.js.map deleted file mode 100644 index 483a341e..00000000 --- a/fittrackee/dist/static/js/chunk-vendors.7123d468.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/chunk-vendors.7123d468.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/helper.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/dateSplits.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/const.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/date/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/levenshtein.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/l33tTable.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/data/translationKeys.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/Options.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/matching/reverse.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/matching/l33t.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/regex/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/scoring/utils.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/bruteforce/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/date/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/scoring/uppercase.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/scoring/l33t.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/regex/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/scoring.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/scoring/estimate.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/scoring/index.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/Matching.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/TimeEstimates.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/bruteforce/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/date/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/regex/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/Feedback.esm.js","webpack://fittrackee_client/./node_modules/@zxcvbn-ts/core/dist/index.esm.js","webpack://fittrackee_client/./node_modules/axios/index.js","webpack://fittrackee_client/./node_modules/axios/lib/adapters/xhr.js","webpack://fittrackee_client/./node_modules/axios/lib/axios.js","webpack://fittrackee_client/./node_modules/axios/lib/cancel/Cancel.js","webpack://fittrackee_client/./node_modules/axios/lib/cancel/CancelToken.js","webpack://fittrackee_client/./node_modules/axios/lib/cancel/isCancel.js","webpack://fittrackee_client/./node_modules/axios/lib/core/Axios.js","webpack://fittrackee_client/./node_modules/axios/lib/core/InterceptorManager.js","webpack://fittrackee_client/./node_modules/axios/lib/core/buildFullPath.js","webpack://fittrackee_client/./node_modules/axios/lib/core/createError.js","webpack://fittrackee_client/./node_modules/axios/lib/core/dispatchRequest.js","webpack://fittrackee_client/./node_modules/axios/lib/core/enhanceError.js","webpack://fittrackee_client/./node_modules/axios/lib/core/mergeConfig.js","webpack://fittrackee_client/./node_modules/axios/lib/core/settle.js","webpack://fittrackee_client/./node_modules/axios/lib/core/transformData.js","webpack://fittrackee_client/./node_modules/axios/lib/defaults/index.js","webpack://fittrackee_client/./node_modules/axios/lib/defaults/transitional.js","webpack://fittrackee_client/./node_modules/axios/lib/env/data.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/bind.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/buildURL.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/combineURLs.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/cookies.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/spread.js","webpack://fittrackee_client/./node_modules/axios/lib/helpers/validator.js","webpack://fittrackee_client/./node_modules/axios/lib/utils.js","webpack://fittrackee_client/./node_modules/chart.js/dist/chart.esm.js","webpack://fittrackee_client/./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack://fittrackee_client/./node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.esm.js","webpack://fittrackee_client/./node_modules/core-js/internals/a-callable.js","webpack://fittrackee_client/./node_modules/core-js/internals/a-possible-prototype.js","webpack://fittrackee_client/./node_modules/core-js/internals/add-to-unscopables.js","webpack://fittrackee_client/./node_modules/core-js/internals/an-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/array-includes.js","webpack://fittrackee_client/./node_modules/core-js/internals/classof-raw.js","webpack://fittrackee_client/./node_modules/core-js/internals/classof.js","webpack://fittrackee_client/./node_modules/core-js/internals/clear-error-stack.js","webpack://fittrackee_client/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://fittrackee_client/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/create-property-descriptor.js","webpack://fittrackee_client/./node_modules/core-js/internals/define-built-in.js","webpack://fittrackee_client/./node_modules/core-js/internals/define-global-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/descriptors.js","webpack://fittrackee_client/./node_modules/core-js/internals/document-create-element.js","webpack://fittrackee_client/./node_modules/core-js/internals/engine-user-agent.js","webpack://fittrackee_client/./node_modules/core-js/internals/engine-v8-version.js","webpack://fittrackee_client/./node_modules/core-js/internals/enum-bug-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/error-stack-installable.js","webpack://fittrackee_client/./node_modules/core-js/internals/export.js","webpack://fittrackee_client/./node_modules/core-js/internals/fails.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-apply.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-bind-native.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-call.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-name.js","webpack://fittrackee_client/./node_modules/core-js/internals/function-uncurry-this.js","webpack://fittrackee_client/./node_modules/core-js/internals/get-built-in.js","webpack://fittrackee_client/./node_modules/core-js/internals/get-method.js","webpack://fittrackee_client/./node_modules/core-js/internals/global.js","webpack://fittrackee_client/./node_modules/core-js/internals/has-own-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/hidden-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/html.js","webpack://fittrackee_client/./node_modules/core-js/internals/ie8-dom-define.js","webpack://fittrackee_client/./node_modules/core-js/internals/indexed-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/inherit-if-required.js","webpack://fittrackee_client/./node_modules/core-js/internals/inspect-source.js","webpack://fittrackee_client/./node_modules/core-js/internals/install-error-cause.js","webpack://fittrackee_client/./node_modules/core-js/internals/internal-state.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-callable.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-forced.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-pure.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-symbol.js","webpack://fittrackee_client/./node_modules/core-js/internals/length-of-array-like.js","webpack://fittrackee_client/./node_modules/core-js/internals/make-built-in.js","webpack://fittrackee_client/./node_modules/core-js/internals/math-trunc.js","webpack://fittrackee_client/./node_modules/core-js/internals/native-symbol.js","webpack://fittrackee_client/./node_modules/core-js/internals/native-weak-map.js","webpack://fittrackee_client/./node_modules/core-js/internals/normalize-string-argument.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-create.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-define-properties.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-define-property.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-keys-internal.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://fittrackee_client/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://fittrackee_client/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://fittrackee_client/./node_modules/core-js/internals/own-keys.js","webpack://fittrackee_client/./node_modules/core-js/internals/proxy-accessor.js","webpack://fittrackee_client/./node_modules/core-js/internals/require-object-coercible.js","webpack://fittrackee_client/./node_modules/core-js/internals/shared-key.js","webpack://fittrackee_client/./node_modules/core-js/internals/shared-store.js","webpack://fittrackee_client/./node_modules/core-js/internals/shared.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-absolute-index.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-indexed-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-length.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-primitive.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-property-key.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-string-tag-support.js","webpack://fittrackee_client/./node_modules/core-js/internals/to-string.js","webpack://fittrackee_client/./node_modules/core-js/internals/try-to-string.js","webpack://fittrackee_client/./node_modules/core-js/internals/uid.js","webpack://fittrackee_client/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://fittrackee_client/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://fittrackee_client/./node_modules/core-js/internals/well-known-symbol.js","webpack://fittrackee_client/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://fittrackee_client/./node_modules/core-js/modules/es.array.includes.js","webpack://fittrackee_client/./node_modules/core-js/modules/es.error.cause.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/addLeadingZeros/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/assign/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/cloneObject/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/format/formatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/format/lightFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/format/longFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCDayOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/getUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/protectedTokens/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/requiredArgs/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/startOfUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/toInteger/index.js","webpack://fittrackee_client/./node_modules/date-fns/addMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addDays/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addWeeks/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addYears/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isDate/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isValid/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/format/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/compareAsc/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/endOfDay/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfDay/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isSameDay/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isSameMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/isToday/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/de/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/locale/fr/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfMonth/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfWeek/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/startOfYear/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subMonths/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subWeeks/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/subYears/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/toDate/index.js","webpack://fittrackee_client/./node_modules/date-fns/format/index.js","webpack://fittrackee_client/./node_modules/date-fns/isDate/index.js","webpack://fittrackee_client/./node_modules/date-fns/isValid/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildMatchFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/formatLong/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/localize/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/_lib/match/index.js","webpack://fittrackee_client/./node_modules/date-fns/locale/en-US/index.js","webpack://fittrackee_client/./node_modules/date-fns/subMilliseconds/index.js","webpack://fittrackee_client/./node_modules/date-fns/toDate/index.js","webpack://fittrackee_client/./node_modules/fastest-levenshtein/index.js","webpack://fittrackee_client/./node_modules/pascalcase/node_modules/camelcase/index.js","webpack://fittrackee_client/./node_modules/register-service-worker/index.js","webpack://fittrackee_client/./node_modules/vue-fullscreen/dist/index.es.js","webpack://fittrackee_client/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/message-resolver/dist/message-resolver.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/runtime/dist/runtime.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://fittrackee_client/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://fittrackee_client/./node_modules/vue-i18n/dist/vue-i18n.esm-bundler.js","webpack://fittrackee_client/./node_modules/vue-loader/dist/exportHelper.js","webpack://fittrackee_client/./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://fittrackee_client/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://fittrackee_client/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/newDateUTC/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzIntlTimeZoneName/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzParseTimezone/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzPattern/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/_lib/tzTokenizeDate/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/format/formatters/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/format/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/formatInTimeZone/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/getTimezoneOffset/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/toDate/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/utcToZonedTime/index.js","webpack://fittrackee_client/./node_modules/date-fns-tz/zonedTimeToUtc/index.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheClear.js","webpack://fittrackee_client/./node_modules/lodash-es/eq.js","webpack://fittrackee_client/./node_modules/lodash-es/_assocIndexOf.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_listCacheSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_ListCache.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackClear.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_freeGlobal.js","webpack://fittrackee_client/./node_modules/lodash-es/_root.js","webpack://fittrackee_client/./node_modules/lodash-es/_Symbol.js","webpack://fittrackee_client/./node_modules/lodash-es/_getRawTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_objectToString.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseGetTag.js","webpack://fittrackee_client/./node_modules/lodash-es/isObject.js","webpack://fittrackee_client/./node_modules/lodash-es/isFunction.js","webpack://fittrackee_client/./node_modules/lodash-es/_coreJsData.js","webpack://fittrackee_client/./node_modules/lodash-es/_isMasked.js","webpack://fittrackee_client/./node_modules/lodash-es/_toSource.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsNative.js","webpack://fittrackee_client/./node_modules/lodash-es/_getValue.js","webpack://fittrackee_client/./node_modules/lodash-es/_getNative.js","webpack://fittrackee_client/./node_modules/lodash-es/_Map.js","webpack://fittrackee_client/./node_modules/lodash-es/_nativeCreate.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashClear.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_hashSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_Hash.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheClear.js","webpack://fittrackee_client/./node_modules/lodash-es/_isKeyable.js","webpack://fittrackee_client/./node_modules/lodash-es/_getMapData.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheDelete.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheGet.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapCacheSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_MapCache.js","webpack://fittrackee_client/./node_modules/lodash-es/_stackSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_Stack.js","webpack://fittrackee_client/./node_modules/lodash-es/_setCacheAdd.js","webpack://fittrackee_client/./node_modules/lodash-es/_setCacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_SetCache.js","webpack://fittrackee_client/./node_modules/lodash-es/_arraySome.js","webpack://fittrackee_client/./node_modules/lodash-es/_cacheHas.js","webpack://fittrackee_client/./node_modules/lodash-es/_equalArrays.js","webpack://fittrackee_client/./node_modules/lodash-es/_Uint8Array.js","webpack://fittrackee_client/./node_modules/lodash-es/_mapToArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_setToArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_equalByTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayPush.js","webpack://fittrackee_client/./node_modules/lodash-es/isArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayFilter.js","webpack://fittrackee_client/./node_modules/lodash-es/stubArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_getSymbols.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseTimes.js","webpack://fittrackee_client/./node_modules/lodash-es/isObjectLike.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsArguments.js","webpack://fittrackee_client/./node_modules/lodash-es/isArguments.js","webpack://fittrackee_client/./node_modules/lodash-es/stubFalse.js","webpack://fittrackee_client/./node_modules/lodash-es/isBuffer.js","webpack://fittrackee_client/./node_modules/lodash-es/_isIndex.js","webpack://fittrackee_client/./node_modules/lodash-es/isLength.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseUnary.js","webpack://fittrackee_client/./node_modules/lodash-es/_nodeUtil.js","webpack://fittrackee_client/./node_modules/lodash-es/isTypedArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_isPrototype.js","webpack://fittrackee_client/./node_modules/lodash-es/_overArg.js","webpack://fittrackee_client/./node_modules/lodash-es/_nativeKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/isArrayLike.js","webpack://fittrackee_client/./node_modules/lodash-es/keys.js","webpack://fittrackee_client/./node_modules/lodash-es/_getAllKeys.js","webpack://fittrackee_client/./node_modules/lodash-es/_equalObjects.js","webpack://fittrackee_client/./node_modules/lodash-es/_DataView.js","webpack://fittrackee_client/./node_modules/lodash-es/_Promise.js","webpack://fittrackee_client/./node_modules/lodash-es/_Set.js","webpack://fittrackee_client/./node_modules/lodash-es/_WeakMap.js","webpack://fittrackee_client/./node_modules/lodash-es/_getTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsEqual.js","webpack://fittrackee_client/./node_modules/lodash-es/isEqual.js","webpack://fittrackee_client/./node_modules/lodash-es/_arrayEach.js","webpack://fittrackee_client/./node_modules/lodash-es/_defineProperty.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseAssignValue.js","webpack://fittrackee_client/./node_modules/lodash-es/_assignValue.js","webpack://fittrackee_client/./node_modules/lodash-es/_copyObject.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseAssign.js","webpack://fittrackee_client/./node_modules/lodash-es/_nativeKeysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseKeysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/keysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseAssignIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneBuffer.js","webpack://fittrackee_client/./node_modules/lodash-es/_copyArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_copySymbols.js","webpack://fittrackee_client/./node_modules/lodash-es/_getPrototype.js","webpack://fittrackee_client/./node_modules/lodash-es/_getSymbolsIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_copySymbolsIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_getAllKeysIn.js","webpack://fittrackee_client/./node_modules/lodash-es/_initCloneArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneDataView.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneRegExp.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneSymbol.js","webpack://fittrackee_client/./node_modules/lodash-es/_cloneTypedArray.js","webpack://fittrackee_client/./node_modules/lodash-es/_initCloneByTag.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseCreate.js","webpack://fittrackee_client/./node_modules/lodash-es/_initCloneObject.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsMap.js","webpack://fittrackee_client/./node_modules/lodash-es/isMap.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseIsSet.js","webpack://fittrackee_client/./node_modules/lodash-es/isSet.js","webpack://fittrackee_client/./node_modules/lodash-es/_baseClone.js","webpack://fittrackee_client/./node_modules/lodash-es/cloneDeep.js","webpack://fittrackee_client/./node_modules/pascalcase/index.js","webpack://fittrackee_client/./node_modules/vue-chart-3/dist/index.js"],"sourcesContent":["import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n if (this.deferStop) {\r\n this.stop();\r\n }\r\n }\r\n }\r\n stop() {\r\n // stopped while running itself - defer the cleanup\r\n if (activeEffect === this) {\r\n this.deferStop = true;\r\n }\r\n else if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n const effects = isArray(dep) ? dep : [...dep];\r\n for (const effect of effects) {\r\n if (effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n for (const effect of effects) {\r\n if (!effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n}\r\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n/*#__PURE__*/\r\nObject.getOwnPropertyNames(Symbol)\r\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\r\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\r\n // function\r\n .filter(key => key !== 'arguments' && key !== 'caller')\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - skip unwrap for Array + integer key.\r\n return targetIsArray && isIntegerKey(key) ? res : res.value;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n track(rawTarget, \"get\" /* GET */, rawKey);\r\n }\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n track(rawTarget, \"has\" /* HAS */, rawKey);\r\n }\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only specific value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = /*#__PURE__*/ Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {\r\n continue;\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n // flush any pre cbs queued during the flush (e.g. pre watchers)\r\n flushPreFlushCbs();\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length ||\r\n pendingPreFlushCbs.length ||\r\n pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n // clone before mutating since the root may be a hoisted vnode\r\n root = cloneVNode(root);\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => queuePreFlushCb(job);\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n let child = children[0];\r\n if (children.length > 1) {\r\n let hasFound = false;\r\n // locate first non-comment child\r\n for (const c of children) {\r\n if (c.type !== Comment) {\r\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\r\n // warn more than one non-comment child\r\n warn(' can only be used on a single element or component. ' +\r\n 'Use for lists.');\r\n break;\r\n }\r\n child = c;\r\n hasFound = true;\r\n if (!(process.env.NODE_ENV !== 'production'))\r\n break;\r\n }\r\n }\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' &&\r\n mode !== 'out-in' &&\r\n mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const callAsyncHook = (hook, args) => {\r\n const done = args[1];\r\n callHook(hook, args);\r\n if (isArray(hook)) {\r\n if (hook.every(hook => hook.length <= 1))\r\n done();\r\n }\r\n else if (hook.length <= 1) {\r\n done();\r\n }\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n callAsyncHook(hook, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n callAsyncHook(onLeave, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n // #5360 inherit parent key in case of